var arg_0 : atomic; struct S { old_value : u32, exchanged : bool, } fn atomicCompareExchangeWeak_83580d() { var arg_1 : u32 = 0u; var arg_2 : u32 = 0u; var res : S = S(); arg_1 = 1u; arg_2 = 1u; let v = arg_2; let v_1 = atomicCompareExchangeWeak(&(arg_0), arg_1, v).old_value; res = S(v_1, (v_1 == v)); } fn compute_main_inner(local_invocation_index : u32) { atomicStore(&(arg_0), 0u); workgroupBarrier(); atomicCompareExchangeWeak_83580d(); } @compute @workgroup_size(1u, 1u, 1u) fn compute_main(@builtin(local_invocation_index) local_invocation_index_1 : u32) { compute_main_inner(local_invocation_index_1); }