Fix various tests/[frs]* files to be correct with 32 and 64-wide targets.
Still todo: tests/c*, tests/test-*
This commit is contained in:
@@ -3,7 +3,7 @@ export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
double a = (1<<programIndex) * 1.5;
|
||||
double a = (1<< (programIndex % 28)) * 1.5;
|
||||
if (programIndex & 1)
|
||||
a = -a;
|
||||
int exponent;
|
||||
@@ -12,5 +12,5 @@ export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1+programIndex;
|
||||
RET[programIndex] = 1+(programIndex % 28);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
double a = (1<<programIndex) * 1.5;
|
||||
double a = (1<< (programIndex%28)) * 1.5;
|
||||
if (programIndex & 1)
|
||||
a = -a;
|
||||
int exponent;
|
||||
|
||||
@@ -3,7 +3,7 @@ export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = (1<<programIndex) * 1.5;
|
||||
float a = (1<< (programIndex%28)) * 1.5;
|
||||
if (programIndex & 1)
|
||||
a = -a;
|
||||
int exponent;
|
||||
@@ -12,5 +12,5 @@ export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1+programIndex;
|
||||
RET[programIndex] = 1+(programIndex%28);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = (1<<programIndex) * 1.5;
|
||||
float a = (1<< (programIndex%28)) * 1.5;
|
||||
if (programIndex & 1)
|
||||
a = -a;
|
||||
int exponent;
|
||||
|
||||
@@ -6,8 +6,8 @@ export uniform int width() { return programCount; }
|
||||
float f(float);
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
RET[programIndex] = f(a);
|
||||
int a = aFOO[programIndex];
|
||||
RET[programIndex] = f(a % 16);
|
||||
}
|
||||
|
||||
float f(float x) {
|
||||
@@ -16,7 +16,7 @@ float f(float x) {
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
uniform float fib[16] = { 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136 };
|
||||
RET[programIndex] = fib[programIndex];
|
||||
uniform float fib[16] = { 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 0 };
|
||||
RET[programIndex] = fib[programIndex % 16];
|
||||
}
|
||||
|
||||
|
||||
@@ -11,12 +11,12 @@ float f(float x) {
|
||||
}
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
RET[programIndex] = f(a);
|
||||
int a = aFOO[programIndex];
|
||||
RET[programIndex] = f(a % 16);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
uniform float fib[16] = { 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136 };
|
||||
RET[programIndex] = fib[programIndex];
|
||||
uniform float fib[16] = { 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 0 };
|
||||
RET[programIndex] = fib[programIndex % 16];
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
a *= -1;
|
||||
Point vp = { a, { 2*a, 3*a, 4*a }, {5*a} };
|
||||
assert(programCount+2 < 80);
|
||||
pts[2+programIndex] = vp;
|
||||
|
||||
RET[programIndex] = pts[programIndex].y[2];
|
||||
|
||||
@@ -17,8 +17,8 @@ void set(Foo f[], int offset, Foo val) {
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[35];
|
||||
for (uniform int i = 0; i < 35; ++i) {
|
||||
Foo foo[programCount+5];
|
||||
for (uniform int i = 0; i < programCount+5; ++i) {
|
||||
foo[i].f = a;
|
||||
foo[i].a = i;
|
||||
foo[i].y = 2*a;
|
||||
|
||||
@@ -17,8 +17,8 @@ void set(uniform float3 f[], int offset, float3 val) {
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
uniform float3 foo[35];
|
||||
for (uniform int i = 0; i < 35; ++i) {
|
||||
uniform float3 foo[programCount+5];
|
||||
for (uniform int i = 0; i < programCount+5; ++i) {
|
||||
foo[i].x = i;
|
||||
foo[i].y = -1;
|
||||
foo[i].z = 2*i;
|
||||
|
||||
@@ -13,6 +13,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
assert(programCount < 80);
|
||||
RET[programIndex] = pts[programIndex].y;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
uniform Point up = pts[1];
|
||||
|
||||
assert(programCount < 80);
|
||||
RET[programIndex] = up.y;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
uniform Point up = { b, 3, 170 };
|
||||
pts[(int64)1] = up;
|
||||
|
||||
assert(programCount < 80);
|
||||
RET[programIndex] = pts[(int64)programIndex].z;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,10 +15,8 @@ static void p(uniform float *uniform ptr) {
|
||||
}
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
soa<4> Point pts[10];
|
||||
//CO uniform Point pts[40];
|
||||
//CO foreach (i = 0 ... 40) {
|
||||
for (uniform int i = 0; i < 40; ++i) {
|
||||
soa<4> Point pts[30];
|
||||
for (uniform int i = 0; i < 120; ++i) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].y[0] = 2*b*i;
|
||||
pts[i].y[1] = 2*b*i+1;
|
||||
@@ -26,14 +24,10 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
//CO p((uniform float * uniform)&pts[0]);
|
||||
|
||||
//CO print("delta %\n", ((uniform float * varying)(&pts[2+programIndex]) -
|
||||
//CO (uniform float * uniform)&pts[0]));
|
||||
|
||||
float a = aFOO[programIndex];
|
||||
a *= -1;
|
||||
Point vp = { a, { 2*a, 3*a, 4*a }, {5*a} };
|
||||
assert(programCount+2 < 120);
|
||||
pts[2+programIndex] = vp;
|
||||
|
||||
//CO p((uniform float * uniform)&pts[0]);
|
||||
|
||||
@@ -15,10 +15,8 @@ static void p(uniform float *uniform ptr) {
|
||||
}
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
soa<4> Point pts[10];
|
||||
//CO uniform Point pts[40];
|
||||
//CO foreach (i = 0 ... 40) {
|
||||
for (uniform int i = 0; i < 40; ++i) {
|
||||
soa<4> Point pts[30];
|
||||
for (uniform int i = 0; i < 120; ++i) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].y[0] = 2*b*i;
|
||||
pts[i].y[1] = 2*b*i+1;
|
||||
@@ -26,18 +24,12 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
//CO p((uniform float * uniform)&pts[0]);
|
||||
|
||||
//CO print("delta %\n", ((uniform float * varying)(&pts[2+programIndex]) -
|
||||
//CO (uniform float * uniform)&pts[0]));
|
||||
|
||||
float a = aFOO[programIndex];
|
||||
a *= -1;
|
||||
Point vp = { a, { 2*a, 3*a, 4*a }, {5*a} };
|
||||
assert(programCount + 2 < 120);
|
||||
pts[2+programIndex] = vp;
|
||||
|
||||
//CO p((uniform float * uniform)&pts[0]);
|
||||
|
||||
RET[programIndex] = pts[programIndex].y[2];
|
||||
}
|
||||
|
||||
|
||||
@@ -16,10 +16,8 @@ static void p(uniform float *uniform ptr) {
|
||||
}
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
soa<4> Point pts[10];
|
||||
//CO uniform Point pts[40];
|
||||
//CO foreach (i = 0 ... 40) {
|
||||
for (uniform int i = 0; i < 40; ++i) {
|
||||
soa<4> Point pts[40];
|
||||
for (uniform int i = 0; i < 160; ++i) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].y[0] = 2*b*i;
|
||||
pts[i].y[1] = 2*b*i+1;
|
||||
@@ -27,19 +25,12 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
//CO p((uniform float * uniform)&pts[0]);
|
||||
|
||||
//CO print("one size %\n", sizeof(soa<4> Point));
|
||||
//CO print("delta %\n", ((uniform int8 * varying)(&pts[2+programIndex]) -
|
||||
//CO (uniform int8 * uniform)&pts[0]));
|
||||
|
||||
float a = aFOO[programIndex];
|
||||
a *= -1;
|
||||
Point vp = { a, { 2*a, 3*a, 4*a }, {5*a} };
|
||||
assert(2+programIndex < 160);
|
||||
pts[2+programIndex] = vp;
|
||||
|
||||
//CO p((uniform float * uniform)&pts[0]);
|
||||
|
||||
RET[programIndex] = pts[programIndex].y[2];
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
++ptr;
|
||||
ptr->y = -programIndex;
|
||||
|
||||
assert(1+programCount < 80);
|
||||
RET[programIndex] = pts[1+programIndex].y;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
soa<8> Point * ptr = &pts[6+programIndex];
|
||||
ptr->y = -programIndex;;
|
||||
|
||||
assert(6+programIndex < 80);
|
||||
RET[programIndex] = pts[6+programIndex].y;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
assert(programCount < 80);
|
||||
RET[programIndex] = pts[programIndex].z;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].y = 2*b*i;
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
|
||||
assert(6+programIndex < 80);
|
||||
soa<8> Point * ptr = &pts[6+programIndex];
|
||||
RET[programIndex] = ptr - pts;
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[4];
|
||||
foreach (i = 0 ... 32) {
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[11];
|
||||
foreach (i = 0 ... 88) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].z = -b*i;
|
||||
for (uniform int j = 0; j < 10; ++j) {
|
||||
@@ -23,6 +23,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
}
|
||||
}
|
||||
|
||||
assert(7+programCount < 88);
|
||||
soa<8> Foo * ptr = &pts[7+programIndex];
|
||||
RET[programIndex] = ptr->pts[3].z;
|
||||
}
|
||||
|
||||
@@ -12,9 +12,8 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[4];
|
||||
//CO uniform Foo pts[32];
|
||||
foreach (i = 0 ... 32) {
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[10];
|
||||
foreach (i = 0 ... 80) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].z = -b*i;
|
||||
for (uniform int j = 0; j < 3; ++j) {
|
||||
@@ -27,6 +26,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
}
|
||||
}
|
||||
|
||||
assert(programIndex < 80);
|
||||
RET[programIndex] = pts[programIndex].pts[programIndex % 3][programIndex % 4].z;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,15 +11,15 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[4];
|
||||
//CO uniform Foo pts[32];
|
||||
foreach (i = 0 ... 32) {
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[10];
|
||||
foreach (i = 0 ... 80) {
|
||||
pts[i].vec.x = b*i;
|
||||
pts[i].vec.y = -b*i;
|
||||
pts[i].vec.z = 2*b*i;
|
||||
pts[i].z = i;
|
||||
}
|
||||
|
||||
|
||||
assert(programIndex + 2 < 80);
|
||||
RET[programIndex] = pts[programIndex+2].vec.y;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,9 +11,8 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[4];
|
||||
//CO uniform Foo pts[32];
|
||||
foreach (i = 0 ... 32) {
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[10];
|
||||
foreach (i = 0 ... 80) {
|
||||
pts[i].vec.x = b*i;
|
||||
pts[i].vec.y = -b*i;
|
||||
pts[i].vec.z = 2*b*i;
|
||||
@@ -21,6 +20,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
}
|
||||
|
||||
pts[programIndex+2].vec.z *= -1;
|
||||
assert(programIndex < 80);
|
||||
float<3> vl = pts[programIndex].vec;
|
||||
RET[programIndex] = vl.z;
|
||||
}
|
||||
|
||||
@@ -11,9 +11,8 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[4];
|
||||
//CO uniform Foo pts[32];
|
||||
foreach (i = 0 ... 32) {
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[10];
|
||||
foreach (i = 0 ... 80) {
|
||||
pts[i].vec.x = b*i;
|
||||
pts[i].vec.y = -b*i;
|
||||
pts[i].vec.z = 2*b*i;
|
||||
@@ -21,6 +20,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
}
|
||||
|
||||
pts[2].vec.x *= -1;
|
||||
assert(programCount < 80);
|
||||
float<3> vl = pts[programIndex].vec;
|
||||
RET[programIndex] = vl.x;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Foo * uniform pts = uniform new soa<8> Foo[4];
|
||||
//CO uniform Foo pts[32];
|
||||
for (uniform int i = 0; i < 32; ++i) {
|
||||
pts[i].vec.x = b*i;
|
||||
pts[i].vec.y = -b*i;
|
||||
|
||||
@@ -6,9 +6,9 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[10];
|
||||
soa<8> Point pts[20];
|
||||
|
||||
foreach (i = b-5 ... 80) {
|
||||
foreach (i = b-5 ... 160) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].y = 2*b*i;
|
||||
pts[i].z = 3*b*i;
|
||||
@@ -16,6 +16,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
uniform Point up = pts[4];
|
||||
|
||||
assert(2*programCount < 160);
|
||||
RET[programIndex] = pts[2*programIndex].x;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[10];
|
||||
soa<8> Point pts[20];
|
||||
|
||||
for (int i = programIndex; i < 16*b; i += programCount) {
|
||||
for (int i = programIndex; i < 32*b; i += programCount) {
|
||||
pts[i].x = b*i;
|
||||
pts[i].y = 2*b*i;
|
||||
pts[i].z = 3*b*i;
|
||||
@@ -16,6 +16,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
uniform Point up = pts[4];
|
||||
|
||||
assert(2*programIndex < 160);
|
||||
RET[programIndex] = pts[2*programIndex].x;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
pts[i].z = 3*b*i;
|
||||
}
|
||||
|
||||
assert(programCount < 80);
|
||||
RET[programIndex] = pts[programIndex].y[2];
|
||||
}
|
||||
|
||||
|
||||
@@ -6,14 +6,15 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[8];
|
||||
foreach (i = 0 ... 64) {
|
||||
soa<8> Point pts[10];
|
||||
foreach (i = 0 ... 80) {
|
||||
pts[i].x = 0;
|
||||
pts[i].y = 0;
|
||||
pts[i].z = 0;
|
||||
}
|
||||
|
||||
Point pv = { a, b, -a };
|
||||
assert(8+programCount < 80);
|
||||
pts[8+programIndex] = pv;
|
||||
|
||||
RET[programIndex] = pts[8+programIndex].z;
|
||||
|
||||
@@ -6,14 +6,15 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[8];
|
||||
foreach (i = 0 ... 64) {
|
||||
soa<8> Point pts[9];
|
||||
foreach (i = 0 ... 72) {
|
||||
pts[i].x = 0;
|
||||
pts[i].y = 0;
|
||||
pts[i].z = 0;
|
||||
}
|
||||
|
||||
Point pv = { a, b, -a };
|
||||
assert(6+programCount < 72);
|
||||
pts[6+programIndex] = pv;
|
||||
|
||||
RET[programIndex] = pts[6+programIndex].x;
|
||||
|
||||
@@ -6,14 +6,15 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[8];
|
||||
foreach (i = 0 ... 64) {
|
||||
soa<8> Point pts[11];
|
||||
foreach (i = 0 ... 88) {
|
||||
pts[i].x = -42;
|
||||
pts[i].y = 0;
|
||||
pts[i].z = 0;
|
||||
}
|
||||
|
||||
Point pv = { a, b, -a };
|
||||
assert(8+programCount < 88);
|
||||
pts[8+programIndex] = pv;
|
||||
|
||||
RET[programIndex] = pts[6+programIndex].x;
|
||||
|
||||
@@ -6,14 +6,15 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[8];
|
||||
foreach (i = 0 ... 64) {
|
||||
soa<8> Point pts[11];
|
||||
foreach (i = 0 ... 88) {
|
||||
pts[i].x = -42;
|
||||
pts[i].y = 0;
|
||||
pts[i].z = 0;
|
||||
}
|
||||
|
||||
Point pv = { a, b, -a };
|
||||
assert(8+programCount < 88);
|
||||
pts[8+programIndex].x = pv.x;
|
||||
pts[8+programIndex].y = pv.y;
|
||||
pts[8+programIndex].z = pv.z;
|
||||
|
||||
@@ -6,14 +6,15 @@ export uniform int width() { return programCount; }
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
|
||||
soa<8> Point pts[8];
|
||||
foreach (i = 0 ... 64) {
|
||||
soa<8> Point pts[12];
|
||||
foreach (i = 0 ... 96) {
|
||||
pts[i].x = -42;
|
||||
pts[i].y = 0;
|
||||
pts[i].z = 0;
|
||||
}
|
||||
|
||||
Point pv = { a, b, -a };
|
||||
assert(8+programCount < 96);
|
||||
pts[7+programIndex] = pv;
|
||||
|
||||
RET[programIndex] = pts[8+programIndex].x;
|
||||
|
||||
@@ -16,6 +16,7 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
uniform Point up = { b, 3, 170 };
|
||||
pts[1] = up;
|
||||
|
||||
assert(programCount < 80);
|
||||
RET[programIndex] = pts[programIndex].z;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ float func(Foo foo[], int offset) {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
Foo foo[programCount+5];
|
||||
uniform int i;
|
||||
for (i = 0; i < 17; ++i)
|
||||
for (i = 0; i < programCount+5; ++i)
|
||||
foo[i].f = i*a;
|
||||
RET[programIndex] = func(foo, (int)a);
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@ float func(Foo foo[], int offset) {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
Foo foo[programCount+1];
|
||||
uniform int i;
|
||||
for (i = 0; i < 17; ++i)
|
||||
for (i = 0; i < programCount+1; ++i)
|
||||
foo[i].f = i*a;
|
||||
RET[programIndex] = func(foo, (int)a);
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ struct Foo {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
Foo foo[programCount+1];
|
||||
uniform int i;
|
||||
for (i = 0; i < 17; ++i)
|
||||
for (i = 0; i < programCount+1; ++i)
|
||||
foo[i].f = i*a;
|
||||
RET[programIndex] = foo[(int)a].f;
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ void f(Foo foo[], float a) {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
for (uniform int i = 0; i < 17; ++i)
|
||||
Foo foo[programCount+5];
|
||||
for (uniform int i = 0; i < programCount+5; ++i)
|
||||
foo[i].f = a;
|
||||
f(foo, a);
|
||||
RET[programIndex] = foo[a].f;
|
||||
|
||||
@@ -10,12 +10,13 @@ struct Foo {
|
||||
export void f_fi(uniform float RET[], uniform float aFOO[], uniform int bFOO[]) {
|
||||
float a = aFOO[programIndex];
|
||||
int b = bFOO[programIndex];
|
||||
varying Foo myFoo[17];
|
||||
varying Foo myFoo[128];
|
||||
uniform int i;
|
||||
for (i = 0; i < 17; ++i) {
|
||||
for (i = 0; i < 128; ++i) {
|
||||
myFoo[i].x = i;
|
||||
myFoo[i].f = 2*i;
|
||||
}
|
||||
assert(b/2 < 128);
|
||||
RET[programIndex] = myFoo[b/2].f;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,13 +7,14 @@ struct Foo { float f; };
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
for (uniform int i = 0; i < 17; ++i)
|
||||
Foo foo[programCount+1];
|
||||
uniform int ind[programCount+1];
|
||||
for (uniform int i = 0; i < programCount+1; ++i) {
|
||||
foo[i].f = a;
|
||||
ind[i] = i+1;
|
||||
}
|
||||
++foo[a].f;
|
||||
assert(programCount <= 16);
|
||||
uniform int i[16] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
|
||||
RET[programIndex] = foo[i[programIndex]].f;
|
||||
RET[programIndex] = foo[ind[programIndex]].f;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) { RET[programIndex] = 2+programIndex; }
|
||||
|
||||
@@ -21,7 +21,7 @@ int switchit(int a, uniform int b) {
|
||||
}
|
||||
return -1234;
|
||||
}
|
||||
case 32:
|
||||
case 9999:
|
||||
*((int *)NULL) = 0;
|
||||
default:
|
||||
return 0;
|
||||
|
||||
@@ -27,7 +27,7 @@ int switchit(int a, uniform int b) {
|
||||
}
|
||||
return 42;
|
||||
}
|
||||
case 32:
|
||||
case 9999:
|
||||
*((int *)NULL) = 0;
|
||||
default:
|
||||
return 0;
|
||||
|
||||
@@ -31,7 +31,7 @@ int switchit(int a, uniform int b) {
|
||||
}
|
||||
return 42;
|
||||
}
|
||||
case 32:
|
||||
case 9999:
|
||||
*((int *)NULL) = 0;
|
||||
default:
|
||||
return 0;
|
||||
|
||||
@@ -12,7 +12,7 @@ int switchit(int a, uniform int b) {
|
||||
if (a & 1)
|
||||
break;
|
||||
return 2;
|
||||
case 32:
|
||||
case 9999:
|
||||
*((int *)NULL) = 0;
|
||||
default:
|
||||
case 1:
|
||||
|
||||
@@ -12,7 +12,7 @@ int switchit(int a, uniform int b) {
|
||||
if (a & 1)
|
||||
break;
|
||||
return 2;
|
||||
case 32:
|
||||
case 9999:
|
||||
*((int *)NULL) = 0;
|
||||
default:
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user