Fix more tests for 32 and 64-wide execution.

This commit is contained in:
Matt Pharr
2012-05-30 13:06:07 -07:00
parent 8fd9b84a80
commit fe8b109ca5
6 changed files with 11 additions and 9 deletions

View File

@@ -5,7 +5,8 @@ export void f_f(uniform float RET[], uniform float aFOO[]) {
uniform float * uniform buf = uniform new uniform float[32*32];
for (uniform int i = 0; i < 32*32; ++i)
buf[i] = i;
assert(programIndex <= 64);
RET[programIndex] = buf[64-programIndex];
}

View File

@@ -3,10 +3,10 @@ export uniform int width() { return programCount; }
export void f_f(uniform float RET[], uniform float aFOO[]) {
int32 i = (1 << programIndex);
int32 i = (1 << (programIndex % 28));
RET[programIndex] = count_leading_zeros(i);
}
export void result(uniform float RET[]) {
RET[programIndex] = 31-programIndex;
RET[programIndex] = 31-(programIndex%28);
}

View File

@@ -3,10 +3,10 @@ export uniform int width() { return programCount; }
export void f_f(uniform float RET[], uniform float aFOO[]) {
unsigned int64 i = ((unsigned int64)1 << (40+programIndex));
unsigned int64 i = ((unsigned int64)1 << min(63, 40+programIndex));
RET[programIndex] = count_trailing_zeros(i);
}
export void result(uniform float RET[]) {
RET[programIndex] = 40+programIndex;
RET[programIndex] = min(63, 40+programIndex);
}

View File

@@ -14,7 +14,7 @@ export uniform int width() { return programCount; }
bool ok(float x, float ref) {
bool r = (abs(x - ref) < 1e-6) || abs((x-ref)/ref) < 1e-5;
bool r = (abs(x - ref) < 1e-4) || abs((x-ref)/ref) < 1e-4;
if (any(r == false))
print("mismatch got %, expected %\n", x, ref);
return r;

View File

@@ -14,7 +14,7 @@ export uniform int width() { return programCount; }
bool ok(float x, float ref) {
bool r = (abs(x - ref) < 1e-6) || abs((x-ref)/ref) < 1e-5;
bool r = (abs(x - ref) < 1e-5) || abs((x-ref)/ref) < 1e-5;
if (any(r == false))
print("mismatch got %, expected %\n", x, ref);
return r;

View File

@@ -8,12 +8,13 @@ struct Foo {
};
export void f_fi(uniform float RET[], uniform float a[], uniform int bFOO[]) {
int b = bFOO[programIndex];
uniform struct Foo myFoo[17];
uniform struct Foo myFoo[256];
uniform int i;
for (i = 0; i < 17; ++i) {
for (i = 0; i < 256; ++i) {
myFoo[i].x = i;
myFoo[i].f = 17+2*i;
}
assert(b/2 < 256);
RET[programIndex] = myFoo[b/2].f;
}