type RTArr = [[stride(4)]] array<f32>; type RTArr_1 = [[stride(4)]] array<f32>; [[block]] struct ssbOut { result : RTArr_1; }; [[block]] struct ssbA { A : RTArr_1; }; [[block]] struct Uniforms { NAN : f32; aShape : i32; outShape : i32; outShapeStrides : i32; size : i32; }; [[group(0), binding(0)]] var<storage, read_write> x_16 : ssbOut; [[group(0), binding(1)]] var<storage, read> x_20 : ssbA; var<private> gl_GlobalInvocationID : vec3<u32>; [[group(0), binding(2)]] var<uniform> x_24 : Uniforms; fn getAAtOutCoords_() -> f32 { let x_42 : u32 = gl_GlobalInvocationID.x; let x_44 : f32 = x_20.A[x_42]; return x_44; } fn unaryOperation_f1_(a : ptr<function, f32>) -> f32 { let x_47 : f32 = *(a); if ((x_47 < 0.0)) { return 0x1p+128; } let x_55 : f32 = *(a); return log(x_55); } fn setOutput_i1_f1_(flatIndex : ptr<function, i32>, value : ptr<function, f32>) { let x_27 : i32 = *(flatIndex); let x_28 : f32 = *(value); x_16.result[x_27] = x_28; return; } fn main_1() { var index : i32; var a_1 : f32; var param : f32; var param_1 : i32; var param_2 : f32; let x_61 : u32 = gl_GlobalInvocationID.x; index = bitcast<i32>(x_61); let x_63 : i32 = index; let x_70 : i32 = x_24.size; if ((x_63 < x_70)) { let x_75 : f32 = getAAtOutCoords_(); a_1 = x_75; let x_77 : f32 = a_1; param = x_77; let x_78 : f32 = unaryOperation_f1_(&(param)); let x_80 : i32 = index; param_1 = x_80; param_2 = x_78; setOutput_i1_f1_(&(param_1), &(param_2)); } return; } [[stage(compute), workgroup_size(128, 1, 1)]] fn main([[builtin(global_invocation_id)]] gl_GlobalInvocationID_param : vec3<u32>) { gl_GlobalInvocationID = gl_GlobalInvocationID_param; main_1(); }