| type RTArr = [[stride(4)]] array<f32>; |
| |
| type RTArr_1 = [[stride(4)]] array<f32>; |
| |
| [[block]] |
| struct ResultMatrix { |
| numbers : RTArr_1; |
| }; |
| |
| type RTArr_2 = [[stride(4)]] array<f32>; |
| |
| [[block]] |
| struct FirstMatrix { |
| numbers : RTArr_1; |
| }; |
| |
| [[block]] |
| struct SecondMatrix { |
| numbers : RTArr_1; |
| }; |
| |
| [[block]] |
| struct Uniforms { |
| NAN : f32; |
| sizeA : i32; |
| sizeB : i32; |
| }; |
| |
| var<private> gl_GlobalInvocationID : vec3<u32>; |
| |
| [[group(0), binding(2)]] var<storage, read_write> resultMatrix : ResultMatrix; |
| |
| [[group(0), binding(0)]] var<storage, read> firstMatrix : FirstMatrix; |
| |
| [[group(0), binding(1)]] var<storage, read> secondMatrix : SecondMatrix; |
| |
| [[group(0), binding(3)]] var<uniform> x_46 : Uniforms; |
| |
| fn binaryOperation_f1_f1_(a : ptr<function, f32>, b : ptr<function, f32>) -> f32 { |
| var x_26 : f32; |
| let x_13 : f32 = *(b); |
| if ((x_13 == 0.0)) { |
| return 1.0; |
| } |
| let x_21 : f32 = *(b); |
| if (!((round((x_21 - (2.0 * floor((x_21 / 2.0))))) == 1.0))) { |
| let x_29 : f32 = *(a); |
| let x_31 : f32 = *(b); |
| x_26 = pow(abs(x_29), x_31); |
| } else { |
| let x_34 : f32 = *(a); |
| let x_36 : f32 = *(a); |
| let x_38 : f32 = *(b); |
| x_26 = (sign(x_34) * pow(abs(x_36), x_38)); |
| } |
| let x_41 : f32 = x_26; |
| return x_41; |
| } |
| |
| fn main_1() { |
| var index : i32; |
| var a_1 : i32; |
| var param : f32; |
| var param_1 : f32; |
| let x_54 : u32 = gl_GlobalInvocationID.x; |
| index = bitcast<i32>(x_54); |
| a_1 = -10; |
| let x_63 : i32 = index; |
| param = -4.0; |
| param_1 = -3.0; |
| let x_68 : f32 = binaryOperation_f1_f1_(&(param), &(param_1)); |
| resultMatrix.numbers[x_63] = x_68; |
| return; |
| } |
| |
| [[stage(compute), workgroup_size(1, 1, 1)]] |
| fn main([[builtin(global_invocation_id)]] gl_GlobalInvocationID_param : vec3<u32>) { |
| gl_GlobalInvocationID = gl_GlobalInvocationID_param; |
| main_1(); |
| } |