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

35 lines
907 B
Plaintext

// RUN: %{ispc} --arch=x86-64 --pic -O3 -DINLINE=inline --target=sse4-i32x8,avx1-i32x8,avx2-i32x8 --nostdlib --nowrap -o %t.ll --emit-llvm-text %s 2>&1 | FileCheck %s
// REQUIRES: X86_ENABLED
// CHECK-NOT: FATAL ERROR:
struct Point3s {float x, y, z;};
typedef struct Point3s Point3;
#define NOISE_PERM_SIZE 8
static uniform int NoisePerm[2 * NOISE_PERM_SIZE] = {
151, 160, 137, 91, 90, 15, 131, 13,
201, 95, 96, 53, 194, 233, 7, 225,
};
inline float Grad(int x, int y, int z) {
int h = NoisePerm[NoisePerm[NoisePerm[x]+y]+z];
h &= 15;
float u = h<8 || h==12 || h==13 ? 1. : 0.;
return u;
}
export
void noise_ispc (
uniform Point3 pnt[],
uniform float output[])
{
Point3 xseed;
xseed.x = pnt[programIndex].x;
xseed.y = pnt[programIndex].y;
xseed.z = pnt[programIndex].z;
output[programIndex] = Grad (xseed.x, xseed.y,xseed.z);
return;
}