#include "test_static.isph"
uniform int32 s = 1234;

task void f_f(uniform float RET[], uniform float aFOO[]) {
    float a = aFOO[programIndex]; 
    float b = 0;
    if (programIndex & 1) {
        b = atomic_swap_local(&s, programIndex);
    }
    RET[programIndex] = reduce_add(b) + s;
}

task void result(uniform float RET[]) {
    RET[programIndex] = 1234 + reduce_add((programIndex & 1) ? programIndex : 0);
}
