150
|
1 # RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s
|
|
2
|
|
3 # GCN-LABEL: name: flat_atomic_fcmpswap_to_s_denorm_mode
|
|
4 # GCN: FLAT_ATOMIC_FCMPSWAP
|
221
|
5 # GCN-NEXT: S_NOP 2
|
150
|
6 # GCN-NEXT: S_DENORM_MODE
|
|
7 ---
|
|
8 name: flat_atomic_fcmpswap_to_s_denorm_mode
|
|
9 body: |
|
|
10 bb.0:
|
223
|
11 FLAT_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
12 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
13 ...
|
|
14
|
|
15 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_to_s_denorm_mode
|
|
16 # GCN: FLAT_ATOMIC_FCMPSWAP_X2
|
221
|
17 # GCN-NEXT: S_NOP 2
|
150
|
18 # GCN-NEXT: S_DENORM_MODE
|
|
19 ---
|
|
20 name: flat_atomic_fcmpswap_x2_to_s_denorm_mode
|
|
21 body: |
|
|
22 bb.0:
|
223
|
23 FLAT_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_128, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
24 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
25 ...
|
|
26
|
|
27 # GCN-LABEL: name: flat_atomic_fmax_to_s_denorm_mode
|
|
28 # GCN: FLAT_ATOMIC_FMAX
|
221
|
29 # GCN-NEXT: S_NOP 2
|
150
|
30 # GCN-NEXT: S_DENORM_MODE
|
|
31 ---
|
|
32 name: flat_atomic_fmax_to_s_denorm_mode
|
|
33 body: |
|
|
34 bb.0:
|
223
|
35 FLAT_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
36 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
37 ...
|
|
38
|
|
39 # GCN-LABEL: name: flat_atomic_fmax_x2_to_s_denorm_mode
|
|
40 # GCN: FLAT_ATOMIC_FMAX_X2
|
221
|
41 # GCN-NEXT: S_NOP 2
|
150
|
42 # GCN-NEXT: S_DENORM_MODE
|
|
43 ---
|
|
44 name: flat_atomic_fmax_x2_to_s_denorm_mode
|
|
45 body: |
|
|
46 bb.0:
|
223
|
47 FLAT_ATOMIC_FMAX_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
48 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
49 ...
|
|
50
|
|
51 # GCN-LABEL: name: flat_atomic_fmin_to_s_denorm_mode
|
|
52 # GCN: FLAT_ATOMIC_FMIN
|
221
|
53 # GCN-NEXT: S_NOP 2
|
150
|
54 # GCN-NEXT: S_DENORM_MODE
|
|
55 ---
|
|
56 name: flat_atomic_fmin_to_s_denorm_mode
|
|
57 body: |
|
|
58 bb.0:
|
223
|
59 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
60 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
61 ...
|
|
62
|
|
63 # GCN-LABEL: name: flat_atomic_fmin_x2_to_s_denorm_mode
|
|
64 # GCN: FLAT_ATOMIC_FMIN_X2
|
221
|
65 # GCN-NEXT: S_NOP 2
|
150
|
66 # GCN-NEXT: S_DENORM_MODE
|
|
67 ---
|
|
68 name: flat_atomic_fmin_x2_to_s_denorm_mode
|
|
69 body: |
|
|
70 bb.0:
|
223
|
71 FLAT_ATOMIC_FMIN_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
72 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
73 ...
|
|
74
|
|
75 # GCN-LABEL: name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
|
|
76 # GCN: FLAT_ATOMIC_FCMPSWAP_X2_RTN
|
221
|
77 # GCN-NEXT: S_NOP 2
|
150
|
78 # GCN-NEXT: S_DENORM_MODE
|
|
79 ---
|
|
80 name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
|
|
81 body: |
|
|
82 bb.0:
|
223
|
83 %2:vreg_64 = FLAT_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_128, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
84 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
85 ...
|
|
86
|
|
87 # GCN-LABEL: name: flat_atomic_fmax_rtn_to_s_denorm_mode
|
|
88 # GCN: FLAT_ATOMIC_FMAX_RTN
|
221
|
89 # GCN-NEXT: S_NOP 2
|
150
|
90 # GCN-NEXT: S_DENORM_MODE
|
|
91 ---
|
|
92 name: flat_atomic_fmax_rtn_to_s_denorm_mode
|
|
93 body: |
|
|
94 bb.0:
|
223
|
95 %2:vgpr_32 = FLAT_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
96 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
97 ...
|
|
98
|
|
99 # GCN-LABEL: name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode
|
|
100 # GCN: FLAT_ATOMIC_FMAX_X2_RTN
|
221
|
101 # GCN-NEXT: S_NOP 2
|
150
|
102 # GCN-NEXT: S_DENORM_MODE
|
|
103 ---
|
|
104 name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode
|
|
105 body: |
|
|
106 bb.0:
|
223
|
107 %2:vreg_64 = FLAT_ATOMIC_FMAX_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
108 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
109 ...
|
|
110
|
|
111 # GCN-LABEL: name: flat_atomic_fmin_rtn_to_s_denorm_mode
|
|
112 # GCN: FLAT_ATOMIC_FMIN_RTN
|
221
|
113 # GCN-NEXT: S_NOP 2
|
150
|
114 # GCN-NEXT: S_DENORM_MODE
|
|
115 ---
|
|
116 name: flat_atomic_fmin_rtn_to_s_denorm_mode
|
|
117 body: |
|
|
118 bb.0:
|
223
|
119 %2:vgpr_32 = FLAT_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
120 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
121 ...
|
|
122
|
|
123 # GCN-LABEL: name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode
|
|
124 # GCN: FLAT_ATOMIC_FMIN_X2_RTN
|
221
|
125 # GCN-NEXT: S_NOP 2
|
150
|
126 # GCN-NEXT: S_DENORM_MODE
|
|
127 ---
|
|
128 name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode
|
|
129 body: |
|
|
130 bb.0:
|
223
|
131 %2:vreg_64 = FLAT_ATOMIC_FMIN_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
132 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
133 ...
|
|
134
|
|
135 # GCN-LABEL: name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode
|
|
136 # GCN: FLAT_ATOMIC_FCMPSWAP_RTN
|
221
|
137 # GCN-NEXT: S_NOP 2
|
150
|
138 # GCN-NEXT: S_DENORM_MODE
|
|
139 ---
|
|
140 name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode
|
|
141 body: |
|
|
142 bb.0:
|
223
|
143 %2:vgpr_32 = FLAT_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
144 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
145 ...
|
|
146
|
|
147 # GCN-LABEL: name: global_atomic_fcmpswap_to_s_denorm_mode
|
|
148 # GCN: GLOBAL_ATOMIC_FCMPSWAP
|
221
|
149 # GCN-NEXT: S_NOP 2
|
150
|
150 # GCN-NEXT: S_DENORM_MODE
|
|
151 ---
|
|
152 name: global_atomic_fcmpswap_to_s_denorm_mode
|
|
153 body: |
|
|
154 bb.0:
|
223
|
155 GLOBAL_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
156 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
157 ...
|
|
158
|
|
159 # GCN-LABEL: name: global_atomic_fcmpswap_x2_to_s_denorm_mode
|
|
160 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2
|
221
|
161 # GCN-NEXT: S_NOP 2
|
150
|
162 # GCN-NEXT: S_DENORM_MODE
|
|
163 ---
|
|
164 name: global_atomic_fcmpswap_x2_to_s_denorm_mode
|
|
165 body: |
|
|
166 bb.0:
|
223
|
167 GLOBAL_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
168 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
169 ...
|
|
170
|
|
171 # GCN-LABEL: name: global_atomic_fmax_to_s_denorm_mode
|
|
172 # GCN: GLOBAL_ATOMIC_FMAX
|
221
|
173 # GCN-NEXT: S_NOP 2
|
150
|
174 # GCN-NEXT: S_DENORM_MODE
|
|
175 ---
|
|
176 name: global_atomic_fmax_to_s_denorm_mode
|
|
177 body: |
|
|
178 bb.0:
|
223
|
179 GLOBAL_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
180 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
181 ...
|
|
182
|
|
183 # GCN-LABEL: name: global_atomic_fmax_x2_to_s_denorm_mode
|
|
184 # GCN: GLOBAL_ATOMIC_FMAX_X2
|
221
|
185 # GCN-NEXT: S_NOP 2
|
150
|
186 # GCN-NEXT: S_DENORM_MODE
|
|
187 ---
|
|
188 name: global_atomic_fmax_x2_to_s_denorm_mode
|
|
189 body: |
|
|
190 bb.0:
|
223
|
191 GLOBAL_ATOMIC_FMAX_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
192 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
193 ...
|
|
194
|
|
195 # GCN-LABEL: name: global_atomic_fmin_to_s_denorm_mode
|
|
196 # GCN: GLOBAL_ATOMIC_FMIN
|
221
|
197 # GCN-NEXT: S_NOP 2
|
150
|
198 # GCN-NEXT: S_DENORM_MODE
|
|
199 ---
|
|
200 name: global_atomic_fmin_to_s_denorm_mode
|
|
201 body: |
|
|
202 bb.0:
|
223
|
203 GLOBAL_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
204 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
205 ...
|
|
206
|
|
207 # GCN-LABEL: name: global_atomic_fmin_x2_to_s_denorm_mode
|
|
208 # GCN: GLOBAL_ATOMIC_FMIN_X2
|
221
|
209 # GCN-NEXT: S_NOP 2
|
150
|
210 # GCN-NEXT: S_DENORM_MODE
|
|
211 ---
|
|
212 name: global_atomic_fmin_x2_to_s_denorm_mode
|
|
213 body: |
|
|
214 bb.0:
|
223
|
215 GLOBAL_ATOMIC_FMIN_X2 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
216 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
217 ...
|
|
218
|
|
219 # GCN-LABEL: name: global_atomic_fcmpswap_rtn_to_s_denorm_mode
|
|
220 # GCN: GLOBAL_ATOMIC_FCMPSWAP_RTN
|
221
|
221 # GCN-NEXT: S_NOP 2
|
150
|
222 # GCN-NEXT: S_DENORM_MODE
|
|
223 ---
|
|
224 name: global_atomic_fcmpswap_rtn_to_s_denorm_mode
|
|
225 body: |
|
|
226 bb.0:
|
223
|
227 %2:vgpr_32 = GLOBAL_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
228 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
229 ...
|
|
230
|
|
231 # GCN-LABEL: name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
|
|
232 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_RTN
|
221
|
233 # GCN-NEXT: S_NOP 2
|
150
|
234 # GCN-NEXT: S_DENORM_MODE
|
|
235 ---
|
|
236 name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode
|
|
237 body: |
|
|
238 bb.0:
|
223
|
239 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
240 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
241 ...
|
|
242
|
|
243 # GCN-LABEL: name: global_atomic_fmax_rtn_to_s_denorm_mode
|
|
244 # GCN: GLOBAL_ATOMIC_FMAX_RTN
|
221
|
245 # GCN-NEXT: S_NOP 2
|
150
|
246 # GCN-NEXT: S_DENORM_MODE
|
|
247 ---
|
|
248 name: global_atomic_fmax_rtn_to_s_denorm_mode
|
|
249 body: |
|
|
250 bb.0:
|
223
|
251 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
252 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
253 ...
|
|
254
|
|
255 # GCN-LABEL: name: global_atomic_fmax_x2_rtn_to_s_denorm_mode
|
|
256 # GCN: GLOBAL_ATOMIC_FMAX_X2_RTN
|
221
|
257 # GCN-NEXT: S_NOP 2
|
150
|
258 # GCN-NEXT: S_DENORM_MODE
|
|
259 ---
|
|
260 name: global_atomic_fmax_x2_rtn_to_s_denorm_mode
|
|
261 body: |
|
|
262 bb.0:
|
223
|
263 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
264 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
265 ...
|
|
266
|
|
267 # GCN-LABEL: name: global_atomic_fmin_rtn_to_s_denorm_mode
|
|
268 # GCN: GLOBAL_ATOMIC_FMIN_RTN
|
221
|
269 # GCN-NEXT: S_NOP 2
|
150
|
270 # GCN-NEXT: S_DENORM_MODE
|
|
271 ---
|
|
272 name: global_atomic_fmin_rtn_to_s_denorm_mode
|
|
273 body: |
|
|
274 bb.0:
|
223
|
275 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
276 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
277 ...
|
|
278
|
|
279 # GCN-LABEL: name: global_atomic_fmin_x2_rtn_to_s_denorm_mode
|
|
280 # GCN: GLOBAL_ATOMIC_FMIN_X2_RTN
|
221
|
281 # GCN-NEXT: S_NOP 2
|
150
|
282 # GCN-NEXT: S_DENORM_MODE
|
|
283 ---
|
|
284 name: global_atomic_fmin_x2_rtn_to_s_denorm_mode
|
|
285 body: |
|
|
286 bb.0:
|
223
|
287 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
288 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
289 ...
|
|
290
|
|
291 # GCN-LABEL: name: global_atomic_fcmpswap_saddr_to_s_denorm_mode
|
|
292 # GCN: GLOBAL_ATOMIC_FCMPSWAP_SADDR
|
221
|
293 # GCN-NEXT: S_NOP 2
|
150
|
294 # GCN-NEXT: S_DENORM_MODE
|
|
295 ---
|
|
296 name: global_atomic_fcmpswap_saddr_to_s_denorm_mode
|
|
297 body: |
|
|
298 bb.0:
|
223
|
299 GLOBAL_ATOMIC_FCMPSWAP_SADDR undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
300 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
301 ...
|
|
302
|
|
303 # GCN-LABEL: name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode
|
|
304 # GCN: GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN
|
221
|
305 # GCN-NEXT: S_NOP 2
|
150
|
306 # GCN-NEXT: S_DENORM_MODE
|
|
307 ---
|
|
308 name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode
|
|
309 body: |
|
|
310 bb.0:
|
223
|
311 %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
312 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
313 ...
|
|
314
|
|
315 # GCN-LABEL: name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode
|
|
316 # GCN: GLOBAL_ATOMIC_FMAX_SADDR_RTN
|
221
|
317 # GCN-NEXT: S_NOP 2
|
150
|
318 # GCN-NEXT: S_DENORM_MODE
|
|
319 ---
|
|
320 name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode
|
|
321 body: |
|
|
322 bb.0:
|
223
|
323 %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
324 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
325 ...
|
|
326
|
|
327 # GCN-LABEL: name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode
|
|
328 # GCN: GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN
|
221
|
329 # GCN-NEXT: S_NOP 2
|
150
|
330 # GCN-NEXT: S_DENORM_MODE
|
|
331 ---
|
|
332 name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode
|
|
333 body: |
|
|
334 bb.0:
|
223
|
335 %2:vreg_64 = GLOBAL_ATOMIC_FMAX_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
336 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
337 ...
|
|
338
|
|
339 # GCN-LABEL: name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode
|
|
340 # GCN: GLOBAL_ATOMIC_FMIN_SADDR_RTN
|
221
|
341 # GCN-NEXT: S_NOP 2
|
150
|
342 # GCN-NEXT: S_DENORM_MODE
|
|
343 ---
|
|
344 name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode
|
|
345 body: |
|
|
346 bb.0:
|
223
|
347 %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
348 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
349 ...
|
|
350
|
|
351 # GCN-LABEL: name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode
|
|
352 # GCN: GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN
|
221
|
353 # GCN-NEXT: S_NOP 2
|
150
|
354 # GCN-NEXT: S_DENORM_MODE
|
|
355 ---
|
|
356 name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode
|
|
357 body: |
|
|
358 bb.0:
|
223
|
359 %2:vreg_64 = GLOBAL_ATOMIC_FMIN_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
360 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
361 ...
|
|
362
|
|
363 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_waitcnt
|
|
364 # GCN: FLAT_ATOMIC_FMIN
|
|
365 # GCN-NEXT: S_WAITCNT
|
|
366 # GCN-NEXT: S_DENORM_MODE
|
|
367 ---
|
|
368 name: flat_fp_atomic_to_s_denorm_mode_waitcnt
|
|
369 body: |
|
|
370 bb.0:
|
223
|
371 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
150
|
372 S_WAITCNT 0
|
221
|
373 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
374 ...
|
|
375
|
|
376 # GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_valu
|
|
377 # GCN: FLAT_ATOMIC_FMIN
|
|
378 # GCN-NEXT: V_ADD_F32_e32
|
|
379 # GCN-NEXT: S_DENORM_MODE
|
|
380 ---
|
|
381 name: flat_fp_atomic_to_s_denorm_mode_valu
|
|
382 body: |
|
|
383 bb.0:
|
223
|
384 FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `float addrspace(1)* undef`)
|
221
|
385 %2:vgpr_32 = V_ADD_F32_e32 undef %1:vgpr_32, undef %1:vgpr_32, implicit $mode, implicit $exec
|
|
386 S_DENORM_MODE 0, implicit-def $mode, implicit $mode
|
150
|
387 ...
|