Lines Matching refs:GCN

1 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SI …
2 ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -chec…
6 ; GCN-LABEL: {{^}}load_f16_arg:
7 ; GCN: s_load_dword [[ARG:s[0-9]+]]
8 ; GCN: v_cvt_f16_f32_e32 [[CVT:v[0-9]+]], [[ARG]]
9 ; GCN: buffer_store_short [[CVT]]
15 ; GCN-LABEL: {{^}}load_v2f16_arg:
16 ; GCN-DAG: buffer_load_ushort [[V0:v[0-9]+]], off, s{{\[[0-9]+:[0-9]+\]}}, 0 offset:44
17 ; GCN-DAG: buffer_load_ushort [[V1:v[0-9]+]], off, s{{\[[0-9]+:[0-9]+\]}}, 0 offset:46
18 ; GCN: v_lshlrev_b32_e32 [[HI:v[0-9]+]], 16, [[V1]]
19 ; GCN: v_or_b32_e32 [[PACKED:v[0-9]+]], [[V0]], [[HI]]
20 ; GCN: buffer_store_dword [[PACKED]], off, s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
21 ; GCN: s_endpgm
27 ; GCN-LABEL: {{^}}load_v3f16_arg:
28 ; GCN: buffer_load_ushort
29 ; GCN: buffer_load_ushort
30 ; GCN: buffer_load_ushort
31 ; GCN-NOT: buffer_load
32 ; GCN-DAG: buffer_store_dword
33 ; GCN-DAG: buffer_store_short
34 ; GCN-NOT: buffer_store
35 ; GCN: s_endpgm
41 ; GCN-LABEL: {{^}}load_v4f16_arg:
42 ; GCN: buffer_load_ushort
43 ; GCN: buffer_load_ushort
44 ; GCN: buffer_load_ushort
45 ; GCN: buffer_load_ushort
46 ; GCN: buffer_store_dwordx2
47 ; GCN: s_endpgm
53 ; GCN-LABEL: {{^}}load_v8f16_arg:
59 ; GCN-LABEL: {{^}}extload_v2f16_arg:
66 ; GCN-LABEL: {{^}}extload_f16_to_f32_arg:
73 ; GCN-LABEL: {{^}}extload_v2f16_to_v2f32_arg:
80 ; GCN-LABEL: {{^}}extload_v3f16_to_v3f32_arg:
81 ; GCN: buffer_load_ushort
82 ; GCN: buffer_load_ushort
83 ; GCN: buffer_load_ushort
84 ; GCN-NOT: buffer_load
85 ; GCN: v_cvt_f32_f16_e32
86 ; GCN: v_cvt_f32_f16_e32
87 ; GCN: v_cvt_f32_f16_e32
88 ; GCN-NOT: v_cvt_f32_f16
89 ; GCN-DAG: buffer_store_dword
90 ; GCN-DAG: buffer_store_dwordx2
91 ; GCN: s_endpgm
98 ; GCN-LABEL: {{^}}extload_v4f16_to_v4f32_arg:
105 ; GCN-LABEL: {{^}}extload_v8f16_to_v8f32_arg:
106 ; GCN: buffer_load_ushort
107 ; GCN: buffer_load_ushort
108 ; GCN: buffer_load_ushort
109 ; GCN: buffer_load_ushort
110 ; GCN: buffer_load_ushort
111 ; GCN: buffer_load_ushort
112 ; GCN: buffer_load_ushort
113 ; GCN: buffer_load_ushort
115 ; GCN: v_cvt_f32_f16_e32
116 ; GCN: v_cvt_f32_f16_e32
117 ; GCN: v_cvt_f32_f16_e32
118 ; GCN: v_cvt_f32_f16_e32
119 ; GCN: v_cvt_f32_f16_e32
120 ; GCN: v_cvt_f32_f16_e32
121 ; GCN: v_cvt_f32_f16_e32
122 ; GCN: v_cvt_f32_f16_e32
124 ; GCN: buffer_store_dwordx4
125 ; GCN: buffer_store_dwordx4
132 ; GCN-LABEL: {{^}}extload_f16_to_f64_arg:
135 ; GCN: v_cvt_f64_f32_e32 [[RESULT:v\[[0-9]+:[0-9]+\]]], [[ARG]]
136 ; GCN: buffer_store_dwordx2 [[RESULT]]
143 ; GCN-LABEL: {{^}}extload_v2f16_to_v2f64_arg:
144 ; GCN-DAG: buffer_load_ushort v
145 ; GCN-DAG: buffer_load_ushort v
146 ; GCN-DAG: v_cvt_f32_f16_e32
147 ; GCN-DAG: v_cvt_f32_f16_e32
148 ; GCN-DAG: v_cvt_f64_f32_e32
149 ; GCN-DAG: v_cvt_f64_f32_e32
150 ; GCN: s_endpgm
157 ; GCN-LABEL: {{^}}extload_v3f16_to_v3f64_arg:
158 ; GCN-DAG: buffer_load_ushort v
159 ; GCN-DAG: buffer_load_ushort v
160 ; GCN-DAG: buffer_load_ushort v
161 ; GCN-DAG: v_cvt_f32_f16_e32
162 ; GCN-DAG: v_cvt_f32_f16_e32
163 ; GCN-DAG: v_cvt_f32_f16_e32
164 ; GCN-DAG: v_cvt_f64_f32_e32
165 ; GCN-DAG: v_cvt_f64_f32_e32
166 ; GCN-DAG: v_cvt_f64_f32_e32
167 ; GCN: s_endpgm
174 ; GCN-LABEL: {{^}}extload_v4f16_to_v4f64_arg:
175 ; GCN-DAG: buffer_load_ushort v
176 ; GCN-DAG: buffer_load_ushort v
177 ; GCN-DAG: buffer_load_ushort v
178 ; GCN-DAG: buffer_load_ushort v
179 ; GCN-DAG: v_cvt_f32_f16_e32
180 ; GCN-DAG: v_cvt_f32_f16_e32
181 ; GCN-DAG: v_cvt_f32_f16_e32
182 ; GCN-DAG: v_cvt_f32_f16_e32
183 ; GCN-DAG: v_cvt_f64_f32_e32
184 ; GCN-DAG: v_cvt_f64_f32_e32
185 ; GCN-DAG: v_cvt_f64_f32_e32
186 ; GCN-DAG: v_cvt_f64_f32_e32
187 ; GCN: s_endpgm
194 ; GCN-LABEL: {{^}}extload_v8f16_to_v8f64_arg:
195 ; GCN-DAG: buffer_load_ushort v
196 ; GCN-DAG: buffer_load_ushort v
197 ; GCN-DAG: buffer_load_ushort v
198 ; GCN-DAG: buffer_load_ushort v
200 ; GCN-DAG: buffer_load_ushort v
201 ; GCN-DAG: buffer_load_ushort v
202 ; GCN-DAG: buffer_load_ushort v
203 ; GCN-DAG: buffer_load_ushort v
205 ; GCN-DAG: v_cvt_f32_f16_e32
206 ; GCN-DAG: v_cvt_f32_f16_e32
207 ; GCN-DAG: v_cvt_f32_f16_e32
208 ; GCN-DAG: v_cvt_f32_f16_e32
210 ; GCN-DAG: v_cvt_f32_f16_e32
211 ; GCN-DAG: v_cvt_f32_f16_e32
212 ; GCN-DAG: v_cvt_f32_f16_e32
213 ; GCN-DAG: v_cvt_f32_f16_e32
215 ; GCN-DAG: v_cvt_f64_f32_e32
216 ; GCN-DAG: v_cvt_f64_f32_e32
217 ; GCN-DAG: v_cvt_f64_f32_e32
218 ; GCN-DAG: v_cvt_f64_f32_e32
220 ; GCN-DAG: v_cvt_f64_f32_e32
221 ; GCN-DAG: v_cvt_f64_f32_e32
222 ; GCN-DAG: v_cvt_f64_f32_e32
223 ; GCN-DAG: v_cvt_f64_f32_e32
225 ; GCN: s_endpgm
232 ; GCN-LABEL: {{^}}global_load_store_f16:
233 ; GCN: buffer_load_ushort [[TMP:v[0-9]+]]
234 ; GCN: buffer_store_short [[TMP]]
241 ; GCN-LABEL: {{^}}global_load_store_v2f16:
242 ; GCN: buffer_load_dword [[TMP:v[0-9]+]]
243 ; GCN: buffer_store_dword [[TMP]]
250 ; GCN-LABEL: {{^}}global_load_store_v4f16:
251 ; GCN: buffer_load_dwordx2 [[TMP:v\[[0-9]+:[0-9]+\]]]
252 ; GCN: buffer_store_dwordx2 [[TMP]]
259 ; GCN-LABEL: {{^}}global_load_store_v8f16:
260 ; GCN: buffer_load_dwordx4 [[TMP:v\[[0-9]+:[0-9]+\]]]
261 ; GCN: buffer_store_dwordx4 [[TMP:v\[[0-9]+:[0-9]+\]]]
262 ; GCN: s_endpgm
269 ; GCN-LABEL: {{^}}global_extload_f16_to_f32:
270 ; GCN: buffer_load_ushort [[LOAD:v[0-9]+]]
271 ; GCN: v_cvt_f32_f16_e32 [[CVT:v[0-9]+]], [[LOAD]]
272 ; GCN: buffer_store_dword [[CVT]]
280 ; GCN-LABEL: {{^}}global_extload_v2f16_to_v2f32:
281 ; GCN: buffer_load_dword [[LOAD:v[0-9]+]], off, s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
282 ; GCN: v_cvt_f32_f16_e32 v[[CVT0:[0-9]+]], [[LOAD]]
283 ; GCN: v_lshrrev_b32_e32 [[HI:v[0-9]+]], 16, [[LOAD]]
284 ; GCN: v_cvt_f32_f16_e32 v[[CVT1:[0-9]+]], [[HI]]
285 ; GCN: buffer_store_dwordx2 v{{\[}}[[CVT0]]:[[CVT1]]{{\]}}
286 ; GCN: s_endpgm
294 ; GCN-LABEL: {{^}}global_extload_v3f16_to_v3f32:
302 ; GCN-LABEL: {{^}}global_extload_v4f16_to_v4f32:
310 ; GCN-LABEL: {{^}}global_extload_v8f16_to_v8f32:
318 ; GCN-LABEL: {{^}}global_extload_v16f16_to_v16f32:
319 ; GCN: buffer_load_dwordx4
320 ; GCN: buffer_load_dwordx4
322 ; GCN: v_cvt_f32_f16_e32
323 ; GCN: v_cvt_f32_f16_e32
324 ; GCN: v_cvt_f32_f16_e32
325 ; GCN: v_cvt_f32_f16_e32
326 ; GCN: v_cvt_f32_f16_e32
327 ; GCN: v_cvt_f32_f16_e32
328 ; GCN: v_cvt_f32_f16_e32
329 ; GCN: v_cvt_f32_f16_e32
330 ; GCN: v_cvt_f32_f16_e32
331 ; GCN: v_cvt_f32_f16_e32
332 ; GCN: v_cvt_f32_f16_e32
333 ; GCN: v_cvt_f32_f16_e32
334 ; GCN: v_cvt_f32_f16_e32
335 ; GCN: v_cvt_f32_f16_e32
336 ; GCN: v_cvt_f32_f16_e32
337 ; GCN: v_cvt_f32_f16_e32
339 ; GCN: buffer_store_dwordx4
340 ; GCN: buffer_store_dwordx4
341 ; GCN: buffer_store_dwordx4
342 ; GCN: buffer_store_dwordx4
344 ; GCN: s_endpgm
352 ; GCN-LABEL: {{^}}global_extload_f16_to_f64:
353 ; GCN: buffer_load_ushort [[LOAD:v[0-9]+]]
354 ; GCN: v_cvt_f32_f16_e32 [[CVT0:v[0-9]+]], [[LOAD]]
355 ; GCN: v_cvt_f64_f32_e32 [[CVT1:v\[[0-9]+:[0-9]+\]]], [[CVT0]]
356 ; GCN: buffer_store_dwordx2 [[CVT1]]
364 ; GCN-LABEL: {{^}}global_extload_v2f16_to_v2f64:
365 ; GCN-DAG: buffer_load_dword [[LOAD:v[0-9]+]], off, s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
366 ; GCN-DAG: v_lshrrev_b32_e32 [[HI:v[0-9]+]], 16, [[LOAD]]
367 ; GCN-DAG: v_cvt_f32_f16_e32 v[[CVT0:[0-9]+]], [[LOAD]]
368 ; GCN-DAG: v_cvt_f32_f16_e32 v[[CVT1:[0-9]+]], [[HI]]
369 ; GCN-DAG: v_cvt_f64_f32_e32 v{{\[}}[[CVT2_LO:[0-9]+]]:[[CVT2_HI:[0-9]+]]{{\]}}, v[[CVT0]]
370 ; GCN-DAG: v_cvt_f64_f32_e32 v{{\[}}[[CVT3_LO:[0-9]+]]:[[CVT3_HI:[0-9]+]]{{\]}}, v[[CVT1]]
371 ; GCN-DAG: buffer_store_dwordx4 v{{\[}}[[CVT2_LO]]:[[CVT3_HI]]{{\]}}
372 ; GCN: s_endpgm
380 ; GCN-LABEL: {{^}}global_extload_v3f16_to_v3f64:
382 ; GCN: buffer_load_dwordx2 [[LOAD:v\[[0-9]+:[0-9]+\]]]
383 ; GCN-DAG: v_cvt_f32_f16_e32
384 ; GCN-DAG: v_lshrrev_b32_e32 {{v[0-9]+}}, 16, {{v[0-9]+}}
385 ; GCN-DAG: v_cvt_f32_f16_e32
386 ; GCN-DAG: v_cvt_f32_f16_e32
388 ; GCN: v_cvt_f64_f32_e32
389 ; GCN: v_cvt_f64_f32_e32
390 ; GCN: v_cvt_f64_f32_e32
391 ; GCN-NOT: v_cvt_f64_f32_e32
393 ; GCN-DAG: buffer_store_dwordx4 v{{\[[0-9]+:[0-9]+\]}}, off, s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
394 ; GCN-DAG: buffer_store_dwordx2 v{{\[[0-9]+:[0-9]+\]}}, off, s{{\[[0-9]+:[0-9]+\]}}, 0 offset:16
395 ; GCN: s_endpgm
403 ; GCN-LABEL: {{^}}global_extload_v4f16_to_v4f64:
411 ; GCN-LABEL: {{^}}global_extload_v8f16_to_v8f64:
419 ; GCN-LABEL: {{^}}global_extload_v16f16_to_v16f64:
427 ; GCN-LABEL: {{^}}global_truncstore_f32_to_f16:
428 ; GCN: buffer_load_dword [[LOAD:v[0-9]+]]
429 ; GCN: v_cvt_f16_f32_e32 [[CVT:v[0-9]+]], [[LOAD]]
430 ; GCN: buffer_store_short [[CVT]]
438 ; GCN-LABEL: {{^}}global_truncstore_v2f32_to_v2f16:
439 ; GCN: buffer_load_dwordx2 v{{\[}}[[LO:[0-9]+]]:[[HI:[0-9]+]]{{\]}}
440 ; GCN-DAG: v_cvt_f16_f32_e32 [[CVT0:v[0-9]+]], v[[LO]]
441 ; GCN-DAG: v_cvt_f16_f32_e32 [[CVT1:v[0-9]+]], v[[HI]]
442 ; GCN-DAG: v_lshlrev_b32_e32 [[SHL:v[0-9]+]], 16, [[CVT1]]
443 ; GCN-DAG: v_or_b32_e32 [[PACKED:v[0-9]+]], [[CVT0]], [[SHL]]
444 ; GCN-DAG: buffer_store_dword [[PACKED]]
445 ; GCN: s_endpgm
453 ; GCN-LABEL: {{^}}global_truncstore_v3f32_to_v3f16:
454 ; GCN: buffer_load_dwordx4
455 ; GCN: v_cvt_f16_f32_e32
456 ; GCN: v_cvt_f16_f32_e32
457 ; GCN: v_cvt_f16_f32_e32
458 ; GCN-NOT: v_cvt_f16_f32_e32
459 ; GCN: buffer_store_short
460 ; GCN: buffer_store_dword
461 ; GCN: s_endpgm
469 ; GCN-LABEL: {{^}}global_truncstore_v4f32_to_v4f16:
470 ; GCN: buffer_load_dwordx4
471 ; GCN: v_cvt_f16_f32_e32
472 ; GCN: v_cvt_f16_f32_e32
473 ; GCN: v_cvt_f16_f32_e32
474 ; GCN: v_cvt_f16_f32_e32
475 ; GCN: buffer_store_dwordx2
476 ; GCN: s_endpgm
484 ; GCN-LABEL: {{^}}global_truncstore_v8f32_to_v8f16:
485 ; GCN: buffer_load_dwordx4
486 ; GCN: buffer_load_dwordx4
487 ; GCN: v_cvt_f16_f32_e32
488 ; GCN: v_cvt_f16_f32_e32
489 ; GCN: v_cvt_f16_f32_e32
490 ; GCN: v_cvt_f16_f32_e32
491 ; GCN: v_cvt_f16_f32_e32
492 ; GCN: v_cvt_f16_f32_e32
493 ; GCN: v_cvt_f16_f32_e32
494 ; GCN: v_cvt_f16_f32_e32
495 ; GCN: buffer_store_dwordx4
496 ; GCN: s_endpgm
504 ; GCN-LABEL: {{^}}global_truncstore_v16f32_to_v16f16:
505 ; GCN: buffer_load_dwordx4
506 ; GCN: buffer_load_dwordx4
507 ; GCN: buffer_load_dwordx4
508 ; GCN: buffer_load_dwordx4
509 ; GCN-DAG: v_cvt_f16_f32_e32
510 ; GCN-DAG: v_cvt_f16_f32_e32
511 ; GCN-DAG: v_cvt_f16_f32_e32
512 ; GCN-DAG: v_cvt_f16_f32_e32
513 ; GCN-DAG: v_cvt_f16_f32_e32
514 ; GCN-DAG: v_cvt_f16_f32_e32
515 ; GCN-DAG: v_cvt_f16_f32_e32
516 ; GCN-DAG: v_cvt_f16_f32_e32
517 ; GCN-DAG: v_cvt_f16_f32_e32
518 ; GCN-DAG: v_cvt_f16_f32_e32
519 ; GCN-DAG: v_cvt_f16_f32_e32
520 ; GCN-DAG: v_cvt_f16_f32_e32
521 ; GCN-DAG: v_cvt_f16_f32_e32
522 ; GCN-DAG: v_cvt_f16_f32_e32
523 ; GCN-DAG: v_cvt_f16_f32_e32
524 ; GCN-DAG: v_cvt_f16_f32_e32
525 ; GCN-DAG: buffer_store_dwordx4
526 ; GCN-DAG: buffer_store_dwordx4
527 ; GCN: s_endpgm
536 ; GCN-LABEL: {{^}}fadd_f16:
542 ; GCN: s_endpgm
549 ; GCN-LABEL: {{^}}fadd_v2f16:
552 ; GCN: s_endpgm
559 ; GCN-LABEL: {{^}}fadd_v4f16:
564 ; GCN: s_endpgm
574 ; GCN-LABEL: {{^}}fadd_v8f16:
583 ; GCN: s_endpgm
590 ; GCN-LABEL: {{^}}fsub_f16:
591 ; GCN: v_subrev_f32_e32
592 ; GCN: s_endpgm
602 ; GCN-LABEL: {{^}}test_bitcast_from_half:
603 ; GCN: buffer_load_ushort [[TMP:v[0-9]+]]
604 ; GCN: buffer_store_short [[TMP]]
612 ; GCN-LABEL: {{^}}test_bitcast_to_half:
613 ; GCN: buffer_load_ushort [[TMP:v[0-9]+]]
614 ; GCN: buffer_store_short [[TMP]]