@@ -26,53 +26,58 @@ void main()
2626 //////////////////////////////////////////////////////////////////////////
2727
2828// CHECK: [[val1_27:%[0-9]+]] = OpLoad %int %val1
29- // CHECK-NEXT: [[iadd27:%[0-9]+]] = OpAtomicIAdd %int %dest_i %uint_1 %uint_0 [[val1_27]]
29+ // CHECK-NEXT: [[iadd27:%[0-9]+]] = OpAtomicIAdd %int %dest_i %uint_2 %uint_0 [[val1_27]]
3030// CHECK-NEXT: OpStore %original_i_val [[iadd27]]
3131 InterlockedAdd (dest_i, val1, original_i_val);
3232
3333// CHECK: [[buff:%[0-9]+]] = OpFunctionCall %type_buffer_image %getDest
3434// CHECK-NEXT: OpStore %temp_var_RWBuffer [[buff]]
35- // CHECK-NEXT: OpImageTexelPointer %_ptr_Image_uint %temp_var_RWBuffer %uint_0 %uint_0
35+ // CHECK-NEXT: [[ptr:%[0-9]+]] = OpImageTexelPointer %_ptr_Image_uint %temp_var_RWBuffer %uint_0 %uint_0
36+ // CHECK-NEXT: [[load_28:%[0-9]+]] = OpLoad %int %val1
37+ // CHECK-NEXT: [[val1_28:%[0-9]+]] = OpBitcast %uint [[load_28]]
38+ // CHECK-NEXT: [[iadd28:%[0-9]+]] = OpAtomicIAdd %uint [[ptr]] %uint_1 %uint_0 [[val1_28]]
39+ // CHECK-NEXT: [[iadd28_2:%[0-9]+]] = OpBitcast %int [[iadd28]]
40+ // CHECK-NEXT: OpStore %original_i_val [[iadd28_2]]
3641 InterlockedAdd (getDest ()[0 ], val1, original_i_val);
3742
38- // CHECK: [[and28:%[0-9]+]] = OpAtomicAnd %uint %dest_u %uint_1 %uint_0 %uint_10
43+ // CHECK: [[and28:%[0-9]+]] = OpAtomicAnd %uint %dest_u %uint_2 %uint_0 %uint_10
3944// CHECK-NEXT: OpStore %original_u_val [[and28]]
4045 InterlockedAnd (dest_u, 10 , original_u_val);
4146
4247// CHECK: [[uint10:%[0-9]+]] = OpBitcast %int %uint_10
43- // CHECK-NEXT: [[asmax29:%[0-9]+]] = OpAtomicSMax %int %dest_i %uint_1 %uint_0 [[uint10]]
48+ // CHECK-NEXT: [[asmax29:%[0-9]+]] = OpAtomicSMax %int %dest_i %uint_2 %uint_0 [[uint10]]
4449// CHECK-NEXT: OpStore %original_i_val [[asmax29]]
4550 InterlockedMax (dest_i, 10 , original_i_val);
4651
47- // CHECK: [[umin30:%[0-9]+]] = OpAtomicUMin %uint %dest_u %uint_1 %uint_0 %uint_10
52+ // CHECK: [[umin30:%[0-9]+]] = OpAtomicUMin %uint %dest_u %uint_2 %uint_0 %uint_10
4853// CHECK-NEXT: OpStore %original_u_val [[umin30]]
4954 InterlockedMin (dest_u, 10 , original_u_val);
5055
5156// CHECK: [[val2_31:%[0-9]+]] = OpLoad %int %val2
52- // CHECK-NEXT: [[or31:%[0-9]+]] = OpAtomicOr %int %dest_i %uint_1 %uint_0 [[val2_31]]
57+ // CHECK-NEXT: [[or31:%[0-9]+]] = OpAtomicOr %int %dest_i %uint_2 %uint_0 [[val2_31]]
5358// CHECK-NEXT: OpStore %original_i_val [[or31]]
5459 InterlockedOr (dest_i, val2, original_i_val);
5560
56- // CHECK: [[xor32:%[0-9]+]] = OpAtomicXor %uint %dest_u %uint_1 %uint_0 %uint_10
61+ // CHECK: [[xor32:%[0-9]+]] = OpAtomicXor %uint %dest_u %uint_2 %uint_0 %uint_10
5762// CHECK-NEXT: OpStore %original_u_val [[xor32]]
5863 InterlockedXor (dest_u, 10 , original_u_val);
5964
6065// CHECK: [[val1_33:%[0-9]+]] = OpLoad %int %val1
6166// CHECK-NEXT: [[val2_33:%[0-9]+]] = OpLoad %int %val2
62- // CHECK-NEXT: {{%[0-9]+}} = OpAtomicCompareExchange %int %dest_i %uint_1 %uint_0 %uint_0 [[val2_33]] [[val1_33]]
67+ // CHECK-NEXT: {{%[0-9]+}} = OpAtomicCompareExchange %int %dest_i %uint_2 %uint_0 %uint_0 [[val2_33]] [[val1_33]]
6368 InterlockedCompareStore (dest_i, val1, val2);
6469
65- // CHECK: [[ace34:%[0-9]+]] = OpAtomicCompareExchange %uint %dest_u %uint_1 %uint_0 %uint_0 %uint_20 %uint_15
70+ // CHECK: [[ace34:%[0-9]+]] = OpAtomicCompareExchange %uint %dest_u %uint_2 %uint_0 %uint_0 %uint_20 %uint_15
6671// CHECK-NEXT: OpStore %original_u_val [[ace34]]
6772 InterlockedCompareExchange (dest_u, 15 , 20 , original_u_val);
6873
6974// CHECK: [[val2_35:%[0-9]+]] = OpLoad %int %val2
70- // CHECK-NEXT: [[ace35:%[0-9]+]] = OpAtomicExchange %int %dest_i %uint_1 %uint_0 [[val2_35]]
75+ // CHECK-NEXT: [[ace35:%[0-9]+]] = OpAtomicExchange %int %dest_i %uint_2 %uint_0 [[val2_35]]
7176// CHECK-NEXT: OpStore %original_i_val [[ace35]]
7277 InterlockedExchange (dest_i, val2, original_i_val);
7378
7479// CHECK: [[val_f:%[0-9]+]] = OpLoad %float %val_f1
75- // CHECK-NEXT: [[ace36:%[0-9]+]] = OpAtomicExchange %float %dest_f %uint_1 %uint_0 [[val_f]]
80+ // CHECK-NEXT: [[ace36:%[0-9]+]] = OpAtomicExchange %float %dest_f %uint_2 %uint_0 [[val_f]]
7681// CHECK-NEXT: OpStore %original_f_val [[ace36]]
7782 InterlockedExchange (dest_f, val_f1, original_f_val);
7883}
0 commit comments