Add more tests of basic gather functionality.

This commit is contained in:
Matt Pharr
2012-07-12 13:56:58 -07:00
parent e09e953bbb
commit d180031ef0
48 changed files with 948 additions and 26 deletions

View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
double *ptr = (aFOO[0] == 1234) ? (double * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
double *ptr = (aFOO[0] == 1234) ? (double * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
double *ptr = (aFOO[0] == 1234) ? (double * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform double a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
double *ptr = (aFOO[0] == 1234) ? (double * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

17
tests/gather-float-1.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

17
tests/gather-float-2.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

21
tests/gather-float-3.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

21
tests/gather-float-4.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

19
tests/gather-float-5.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
float *ptr = (aFOO[0] == 1234) ? (float * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

19
tests/gather-float-6.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
float *ptr = (aFOO[0] == 1234) ? (float * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

23
tests/gather-float-7.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
float *ptr = (aFOO[0] == 1234) ? (float * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

23
tests/gather-float-8.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
float *ptr = (aFOO[0] == 1234) ? (float * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

View File

@@ -1,19 +1,17 @@
export uniform int width() { return programCount; }
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
uniform int16 x[programCount];
x[programIndex] = programIndex;
int a = aFOO[programIndex]-1;
unsigned int16 v;
if (programIndex < 2)
v = x[a];
else
v = 2;
RET[programIndex] = v;
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 2;
RET[0] = 0;
RET[1] = 1;
RET[programIndex] = 1 + programIndex;
}

17
tests/gather-int16-2.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

21
tests/gather-int16-3.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

21
tests/gather-int16-4.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

19
tests/gather-int16-5.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int16 *ptr = (aFOO[0] == 1234) ? (int16 * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

19
tests/gather-int16-6.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int16 *ptr = (aFOO[0] == 1234) ? (int16 * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

23
tests/gather-int16-7.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int16 *ptr = (aFOO[0] == 1234) ? (int16 * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

23
tests/gather-int16-8.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int16 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int16 *ptr = (aFOO[0] == 1234) ? (int16 * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

17
tests/gather-int32-1.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

17
tests/gather-int32-2.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

21
tests/gather-int32-3.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

21
tests/gather-int32-4.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

19
tests/gather-int32-5.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int *ptr = (aFOO[0] == 1234) ? (int * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

19
tests/gather-int32-6.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int *ptr = (aFOO[0] == 1234) ? (int * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

23
tests/gather-int32-7.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int *ptr = (aFOO[0] == 1234) ? (int * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

23
tests/gather-int32-8.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int *ptr = (aFOO[0] == 1234) ? (int * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

17
tests/gather-int64-1.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

17
tests/gather-int64-2.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

21
tests/gather-int64-3.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

21
tests/gather-int64-4.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

19
tests/gather-int64-5.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int64 *ptr = (aFOO[0] == 1234) ? (int64 * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

19
tests/gather-int64-6.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int64 *ptr = (aFOO[0] == 1234) ? (int64 * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

23
tests/gather-int64-7.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int64 *ptr = (aFOO[0] == 1234) ? (int64 * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

23
tests/gather-int64-8.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int64 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int64 *ptr = (aFOO[0] == 1234) ? (int64 * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

View File

@@ -1,19 +1,17 @@
export uniform int width() { return programCount; }
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
uniform int8 x[programCount];
x[programIndex] = programIndex;
int a = aFOO[programIndex]-1;
unsigned int8 v;
if (programIndex < 2)
v = x[a];
else
v = 2;
RET[programIndex] = v;
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 2;
RET[0] = 0;
RET[1] = 1;
RET[programIndex] = 1 + programIndex;
}

17
tests/gather-int8-2.ispc Normal file
View File

@@ -0,0 +1,17 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

21
tests/gather-int8-3.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

21
tests/gather-int8-4.ispc Normal file
View File

@@ -0,0 +1,21 @@
export uniform int width() { return programCount; }
int64 zero = 0;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
if (programIndex < 2)
g = a[programIndex+zero];
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

19
tests/gather-int8-5.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int8 *ptr = (aFOO[0] == 1234) ? (int8 * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

19
tests/gather-int8-6.ispc Normal file
View File

@@ -0,0 +1,19 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int8 *ptr = (aFOO[0] == 1234) ? (int8 * varying)gptr : (a + programIndex);
int g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 1 + programIndex;
}

23
tests/gather-int8-7.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int8 *ptr = (aFOO[0] == 1234) ? (int8 * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}

23
tests/gather-int8-8.ispc Normal file
View File

@@ -0,0 +1,23 @@
export uniform int width() { return programCount; }
int64 zero = 0;
void *gptr;
export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int8 a[programCount];
for (uniform int i = 0; i < programCount; ++i)
a[i] = aFOO[i];
int g = 0;
int8 *ptr = (aFOO[0] == 1234) ? (int8 * varying)gptr : (a + programIndex);
if (programIndex < 2)
g = *ptr;
RET[programIndex] = g;
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
RET[0] = 1;
RET[1] = 2;
}