alias Arr = array; struct S_atomic { /* @offset(0) */ x : i32, /* @offset(4) */ a : array, 10u>, /* @offset(44) */ y : u32, } struct S { /* @offset(0) */ x : i32, /* @offset(4) */ a : Arr, /* @offset(44) */ y : u32, } var local_invocation_index_1 : u32; var wg : S_atomic; fn compute_main_inner(local_invocation_index_2 : u32) { var idx : u32 = 0u; wg.x = 0i; wg.y = 0u; idx = local_invocation_index_2; loop { let x_30 : u32 = idx; if (!((x_30 < 10u))) { break; } let x_35 : u32 = idx; atomicStore(&(wg.a[x_35]), 0u); continuing { let x_41 : u32 = idx; idx = (x_41 + 1u); } } workgroupBarrier(); atomicStore(&(wg.a[4i]), 1u); return; } fn compute_main_1() { let x_53 : u32 = local_invocation_index_1; compute_main_inner(x_53); return; } @compute @workgroup_size(1i, 1i, 1i) fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) { local_invocation_index_1 = local_invocation_index_1_param; compute_main_1(); }