4
4
// RUN: | FileCheck --check-prefixes=CHECK-32,CHECK %s
5
5
6
6
gpu.module @builtins {
7
- // CHECK-64: llvm.func spir_funccc @_Z14get_num_groupsj(i32) -> i64
8
- // CHECK-64: llvm.func spir_funccc @_Z12get_local_idj(i32) -> i64
9
- // CHECK-64: llvm.func spir_funccc @_Z14get_local_sizej(i32) -> i64
10
- // CHECK-64: llvm.func spir_funccc @_Z13get_global_idj(i32) -> i64
11
- // CHECK-64: llvm.func spir_funccc @_Z12get_group_idj(i32) -> i64
12
- // CHECK-32: llvm.func spir_funccc @_Z14get_num_groupsj(i32) -> i32
13
- // CHECK-32: llvm.func spir_funccc @_Z12get_local_idj(i32) -> i32
14
- // CHECK-32: llvm.func spir_funccc @_Z14get_local_sizej(i32) -> i32
15
- // CHECK-32: llvm.func spir_funccc @_Z13get_global_idj(i32) -> i32
16
- // CHECK-32: llvm.func spir_funccc @_Z12get_group_idj(i32) -> i32
7
+ // CHECK-64: llvm.func spir_funccc @_Z14get_num_groupsj(i32) -> i64 attributes {
8
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
9
+ // CHECK-SAME-DAG: no_unwind
10
+ // CHECK-SAME-DAG: will_return
11
+ // CHECK-64: llvm.func spir_funccc @_Z12get_local_idj(i32) -> i64 attributes {
12
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
13
+ // CHECK-SAME-DAG: no_unwind
14
+ // CHECK-SAME-DAG: will_return
15
+ // CHECK-64: llvm.func spir_funccc @_Z14get_local_sizej(i32) -> i64 attributes {
16
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
17
+ // CHECK-SAME-DAG: no_unwind
18
+ // CHECK-SAME-DAG: will_return
19
+ // CHECK-64: llvm.func spir_funccc @_Z13get_global_idj(i32) -> i64 attributes {
20
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
21
+ // CHECK-SAME-DAG: no_unwind
22
+ // CHECK-SAME-DAG: will_return
23
+ // CHECK-64: llvm.func spir_funccc @_Z12get_group_idj(i32) -> i64 attributes {
24
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
25
+ // CHECK-SAME-DAG: no_unwind
26
+ // CHECK-SAME-DAG: will_return
27
+ // CHECK-32: llvm.func spir_funccc @_Z14get_num_groupsj(i32) -> i32 attributes {
28
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
29
+ // CHECK-SAME-DAG: no_unwind
30
+ // CHECK-SAME-DAG: will_return
31
+ // CHECK-32: llvm.func spir_funccc @_Z12get_local_idj(i32) -> i32 attributes {
32
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
33
+ // CHECK-SAME-DAG: no_unwind
34
+ // CHECK-SAME-DAG: will_return
35
+ // CHECK-32: llvm.func spir_funccc @_Z14get_local_sizej(i32) -> i32 attributes {
36
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
37
+ // CHECK-SAME-DAG: no_unwind
38
+ // CHECK-SAME-DAG: will_return
39
+ // CHECK-32: llvm.func spir_funccc @_Z13get_global_idj(i32) -> i32 attributes {
40
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
41
+ // CHECK-SAME-DAG: no_unwind
42
+ // CHECK-SAME-DAG: will_return
43
+ // CHECK-32: llvm.func spir_funccc @_Z12get_group_idj(i32) -> i32 attributes {
44
+ // CHECK-SAME-DAG: memory = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>
45
+ // CHECK-SAME-DAG: no_unwind
46
+ // CHECK-SAME-DAG: will_return
17
47
18
48
// CHECK-LABEL: gpu_block_id
19
49
func.func @gpu_block_id () -> (index , index , index ) {
@@ -104,7 +134,11 @@ gpu.module @builtins {
104
134
// -----
105
135
106
136
gpu.module @barriers {
107
- // CHECK: llvm.func spir_funccc @_Z7barrierj(i32) attributes {convergent}
137
+ // CHECK: llvm.func spir_funccc @_Z7barrierj(i32) attributes {
138
+ // CHECK-SAME-DAG: no_unwind
139
+ // CHECK-SAME-DAG: convergent
140
+ // CHECK-NOT: memory = #llvm.memory_effects
141
+ // CHECK-SAME: }
108
142
109
143
// CHECK-LABEL: gpu_barrier
110
144
func.func @gpu_barrier () {
@@ -120,10 +154,26 @@ gpu.module @barriers {
120
154
// Check `gpu.shuffle` conversion with default subgroup size.
121
155
122
156
gpu.module @shuffles {
123
- // CHECK: llvm.func spir_funccc @_Z22sub_group_shuffle_downdj(f64, i32) -> f64 attributes {convergent}
124
- // CHECK: llvm.func spir_funccc @_Z20sub_group_shuffle_upfj(f32, i32) -> f32 attributes {convergent}
125
- // CHECK: llvm.func spir_funccc @_Z21sub_group_shuffle_xorlj(i64, i32) -> i64 attributes {convergent}
126
- // CHECK: llvm.func spir_funccc @_Z17sub_group_shuffleij(i32, i32) -> i32 attributes {convergent}
157
+ // CHECK: llvm.func spir_funccc @_Z22sub_group_shuffle_downdj(f64, i32) -> f64 attributes {
158
+ // CHECK-SAME-DAG: no_unwind
159
+ // CHECK-SAME-DAG: convergent
160
+ // CHECK-NOT: memory = #llvm.memory_effects
161
+ // CHECK-SAME: }
162
+ // CHECK: llvm.func spir_funccc @_Z20sub_group_shuffle_upfj(f32, i32) -> f32 attributes {
163
+ // CHECK-SAME-DAG: no_unwind
164
+ // CHECK-SAME-DAG: convergent
165
+ // CHECK-NOT: memory = #llvm.memory_effects
166
+ // CHECK-SAME: }
167
+ // CHECK: llvm.func spir_funccc @_Z21sub_group_shuffle_xorlj(i64, i32) -> i64 attributes {
168
+ // CHECK-SAME-DAG: no_unwind
169
+ // CHECK-SAME-DAG: convergent
170
+ // CHECK-NOT: memory = #llvm.memory_effects
171
+ // CHECK-SAME: }
172
+ // CHECK: llvm.func spir_funccc @_Z17sub_group_shuffleij(i32, i32) -> i32 attributes {
173
+ // CHECK-SAME-DAG: no_unwind
174
+ // CHECK-SAME-DAG: convergent
175
+ // CHECK-NOT: memory = #llvm.memory_effects
176
+ // CHECK-SAME: }
127
177
128
178
// CHECK-LABEL: gpu_shuffles
129
179
// CHECK-SAME: (%[[VAL_0:.*]]: i32, %[[VAL_1:.*]]: i32, %[[VAL_2:.*]]: i64, %[[VAL_3:.*]]: i32, %[[VAL_4:.*]]: f32, %[[VAL_5:.*]]: i32, %[[VAL_6:.*]]: f64, %[[VAL_7:.*]]: i32)
@@ -155,10 +205,26 @@ gpu.module @shuffles {
155
205
gpu.module @shuffles attributes {
156
206
spirv.target_env = #spirv.target_env <#spirv.vce <v1.4 , [Kernel , Addresses , GroupNonUniformShuffle , Int64 ], []>, #spirv.resource_limits <subgroup_size = 16 >>
157
207
} {
158
- // CHECK: llvm.func spir_funccc @_Z22sub_group_shuffle_downdj(f64, i32) -> f64 attributes {convergent}
159
- // CHECK: llvm.func spir_funccc @_Z20sub_group_shuffle_upfj(f32, i32) -> f32 attributes {convergent}
160
- // CHECK: llvm.func spir_funccc @_Z21sub_group_shuffle_xorlj(i64, i32) -> i64 attributes {convergent}
161
- // CHECK: llvm.func spir_funccc @_Z17sub_group_shuffleij(i32, i32) -> i32 attributes {convergent}
208
+ // CHECK: llvm.func spir_funccc @_Z22sub_group_shuffle_downdj(f64, i32) -> f64 attributes {
209
+ // CHECK-SAME-DAG: no_unwind
210
+ // CHECK-SAME-DAG: convergent
211
+ // CHECK-NOT: memory = #llvm.memory_effects
212
+ // CHECK-SAME: }
213
+ // CHECK: llvm.func spir_funccc @_Z20sub_group_shuffle_upfj(f32, i32) -> f32 attributes {
214
+ // CHECK-SAME-DAG: no_unwind
215
+ // CHECK-SAME-DAG: convergent
216
+ // CHECK-NOT: memory = #llvm.memory_effects
217
+ // CHECK-SAME: }
218
+ // CHECK: llvm.func spir_funccc @_Z21sub_group_shuffle_xorlj(i64, i32) -> i64 attributes {
219
+ // CHECK-SAME-DAG: no_unwind
220
+ // CHECK-SAME-DAG: convergent
221
+ // CHECK-NOT: memory = #llvm.memory_effects
222
+ // CHECK-SAME: }
223
+ // CHECK: llvm.func spir_funccc @_Z17sub_group_shuffleij(i32, i32) -> i32 attributes {
224
+ // CHECK-SAME-DAG: no_unwind
225
+ // CHECK-SAME-DAG: convergent
226
+ // CHECK-NOT: memory = #llvm.memory_effects
227
+ // CHECK-SAME: }
162
228
163
229
// CHECK-LABEL: gpu_shuffles
164
230
// CHECK-SAME: (%[[VAL_0:.*]]: i32, %[[VAL_1:.*]]: i32, %[[VAL_2:.*]]: i64, %[[VAL_3:.*]]: i32, %[[VAL_4:.*]]: f32, %[[VAL_5:.*]]: i32, %[[VAL_6:.*]]: f64, %[[VAL_7:.*]]: i32)
0 commit comments