Add much more suppport for doubles and in64 types in the standard library, basically supporting everything for them that are supported for floats and int32s. (The notable exceptions being the approximate rcp() and rsqrt() functions, which don't really have sensible analogs for doubles (or at least not built-in instructions).)
22 lines
519 B
Plaintext
22 lines
519 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
|
|
|
|
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
|
float v = aFOO[programIndex];
|
|
uniform float m;
|
|
unsigned int64 iv = (unsigned int)v;
|
|
if (iv & 1)
|
|
m = reduce_add(iv);
|
|
RET[programIndex] = m;
|
|
}
|
|
|
|
export void result(uniform float RET[]) {
|
|
uniform int x = -1234;
|
|
if (programCount == 4) x = 4;
|
|
else if (programCount == 8) x = 16;
|
|
else if (programCount == 16) x = 64;
|
|
RET[programIndex] = x;
|
|
}
|