Files
ispc/tests/packed-store-2.ispc
Matt Pharr 11547cb950 stdlib updates to take advantage of pointers
The packed_{load,store}_active now functions take a pointer to a
location at which to start loading/storing, rather than an array
base and a uniform index.

Variants of the prefetch functions that take varying pointers 
are now available.

There are now variants of the various atomic functions that take
varying pointers (issue #112).
2011-11-29 15:41:38 -08:00

20 lines
555 B
Plaintext

export uniform int width() { return programCount; }
export void f_f(uniform float RET[], uniform float aFOO[]) {
float a = aFOO[programIndex];
uniform int pack[2+programCount];
for (uniform int i = 0; i < 2+programCount; ++i)
pack[i] = 0;
if ((int)a & 1)
packed_store_active(&pack[2], a);
RET[programIndex] = pack[programIndex];
}
export void result(uniform float RET[]) {
RET[programIndex] = 0;
uniform int val = 1;
for (uniform int i = 2; i < 2+programCount/2; ++i, val += 2)
RET[i] = val;
}