22
33// NOTE: Assertions have been autogenerated by utils/generate-test-checks.py
44
5- // CHECK-LABEL: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformLogicalXoriib(i32, i32, i1) -> i1 attributes {no_unwind, will_return}
6- // CHECK: llvm.func spir_funccc @_Z32__spirv_GroupNonUniformLogicalOriib(i32, i32, i1) -> i1 attributes {no_unwind, will_return}
7- // CHECK: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformLogicalAndiib(i32, i32, i1) -> i1 attributes {no_unwind, will_return}
8- // CHECK: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformBitwiseXoriij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
9- // CHECK: llvm.func spir_funccc @_Z32__spirv_GroupNonUniformBitwiseOriij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
10- // CHECK: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformBitwiseAndiij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
11- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformSMaxiijj(i32, i32, i32, i32) -> i32 attributes {no_unwind, will_return}
12- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMaxiif(i32, i32, f32) -> f32 attributes {no_unwind, will_return}
13- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformUMaxiij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
14- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformSMaxiij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
15- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMiniifj(i32, i32, f32, i32) -> f32 attributes {no_unwind, will_return}
16- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMiniif(i32, i32, f32) -> f32 attributes {no_unwind, will_return}
17- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformUMiniij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
18- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformSMiniij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
19- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMuliif(i32, i32, f32) -> f32 attributes {no_unwind, will_return}
20- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformIMuliijj(i32, i32, i32, i32) -> i32 attributes {no_unwind, will_return}
21- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFAddiifj(i32, i32, f32, i32) -> f32 attributes {no_unwind, will_return}
22- // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformIAddiij(i32, i32, i32) -> i32 attributes {no_unwind, will_return}
5+ // CHECK-LABEL: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformLogicalXoriib(i32, i32, i1) -> i1 attributes {convergent, no_unwind, will_return}
6+ // CHECK: llvm.func spir_funccc @_Z32__spirv_GroupNonUniformLogicalOriib(i32, i32, i1) -> i1 attributes {convergent, no_unwind, will_return}
7+ // CHECK: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformLogicalAndiib(i32, i32, i1) -> i1 attributes {convergent, no_unwind, will_return}
8+ // CHECK: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformBitwiseXoriij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
9+ // CHECK: llvm.func spir_funccc @_Z32__spirv_GroupNonUniformBitwiseOriij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
10+ // CHECK: llvm.func spir_funccc @_Z33__spirv_GroupNonUniformBitwiseAndiij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
11+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformSMaxiijj(i32, i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
12+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMaxiif(i32, i32, f32) -> f32 attributes {convergent, no_unwind, will_return}
13+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformUMaxiij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
14+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformSMaxiij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
15+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMiniifj(i32, i32, f32, i32) -> f32 attributes {convergent, no_unwind, will_return}
16+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMiniif(i32, i32, f32) -> f32 attributes {convergent, no_unwind, will_return}
17+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformUMiniij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
18+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformSMiniij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
19+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFMuliif(i32, i32, f32) -> f32 attributes {convergent, no_unwind, will_return}
20+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformIMuliijj(i32, i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
21+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformFAddiifj(i32, i32, f32, i32) -> f32 attributes {convergent, no_unwind, will_return}
22+ // CHECK: llvm.func spir_funccc @_Z27__spirv_GroupNonUniformIAddiij(i32, i32, i32) -> i32 attributes {convergent, no_unwind, will_return}
2323
2424// CHECK-LABEL: llvm.func @non_uniform_iadd(
2525// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
2626// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
2727// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
28- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformIAddiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
28+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformIAddiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
2929// CHECK: llvm.return %[[VAL_3]] : i32
3030// CHECK: }
3131spirv.func @non_uniform_iadd (%arg0: i32 ) -> i32 " None" {
@@ -38,7 +38,7 @@ spirv.func @non_uniform_iadd(%arg0: i32) -> i32 "None" {
3838// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(16 : i32) : i32
3939// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(3 : i32) : i32
4040// CHECK: %[[VAL_3:.*]] = llvm.mlir.constant(3 : i32) : i32
41- // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFAddiifj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {no_unwind, will_return} : (i32, i32, f32, i32) -> f32
41+ // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFAddiifj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {convergent, no_unwind, will_return} : (i32, i32, f32, i32) -> f32
4242// CHECK: llvm.return %[[VAL_4]] : f32
4343// CHECK: }
4444spirv.func @non_uniform_fadd (%arg0: f32 ) -> f32 " None" {
@@ -52,7 +52,7 @@ spirv.func @non_uniform_fadd(%arg0: f32) -> f32 "None" {
5252// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(16 : i32) : i32
5353// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(3 : i32) : i32
5454// CHECK: %[[VAL_3:.*]] = llvm.mlir.constant(3 : i32) : i32
55- // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformIMuliijj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {no_unwind, will_return} : (i32, i32, i32, i32) -> i32
55+ // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformIMuliijj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {convergent, no_unwind, will_return} : (i32, i32, i32, i32) -> i32
5656// CHECK: llvm.return %[[VAL_4]] : i32
5757// CHECK: }
5858spirv.func @non_uniform_imul (%arg0: i32 ) -> i32 " None" {
@@ -65,7 +65,7 @@ spirv.func @non_uniform_imul(%arg0: i32) -> i32 "None" {
6565// CHECK-SAME: %[[VAL_0:.*]]: f32) -> f32 {
6666// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
6767// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
68- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMuliif(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, f32) -> f32
68+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMuliif(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, f32) -> f32
6969// CHECK: llvm.return %[[VAL_3]] : f32
7070// CHECK: }
7171spirv.func @non_uniform_fmul (%arg0: f32 ) -> f32 " None" {
@@ -77,7 +77,7 @@ spirv.func @non_uniform_fmul(%arg0: f32) -> f32 "None" {
7777// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
7878// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
7979// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
80- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformSMiniij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
80+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformSMiniij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
8181// CHECK: llvm.return %[[VAL_3]] : i32
8282// CHECK: }
8383spirv.func @non_uniform_smin (%arg0: i32 ) -> i32 " None" {
@@ -89,7 +89,7 @@ spirv.func @non_uniform_smin(%arg0: i32) -> i32 "None" {
8989// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
9090// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
9191// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
92- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformUMiniij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
92+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformUMiniij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
9393// CHECK: llvm.return %[[VAL_3]] : i32
9494// CHECK: }
9595spirv.func @non_uniform_umin (%arg0: i32 ) -> i32 " None" {
@@ -101,7 +101,7 @@ spirv.func @non_uniform_umin(%arg0: i32) -> i32 "None" {
101101// CHECK-SAME: %[[VAL_0:.*]]: f32) -> f32 {
102102// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
103103// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
104- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMiniif(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, f32) -> f32
104+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMiniif(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, f32) -> f32
105105// CHECK: llvm.return %[[VAL_3]] : f32
106106// CHECK: }
107107spirv.func @non_uniform_fmin (%arg0: f32 ) -> f32 " None" {
@@ -114,7 +114,7 @@ spirv.func @non_uniform_fmin(%arg0: f32) -> f32 "None" {
114114// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(16 : i32) : i32
115115// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(3 : i32) : i32
116116// CHECK: %[[VAL_3:.*]] = llvm.mlir.constant(3 : i32) : i32
117- // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMiniifj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {no_unwind, will_return} : (i32, i32, f32, i32) -> f32
117+ // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMiniifj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {convergent, no_unwind, will_return} : (i32, i32, f32, i32) -> f32
118118// CHECK: llvm.return %[[VAL_4]] : f32
119119// CHECK: }
120120spirv.func @non_uniform_fmin_cluster (%arg0: f32 ) -> f32 " None" {
@@ -127,7 +127,7 @@ spirv.func @non_uniform_fmin_cluster(%arg0: f32) -> f32 "None" {
127127// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
128128// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
129129// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
130- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformSMaxiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
130+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformSMaxiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
131131// CHECK: llvm.return %[[VAL_3]] : i32
132132// CHECK: }
133133spirv.func @non_uniform_smax (%arg0: i32 ) -> i32 " None" {
@@ -139,7 +139,7 @@ spirv.func @non_uniform_smax(%arg0: i32) -> i32 "None" {
139139// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
140140// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
141141// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
142- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformUMaxiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
142+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformUMaxiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
143143// CHECK: llvm.return %[[VAL_3]] : i32
144144// CHECK: }
145145spirv.func @non_uniform_umax (%arg0: i32 ) -> i32 " None" {
@@ -151,7 +151,7 @@ spirv.func @non_uniform_umax(%arg0: i32) -> i32 "None" {
151151// CHECK-SAME: %[[VAL_0:.*]]: f32) -> f32 {
152152// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
153153// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
154- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMaxiif(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, f32) -> f32
154+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformFMaxiif(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, f32) -> f32
155155// CHECK: llvm.return %[[VAL_3]] : f32
156156// CHECK: }
157157spirv.func @non_uniform_fmax (%arg0: f32 ) -> f32 " None" {
@@ -164,7 +164,7 @@ spirv.func @non_uniform_fmax(%arg0: f32) -> f32 "None" {
164164// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(16 : i32) : i32
165165// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(3 : i32) : i32
166166// CHECK: %[[VAL_3:.*]] = llvm.mlir.constant(3 : i32) : i32
167- // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformSMaxiijj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {no_unwind, will_return} : (i32, i32, i32, i32) -> i32
167+ // CHECK: %[[VAL_4:.*]] = llvm.call spir_funccc @_Z27__spirv_GroupNonUniformSMaxiijj(%[[VAL_2]], %[[VAL_3]], %[[VAL_0]], %[[VAL_1]]) {convergent, no_unwind, will_return} : (i32, i32, i32, i32) -> i32
168168// CHECK: llvm.return %[[VAL_4]] : i32
169169// CHECK: }
170170spirv.func @non_uniform_smax_cluster (%arg0: i32 ) -> i32 " None" {
@@ -177,7 +177,7 @@ spirv.func @non_uniform_smax_cluster(%arg0: i32) -> i32 "None" {
177177// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
178178// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
179179// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
180- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformBitwiseAndiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
180+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformBitwiseAndiij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
181181// CHECK: llvm.return %[[VAL_3]] : i32
182182// CHECK: }
183183spirv.func @non_uniform_bitwise_and (%arg0: i32 ) -> i32 " None" {
@@ -189,7 +189,7 @@ spirv.func @non_uniform_bitwise_and(%arg0: i32) -> i32 "None" {
189189// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
190190// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
191191// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
192- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z32__spirv_GroupNonUniformBitwiseOriij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
192+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z32__spirv_GroupNonUniformBitwiseOriij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
193193// CHECK: llvm.return %[[VAL_3]] : i32
194194// CHECK: }
195195spirv.func @non_uniform_bitwise_or (%arg0: i32 ) -> i32 " None" {
@@ -201,7 +201,7 @@ spirv.func @non_uniform_bitwise_or(%arg0: i32) -> i32 "None" {
201201// CHECK-SAME: %[[VAL_0:.*]]: i32) -> i32 {
202202// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
203203// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
204- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformBitwiseXoriij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i32) -> i32
204+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformBitwiseXoriij(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i32) -> i32
205205// CHECK: llvm.return %[[VAL_3]] : i32
206206// CHECK: }
207207spirv.func @non_uniform_bitwise_xor (%arg0: i32 ) -> i32 " None" {
@@ -213,7 +213,7 @@ spirv.func @non_uniform_bitwise_xor(%arg0: i32) -> i32 "None" {
213213// CHECK-SAME: %[[VAL_0:.*]]: i1) -> i1 {
214214// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
215215// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
216- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformLogicalAndiib(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i1) -> i1
216+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformLogicalAndiib(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i1) -> i1
217217// CHECK: llvm.return %[[VAL_3]] : i1
218218// CHECK: }
219219spirv.func @non_uniform_logical_and (%arg0: i1 ) -> i1 " None" {
@@ -225,7 +225,7 @@ spirv.func @non_uniform_logical_and(%arg0: i1) -> i1 "None" {
225225// CHECK-SAME: %[[VAL_0:.*]]: i1) -> i1 {
226226// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
227227// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
228- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z32__spirv_GroupNonUniformLogicalOriib(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i1) -> i1
228+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z32__spirv_GroupNonUniformLogicalOriib(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i1) -> i1
229229// CHECK: llvm.return %[[VAL_3]] : i1
230230// CHECK: }
231231spirv.func @non_uniform_logical_or (%arg0: i1 ) -> i1 " None" {
@@ -237,7 +237,7 @@ spirv.func @non_uniform_logical_or(%arg0: i1) -> i1 "None" {
237237// CHECK-SAME: %[[VAL_0:.*]]: i1) -> i1 {
238238// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(3 : i32) : i32
239239// CHECK: %[[VAL_2:.*]] = llvm.mlir.constant(0 : i32) : i32
240- // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformLogicalXoriib(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {no_unwind, will_return} : (i32, i32, i1) -> i1
240+ // CHECK: %[[VAL_3:.*]] = llvm.call spir_funccc @_Z33__spirv_GroupNonUniformLogicalXoriib(%[[VAL_1]], %[[VAL_2]], %[[VAL_0]]) {convergent, no_unwind, will_return} : (i32, i32, i1) -> i1
241241// CHECK: llvm.return %[[VAL_3]] : i1
242242// CHECK: }
243243spirv.func @non_uniform_logical_xor (%arg0: i1 ) -> i1 " None" {
0 commit comments