| groupshared int g1; |
| |
| void tint_zero_workgroup_memory(uint local_idx) { |
| if ((local_idx < 1u)) { |
| int atomic_result = 0; |
| InterlockedExchange(g1, 0, atomic_result); |
| } |
| GroupMemoryBarrierWithGroupSync(); |
| } |
| |
| int tint_ftoi(float v) { |
| return ((v < 2147483520.0f) ? ((v < -2147483648.0f) ? -2147483648 : int(v)) : 2147483647); |
| } |
| |
| RWByteAddressBuffer s : register(u0); |
| |
| struct S { |
| int a; |
| int b; |
| }; |
| |
| int accept_value(int val) { |
| return val; |
| } |
| |
| int accept_ptr_deref_call_func(inout int val) { |
| int tint_symbol_2 = val; |
| int tint_symbol_3 = accept_value(val); |
| return (tint_symbol_2 + tint_symbol_3); |
| } |
| |
| int accept_ptr_deref_pass_through(inout int val) { |
| int tint_symbol = val; |
| int tint_symbol_1 = accept_ptr_deref_call_func(val); |
| return (tint_symbol + tint_symbol_1); |
| } |
| |
| int accept_ptr_to_struct_and_access(inout S val) { |
| return (val.a + val.b); |
| } |
| |
| int accept_ptr_to_struct_access_pass_ptr(inout S val) { |
| val.a = 2; |
| return val.a; |
| } |
| |
| int accept_ptr_vec_access_elements(inout float3 v1) { |
| v1.x = cross(v1, v1).x; |
| return tint_ftoi(v1.x); |
| } |
| |
| int call_builtin_with_mod_scope_ptr() { |
| int atomic_result_1 = 0; |
| InterlockedOr(g1, 0, atomic_result_1); |
| return atomic_result_1; |
| } |
| |
| struct tint_symbol_11 { |
| uint local_invocation_index : SV_GroupIndex; |
| }; |
| |
| void main_inner(uint local_invocation_index) { |
| tint_zero_workgroup_memory(local_invocation_index); |
| int v1 = 0; |
| S v2 = (S)0; |
| float3 v4 = (0.0f).xxx; |
| int atomic_result_2 = 0; |
| InterlockedOr(g1, 0, atomic_result_2); |
| int t1 = atomic_result_2; |
| int tint_symbol_4 = accept_ptr_deref_pass_through(v1); |
| int tint_symbol_5 = accept_ptr_to_struct_and_access(v2); |
| int tint_symbol_6 = accept_ptr_to_struct_and_access(v2); |
| int tint_symbol_7 = accept_ptr_vec_access_elements(v4); |
| int tint_symbol_8 = accept_ptr_to_struct_access_pass_ptr(v2); |
| int tint_symbol_9 = call_builtin_with_mod_scope_ptr(); |
| s.Store(0u, asuint(((((((tint_symbol_4 + tint_symbol_5) + tint_symbol_6) + tint_symbol_7) + tint_symbol_8) + tint_symbol_9) + t1))); |
| } |
| |
| [numthreads(1, 1, 1)] |
| void main(tint_symbol_11 tint_symbol_10) { |
| main_inner(tint_symbol_10.local_invocation_index); |
| return; |
| } |