Files
ispc/tests/sign-extend-1.ispc
Matt Pharr a535aa586b Fix issue #2: use zero extend to convert bool->int, not sign extend.
This way, we match C/C++ in that casting a bool to an int gives either the value
zero or the value one.  There is a new stdlib function int sign_extend(bool)
that does sign extension for cases where that's desired.
2011-07-12 13:30:05 +01:00

16 lines
348 B
Plaintext

export uniform int width() { return programCount; }
export void f_f(uniform float RET[], uniform float aFOO[]) {
float a = aFOO[programIndex];
bool b = (a == 1.);
int32 s = sign_extend(b);
RET[programIndex] = (s == 0xffffffff) ? 16 : 2;
}
export void result(uniform float RET[]) {
RET[programIndex] = 2;
RET[0] = 16;
}