wasm2spirv 0.1.0

Compile your WebAssembly programs into SPIR-V shaders
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export fn dot(n: usize, alpha: [*]const f32, beta: [*]const f32, tmp: [*]f32) void {
    const index = gl_GlobalInvocationID(0);
    const size = gl_NumWorkGroups(0);
    var result: f32 = 0;

    var i: usize = index;
    while (i < n) {
        result += alpha[i] * beta[i];
        i += size;
    }

    tmp[index] = result;
}

extern "spir_global" fn gl_GlobalInvocationID(u32) usize;
extern "spir_global" fn gl_NumWorkGroups(u32) usize;