1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct ssbo { 4 ssboAtomic: atomic<u32>, 5 ssboAtomicArray: array<atomic<u32>, 2>, 6 ssboStructWithAtomicMember: S, 7 ssboStructWithAtomicMemberArray: array<_skArrayElement_S, 2>, 8 ssboNestedStructWithAtomicMember: NestedS, 9}; 10@group(0) @binding(0) var<storage, read_write> _storage0 : ssbo; 11struct S { 12 structMemberAtomic: atomic<u32>, 13 structMemberAtomicArray: array<atomic<u32>, 2>, 14}; 15struct NestedS { 16 nestedStructWithAtomicMember: S, 17}; 18var<workgroup> wgAtomic: atomic<u32>; 19var<workgroup> wgAtomicArray: array<atomic<u32>, 2>; 20var<workgroup> wgNestedStructWithAtomicMember: NestedS; 21fn _skslMain() { 22 { 23 let _skTemp1 = atomicLoad(&wgAtomic); 24 let _skTemp2 = atomicAdd(&wgAtomicArray[1], _skTemp1); 25 let _skTemp3 = atomicLoad(&wgAtomicArray[1]); 26 let _skTemp4 = atomicAdd(&wgAtomicArray[0], _skTemp3); 27 let _skTemp5 = atomicAdd(&wgNestedStructWithAtomicMember.nestedStructWithAtomicMember.structMemberAtomic, 1u); 28 } 29} 30@compute @workgroup_size(64, 1, 1) fn main() { 31 _skslMain(); 32} 33struct _skArrayElement_S { 34 @size(16) e : S 35}; 36