#include "../test_static.isph" task void f_f(uniform float RET[], uniform float aFOO[]) { float aa = aFOO[programIndex]; float<4> a = { -1, -2, -3, -4 }; if (programIndex < 4) { // TODO: we need to optimize ispc to not throw out-of-bound warning here. #pragma ignore warning a[3-programIndex] = aa; } //CO print("%\n%\n%\n%\n", a[0], a[1], a[2], a[3]); int i = clamp(3-programIndex, 0, 3); //CO print("%\n%\n", i, a[i]); #pragma ignore warning(perf) RET[programIndex] = a[i]; } task void result(uniform float RET[]) { RET[programIndex] = (programIndex < 4) ? 1+programIndex : -1; }