We were (unintentionally) only using structural equivalence to compare struct types.

Now we require that the struct name match for two struct types to be the same.
Added a test to check this.
(Also removed a stale test, movmsk-opt.ispc)
This commit is contained in:
Matt Pharr
2012-01-04 11:44:00 -08:00
parent 1a81173c93
commit 5d35349dc9
3 changed files with 16 additions and 35 deletions

View File

@@ -1,35 +0,0 @@
static float float4(uniform float a, uniform float b, uniform float c,
uniform float d) {
float ret = 0;
for (uniform int i = 0; i < programCount; i += 4) {
ret = insert(ret, i + 0, a);
ret = insert(ret, i + 1, b);
ret = insert(ret, i + 2, c);
ret = insert(ret, i + 3, d);
}
return ret;
}
export uniform int width() { return programCount; }
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
float a = aFOO[programIndex];
uniform int ret = 0;
float v = float4(1,1,0,0);
bool b = (v == 1.);
ret = __movmsk((sign_extend(b)));
RET[programIndex] = ret;
}
// fixme for 16-wide...
export void result(uniform float RET[]) {
uniform int x = -1234;
if (programCount == 4) x = 3;
else if (programCount == 8) x = 0x33;
else if (programCount == 16) x = 0x3333;
RET[programIndex] = x;
}