#include "test_static.isph"
task void f_f(uniform float RET[], uniform float aFOO[]) {
    float a = aFOO[programIndex];
    RET[programIndex] = popcnt((int)a);
}

static int manualpc(int v) {
    int count = 0;
    while (v != 0) {
        if (v & 1)
            ++count;
        v >>= 1;
    }
    return count;
}

task void result(uniform float RET[]) {
    assert(programCount <= 64);
    RET[programIndex] = manualpc(programIndex+1);
}
