Add some additional tests
This commit is contained in:
18
tests/atomics-varyingptr-1.ispc
Normal file
18
tests/atomics-varyingptr-1.ispc
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
uniform unsigned int32 s[programCount];
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = aFOO[programIndex];
|
||||
float b = 0;
|
||||
float delta = 1;
|
||||
if (programIndex < 2)
|
||||
atomic_add_global(&s[programIndex], delta);
|
||||
RET[programIndex] = s[programIndex];
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 0;
|
||||
RET[0] = RET[1] = 1;
|
||||
}
|
||||
16
tests/atomics-varyingptr-2.ispc
Normal file
16
tests/atomics-varyingptr-2.ispc
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
uniform unsigned int32 s[programCount];
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = aFOO[programIndex];
|
||||
float b = 0;
|
||||
float delta = 1;
|
||||
atomic_add_global(&s[programCount-1-programIndex], programIndex);
|
||||
RET[programIndex] = s[programIndex];
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = programCount-1-programIndex;
|
||||
}
|
||||
18
tests/atomics-varyingptr-3.ispc
Normal file
18
tests/atomics-varyingptr-3.ispc
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
uniform unsigned int32 s[programCount];
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
for (uniform int i = 0; i < programCount; ++i)
|
||||
s[i] = 1234;
|
||||
float a = aFOO[programIndex];
|
||||
float b = 0;
|
||||
float delta = 1;
|
||||
a = atomic_max_global(&s[programIndex], programIndex);
|
||||
RET[programIndex] = a;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1234;
|
||||
}
|
||||
15
tests/atomics-varyingptr-4.ispc
Normal file
15
tests/atomics-varyingptr-4.ispc
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
uniform int32 s[programCount];
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
for (uniform int i = 0; i < programCount; ++i)
|
||||
s[i] = -1234;
|
||||
atomic_max_global(&s[programIndex], programIndex);
|
||||
RET[programIndex] = s[programIndex];
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = programIndex;
|
||||
}
|
||||
16
tests/ptr-int-null-1.ispc
Normal file
16
tests/ptr-int-null-1.ispc
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
bool foo(int *ptr) {
|
||||
return (ptr == NULL);
|
||||
}
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
uniform int a = 1;
|
||||
uniform int * uniform b = 0;
|
||||
RET[programIndex] = foo(0);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1;
|
||||
}
|
||||
13
tests/ptr-int-null.ispc
Normal file
13
tests/ptr-int-null.ispc
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
uniform int a = 1;
|
||||
uniform int * uniform b = 0;
|
||||
RET[programIndex] = (b == NULL && b == 0 && 0 == b) ? 1 : 0;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1;
|
||||
}
|
||||
17
tests/vector-varying-scatter-2.ispc
Normal file
17
tests/vector-varying-scatter-2.ispc
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float aa = aFOO[programIndex];
|
||||
float<4> a = { -1, -2, -3, -4 };
|
||||
if (programIndex < 4)
|
||||
a[3-programIndex] = aa;
|
||||
//CO print("%\n%\n%\n%\n", a[0], a[1], a[2], a[3]);
|
||||
int i = clamp(3-programIndex, 0, 3);
|
||||
//CO print("%\n%\n", i, a[i]);
|
||||
RET[programIndex] = a[i];
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = (programIndex < 4) ? 1+programIndex : -1;
|
||||
}
|
||||
15
tests/vector-varying-scatter.ispc
Normal file
15
tests/vector-varying-scatter.ispc
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float aa = aFOO[programIndex];
|
||||
float<4> a = { -1, -2, -3, -4 };
|
||||
if (programIndex < 4)
|
||||
a[3-programIndex] = aa;
|
||||
RET[programIndex] = a[2];
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = -3;
|
||||
RET[1] = 2;
|
||||
}
|
||||
Reference in New Issue
Block a user