Files
UnrealEngine/Engine/Source/ThirdParty/Intel/ISPC/ispc-1.24.0/tests/lit-tests/1596.ispc
2025-05-18 13:04:45 +08:00

32 lines
1.3 KiB
Plaintext

//; RUN: %{ispc} %s -o %t.o --nowrap --target=avx2-i32x8 2>&1 | FileCheck %s -check-prefix=CHECK_SINGLE
//; RUN: not %{ispc} %s -o %t.o --nowrap --target=avx2-i32x8,sse2-i32x4 2>&1 | FileCheck %s -check-prefix=CHECK_MULTI
// REQUIRES: X86_ENABLED
//; CHECK_SINGLE: Initializer for global variable "sz_var" is a constant for single-target compilation but not for multi-target compilation.
//; CHECK_MULTI: Initializer for global variable "sz_var" is not a constant for multi-target compilation
uniform int sz = sizeof(uniform int);
static uniform float a = 1.0;
static uniform float *uniform pa = &a;
static const uniform float *uniform parr[] = {NULL, &a, &a};
static const uniform float b[] = {0., 4., 3., 2., 1.};
static const uniform float *uniform pb[] = {NULL, b + 3, b};
static const uniform float *uniform pb1[] = {NULL, b, b};
varying float i = 80;
varying float p_foo[] = {1, 4, 3, 2, 4, 3, 3, 3};
varying float *uniform au = &p_foo[0];
uniform int sz_var = sizeof(varying int);
uniform int ii[2][3][4] = {{{1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}}, {{1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}}};
uniform int *uniform aaa = &ii[1][2][3];
varying float usevals() {
varying float *varying av = au + i + *pa * *parr[1] * *pb[2] * *pb1[1] + *aaa;
return *av;
}