1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
#include "test_static.isph"
task void f_f(uniform float RET[], uniform float aFOO[]) {
uniform int a[100];
for (uniform int i = 0; i < 100; ++i)
a[i] = i;
int aa = 32;
uniform int count = 0;
if (programIndex & 1)
count += packed_load_active(&a[10], &aa);
if (!(programIndex & 1))
count += packed_load_active(&a[10+count], &aa);
RET[programIndex] = aa;
}
task void result(uniform float RET[]) {
if (programCount == 1)
RET[0] = 10;
else {
for (uniform int i = 0; i < programCount/2; ++i) {
RET[2*i+1] = 10+i;
RET[2*i] = 10+programCount/2+i;
}
}
}
|