type RTArr = array; type RTArr_1 = array; struct ResultMatrix { numbers : RTArr_1; } type RTArr_2 = array; struct FirstMatrix { numbers : RTArr_1; } struct SecondMatrix { numbers : RTArr_1; } struct Uniforms { NAN : f32; sizeA : i32; sizeB : i32; } var gl_GlobalInvocationID : vec3; @group(0) @binding(2) var resultMatrix : ResultMatrix; @group(0) @binding(0) var firstMatrix : FirstMatrix; @group(0) @binding(1) var secondMatrix : SecondMatrix; @group(0) @binding(3) var x_46 : Uniforms; fn binaryOperation_f1_f1_(a : ptr, b : ptr) -> 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(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) { gl_GlobalInvocationID = gl_GlobalInvocationID_param; main_1(); }