Lines Matching refs:GCN
1 ; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-p…
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]+]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:44
17 ; GCN-DAG: buffer_load_ushort [[V1:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:46
18 ; GCN-DAG: buffer_store_short [[V0]], s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
19 ; GCN-DAG: buffer_store_short [[V1]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:2{{$}}
20 ; GCN: s_endpgm
26 ; GCN-LABEL: {{^}}load_v3f16_arg:
27 ; GCN: buffer_load_ushort
28 ; GCN: buffer_load_ushort
29 ; GCN: buffer_load_ushort
30 ; GCN-NOT: buffer_load
31 ; GCN-DAG: buffer_store_dword
32 ; GCN-DAG: buffer_store_short
33 ; GCN-NOT: buffer_store
34 ; GCN: s_endpgm
40 ; GCN-LABEL: {{^}}load_v4f16_arg:
41 ; GCN: buffer_load_ushort
42 ; GCN: buffer_load_ushort
43 ; GCN: buffer_load_ushort
44 ; GCN: buffer_load_ushort
45 ; GCN: buffer_store_short
46 ; GCN: buffer_store_short
47 ; GCN: buffer_store_short
48 ; GCN: buffer_store_short
49 ; GCN: s_endpgm
55 ; GCN-LABEL: {{^}}load_v8f16_arg:
61 ; GCN-LABEL: {{^}}extload_v2f16_arg:
68 ; GCN-LABEL: {{^}}extload_f16_to_f32_arg:
75 ; GCN-LABEL: {{^}}extload_v2f16_to_v2f32_arg:
82 ; GCN-LABEL: {{^}}extload_v3f16_to_v3f32_arg:
83 ; GCN: buffer_load_ushort
84 ; GCN: buffer_load_ushort
85 ; GCN: buffer_load_ushort
86 ; GCN-NOT: buffer_load
87 ; GCN: v_cvt_f32_f16_e32
88 ; GCN: v_cvt_f32_f16_e32
89 ; GCN: v_cvt_f32_f16_e32
90 ; GCN-NOT: v_cvt_f32_f16
91 ; GCN-DAG: buffer_store_dword
92 ; GCN-DAG: buffer_store_dwordx2
93 ; GCN: s_endpgm
100 ; GCN-LABEL: {{^}}extload_v4f16_to_v4f32_arg:
107 ; GCN-LABEL: {{^}}extload_v8f16_to_v8f32_arg:
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
114 ; GCN: buffer_load_ushort
115 ; GCN: buffer_load_ushort
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
123 ; GCN: v_cvt_f32_f16_e32
124 ; GCN: v_cvt_f32_f16_e32
126 ; GCN: buffer_store_dwordx4
127 ; GCN: buffer_store_dwordx4
134 ; GCN-LABEL: {{^}}extload_f16_to_f64_arg:
137 ; GCN: v_cvt_f64_f32_e32 [[RESULT:v\[[0-9]+:[0-9]+\]]], [[ARG]]
138 ; GCN: buffer_store_dwordx2 [[RESULT]]
145 ; GCN-LABEL: {{^}}extload_v2f16_to_v2f64_arg:
146 ; GCN-DAG: buffer_load_ushort v
147 ; GCN-DAG: buffer_load_ushort v
148 ; GCN-DAG: v_cvt_f32_f16_e32
149 ; GCN-DAG: v_cvt_f32_f16_e32
150 ; GCN-DAG: v_cvt_f64_f32_e32
151 ; GCN-DAG: v_cvt_f64_f32_e32
152 ; GCN: s_endpgm
159 ; GCN-LABEL: {{^}}extload_v3f16_to_v3f64_arg:
160 ; GCN-DAG: buffer_load_ushort v
161 ; GCN-DAG: buffer_load_ushort v
162 ; GCN-DAG: buffer_load_ushort v
163 ; GCN-DAG: v_cvt_f32_f16_e32
164 ; GCN-DAG: v_cvt_f32_f16_e32
165 ; GCN-DAG: v_cvt_f32_f16_e32
166 ; GCN-DAG: v_cvt_f64_f32_e32
167 ; GCN-DAG: v_cvt_f64_f32_e32
168 ; GCN-DAG: v_cvt_f64_f32_e32
169 ; GCN: s_endpgm
176 ; GCN-LABEL: {{^}}extload_v4f16_to_v4f64_arg:
177 ; GCN-DAG: buffer_load_ushort v
178 ; GCN-DAG: buffer_load_ushort v
179 ; GCN-DAG: buffer_load_ushort v
180 ; GCN-DAG: buffer_load_ushort v
181 ; GCN-DAG: v_cvt_f32_f16_e32
182 ; GCN-DAG: v_cvt_f32_f16_e32
183 ; GCN-DAG: v_cvt_f32_f16_e32
184 ; GCN-DAG: v_cvt_f32_f16_e32
185 ; GCN-DAG: v_cvt_f64_f32_e32
186 ; GCN-DAG: v_cvt_f64_f32_e32
187 ; GCN-DAG: v_cvt_f64_f32_e32
188 ; GCN-DAG: v_cvt_f64_f32_e32
189 ; GCN: s_endpgm
196 ; GCN-LABEL: {{^}}extload_v8f16_to_v8f64_arg:
197 ; GCN-DAG: buffer_load_ushort v
198 ; GCN-DAG: buffer_load_ushort v
199 ; GCN-DAG: buffer_load_ushort v
200 ; GCN-DAG: buffer_load_ushort v
202 ; GCN-DAG: buffer_load_ushort v
203 ; GCN-DAG: buffer_load_ushort v
204 ; GCN-DAG: buffer_load_ushort v
205 ; GCN-DAG: buffer_load_ushort v
207 ; GCN-DAG: v_cvt_f32_f16_e32
208 ; GCN-DAG: v_cvt_f32_f16_e32
209 ; GCN-DAG: v_cvt_f32_f16_e32
210 ; GCN-DAG: v_cvt_f32_f16_e32
212 ; GCN-DAG: v_cvt_f32_f16_e32
213 ; GCN-DAG: v_cvt_f32_f16_e32
214 ; GCN-DAG: v_cvt_f32_f16_e32
215 ; GCN-DAG: v_cvt_f32_f16_e32
217 ; GCN-DAG: v_cvt_f64_f32_e32
218 ; GCN-DAG: v_cvt_f64_f32_e32
219 ; GCN-DAG: v_cvt_f64_f32_e32
220 ; GCN-DAG: v_cvt_f64_f32_e32
222 ; GCN-DAG: v_cvt_f64_f32_e32
223 ; GCN-DAG: v_cvt_f64_f32_e32
224 ; GCN-DAG: v_cvt_f64_f32_e32
225 ; GCN-DAG: v_cvt_f64_f32_e32
227 ; GCN: s_endpgm
234 ; GCN-LABEL: {{^}}global_load_store_f16:
235 ; GCN: buffer_load_ushort [[TMP:v[0-9]+]]
236 ; GCN: buffer_store_short [[TMP]]
243 ; GCN-LABEL: {{^}}global_load_store_v2f16:
244 ; GCN: buffer_load_dword [[TMP:v[0-9]+]]
245 ; GCN: buffer_store_dword [[TMP]]
252 ; GCN-LABEL: {{^}}global_load_store_v4f16:
253 ; GCN: buffer_load_dwordx2 [[TMP:v\[[0-9]+:[0-9]+\]]]
254 ; GCN: buffer_store_dwordx2 [[TMP]]
261 ; GCN-LABEL: {{^}}global_load_store_v8f16:
262 ; GCN: buffer_load_dwordx4 [[TMP:v\[[0-9]+:[0-9]+\]]]
263 ; GCN: buffer_store_dwordx4 [[TMP:v\[[0-9]+:[0-9]+\]]]
264 ; GCN: s_endpgm
271 ; GCN-LABEL: {{^}}global_extload_f16_to_f32:
272 ; GCN: buffer_load_ushort [[LOAD:v[0-9]+]]
273 ; GCN: v_cvt_f32_f16_e32 [[CVT:v[0-9]+]], [[LOAD]]
274 ; GCN: buffer_store_dword [[CVT]]
282 ; GCN-LABEL: {{^}}global_extload_v2f16_to_v2f32:
283 ; GCN-DAG: buffer_load_ushort [[LOAD0:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
284 ; GCN-DAG: buffer_load_ushort [[LOAD1:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:2{{$}}
285 ; GCN-DAG: v_cvt_f32_f16_e32 v[[CVT0:[0-9]+]], [[LOAD0]]
286 ; GCN-DAG: v_cvt_f32_f16_e32 v[[CVT1:[0-9]+]], [[LOAD1]]
287 ; GCN-DAG: buffer_store_dwordx2 v{{\[}}[[CVT0]]:[[CVT1]]{{\]}}
288 ; GCN: s_endpgm
296 ; GCN-LABEL: {{^}}global_extload_v3f16_to_v3f32:
304 ; GCN-LABEL: {{^}}global_extload_v4f16_to_v4f32:
312 ; GCN-LABEL: {{^}}global_extload_v8f16_to_v8f32:
320 ; GCN-LABEL: {{^}}global_extload_v16f16_to_v16f32:
321 ; GCN: buffer_load_ushort
322 ; GCN: buffer_load_ushort
323 ; GCN: buffer_load_ushort
324 ; GCN: buffer_load_ushort
325 ; GCN: buffer_load_ushort
326 ; GCN: buffer_load_ushort
327 ; GCN: buffer_load_ushort
328 ; GCN: buffer_load_ushort
329 ; GCN: buffer_load_ushort
330 ; GCN: buffer_load_ushort
331 ; GCN: buffer_load_ushort
332 ; GCN: buffer_load_ushort
333 ; GCN: buffer_load_ushort
334 ; GCN: buffer_load_ushort
335 ; GCN: buffer_load_ushort
336 ; GCN: buffer_load_ushort
338 ; GCN: v_cvt_f32_f16_e32
339 ; GCN: v_cvt_f32_f16_e32
340 ; GCN: v_cvt_f32_f16_e32
341 ; GCN: v_cvt_f32_f16_e32
342 ; GCN: v_cvt_f32_f16_e32
343 ; GCN: v_cvt_f32_f16_e32
344 ; GCN: v_cvt_f32_f16_e32
345 ; GCN: v_cvt_f32_f16_e32
346 ; GCN: v_cvt_f32_f16_e32
347 ; GCN: v_cvt_f32_f16_e32
348 ; GCN: v_cvt_f32_f16_e32
349 ; GCN: v_cvt_f32_f16_e32
350 ; GCN: v_cvt_f32_f16_e32
351 ; GCN: v_cvt_f32_f16_e32
352 ; GCN: v_cvt_f32_f16_e32
353 ; GCN: v_cvt_f32_f16_e32
355 ; GCN: buffer_store_dwordx4
356 ; GCN: buffer_store_dwordx4
357 ; GCN: buffer_store_dwordx4
358 ; GCN: buffer_store_dwordx4
360 ; GCN: s_endpgm
368 ; GCN-LABEL: {{^}}global_extload_f16_to_f64:
369 ; GCN: buffer_load_ushort [[LOAD:v[0-9]+]]
370 ; GCN: v_cvt_f32_f16_e32 [[CVT0:v[0-9]+]], [[LOAD]]
371 ; GCN: v_cvt_f64_f32_e32 [[CVT1:v\[[0-9]+:[0-9]+\]]], [[CVT0]]
372 ; GCN: buffer_store_dwordx2 [[CVT1]]
380 ; GCN-LABEL: {{^}}global_extload_v2f16_to_v2f64:
381 ; GCN-DAG: buffer_load_ushort [[LOAD0:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
382 ; GCN-DAG: buffer_load_ushort [[LOAD1:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:2{{$}}
383 ; GCN-DAG: v_cvt_f32_f16_e32 v[[CVT0:[0-9]+]], [[LOAD0]]
384 ; GCN-DAG: v_cvt_f32_f16_e32 v[[CVT1:[0-9]+]], [[LOAD1]]
385 ; GCN-DAG: v_cvt_f64_f32_e32 v{{\[}}[[CVT2_LO:[0-9]+]]:[[CVT2_HI:[0-9]+]]{{\]}}, v[[CVT0]]
386 ; GCN-DAG: v_cvt_f64_f32_e32 v{{\[}}[[CVT3_LO:[0-9]+]]:[[CVT3_HI:[0-9]+]]{{\]}}, v[[CVT1]]
387 ; GCN-DAG: buffer_store_dwordx4 v{{\[}}[[CVT2_LO]]:[[CVT3_HI]]{{\]}}
388 ; GCN: s_endpgm
396 ; GCN-LABEL: {{^}}global_extload_v3f16_to_v3f64:
398 ; GCN: buffer_load_dwordx2 [[LOAD:v\[[0-9]+:[0-9]+\]]]
401 ; GCN: v_lshrrev_b32_e32 {{v[0-9]+}}, 16, {{v[0-9]+}}
403 ; GCN: v_cvt_f32_f16_e32
404 ; GCN: v_cvt_f32_f16_e32
405 ; GCN: v_cvt_f32_f16_e32
406 ; GCN-NOT: v_cvt_f32_f16_e32
408 ; GCN: v_cvt_f64_f32_e32
409 ; GCN: v_cvt_f64_f32_e32
410 ; GCN: v_cvt_f64_f32_e32
411 ; GCN-NOT: v_cvt_f64_f32_e32
413 ; GCN-DAG: buffer_store_dwordx4 v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
414 ; GCN-DAG: buffer_store_dwordx2 v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, 0 offset:16
415 ; GCN: s_endpgm
423 ; GCN-LABEL: {{^}}global_extload_v4f16_to_v4f64:
431 ; GCN-LABEL: {{^}}global_extload_v8f16_to_v8f64:
439 ; GCN-LABEL: {{^}}global_extload_v16f16_to_v16f64:
447 ; GCN-LABEL: {{^}}global_truncstore_f32_to_f16:
448 ; GCN: buffer_load_dword [[LOAD:v[0-9]+]]
449 ; GCN: v_cvt_f16_f32_e32 [[CVT:v[0-9]+]], [[LOAD]]
450 ; GCN: buffer_store_short [[CVT]]
458 ; GCN-LABEL: {{^}}global_truncstore_v2f32_to_v2f16:
459 ; GCN: buffer_load_dwordx2 v{{\[}}[[LO:[0-9]+]]:[[HI:[0-9]+]]{{\]}}
460 ; GCN-DAG: v_cvt_f16_f32_e32 [[CVT0:v[0-9]+]], v[[LO]]
461 ; GCN-DAG: v_cvt_f16_f32_e32 [[CVT1:v[0-9]+]], v[[HI]]
462 ; GCN-DAG: buffer_store_short [[CVT0]]
463 ; GCN-DAG: buffer_store_short [[CVT1]]
464 ; GCN: s_endpgm
472 ; GCN-LABEL: {{^}}global_truncstore_v3f32_to_v3f16:
473 ; GCN: buffer_load_dwordx4
474 ; GCN: v_cvt_f16_f32_e32
475 ; GCN: v_cvt_f16_f32_e32
476 ; GCN: v_cvt_f16_f32_e32
477 ; GCN-NOT: v_cvt_f16_f32_e32
478 ; GCN: buffer_store_short
479 ; GCN: buffer_store_dword
480 ; GCN: s_endpgm
488 ; GCN-LABEL: {{^}}global_truncstore_v4f32_to_v4f16:
489 ; GCN: buffer_load_dwordx4
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: buffer_store_short
495 ; GCN: buffer_store_short
496 ; GCN: buffer_store_short
497 ; GCN: buffer_store_short
498 ; GCN: s_endpgm
506 ; GCN-LABEL: {{^}}global_truncstore_v8f32_to_v8f16:
507 ; GCN: buffer_load_dwordx4
508 ; GCN: buffer_load_dwordx4
509 ; GCN: v_cvt_f16_f32_e32
510 ; GCN: v_cvt_f16_f32_e32
511 ; GCN: v_cvt_f16_f32_e32
512 ; GCN: v_cvt_f16_f32_e32
513 ; GCN: v_cvt_f16_f32_e32
514 ; GCN: v_cvt_f16_f32_e32
515 ; GCN: v_cvt_f16_f32_e32
516 ; GCN: v_cvt_f16_f32_e32
517 ; GCN: buffer_store_short
518 ; GCN: buffer_store_short
519 ; GCN: buffer_store_short
520 ; GCN: buffer_store_short
521 ; GCN: buffer_store_short
522 ; GCN: buffer_store_short
523 ; GCN: buffer_store_short
524 ; GCN: buffer_store_short
525 ; GCN: s_endpgm
533 ; GCN-LABEL: {{^}}global_truncstore_v16f32_to_v16f16:
534 ; GCN: buffer_load_dwordx4
535 ; GCN: buffer_load_dwordx4
536 ; GCN: buffer_load_dwordx4
537 ; GCN: buffer_load_dwordx4
538 ; GCN-DAG: v_cvt_f16_f32_e32
539 ; GCN-DAG: v_cvt_f16_f32_e32
540 ; GCN-DAG: v_cvt_f16_f32_e32
541 ; GCN-DAG: v_cvt_f16_f32_e32
542 ; GCN-DAG: v_cvt_f16_f32_e32
543 ; GCN-DAG: v_cvt_f16_f32_e32
544 ; GCN-DAG: v_cvt_f16_f32_e32
545 ; GCN-DAG: v_cvt_f16_f32_e32
546 ; GCN-DAG: v_cvt_f16_f32_e32
547 ; GCN-DAG: v_cvt_f16_f32_e32
548 ; GCN-DAG: v_cvt_f16_f32_e32
549 ; GCN-DAG: v_cvt_f16_f32_e32
550 ; GCN-DAG: v_cvt_f16_f32_e32
551 ; GCN-DAG: v_cvt_f16_f32_e32
552 ; GCN-DAG: v_cvt_f16_f32_e32
553 ; GCN-DAG: v_cvt_f16_f32_e32
554 ; GCN-DAG: buffer_store_short
555 ; GCN-DAG: buffer_store_short
556 ; GCN-DAG: buffer_store_short
557 ; GCN-DAG: buffer_store_short
558 ; GCN-DAG: buffer_store_short
559 ; GCN-DAG: buffer_store_short
560 ; GCN-DAG: buffer_store_short
561 ; GCN-DAG: buffer_store_short
562 ; GCN-DAG: buffer_store_short
563 ; GCN-DAG: buffer_store_short
564 ; GCN-DAG: buffer_store_short
565 ; GCN-DAG: buffer_store_short
566 ; GCN-DAG: buffer_store_short
567 ; GCN-DAG: buffer_store_short
568 ; GCN-DAG: buffer_store_short
569 ; GCN-DAG: buffer_store_short
570 ; GCN: s_endpgm
579 ; GCN-LABEL: {{^}}fadd_f16:
585 ; GCN: s_endpgm
592 ; GCN-LABEL: {{^}}fadd_v2f16:
595 ; GCN: s_endpgm
602 ; GCN-LABEL: {{^}}fadd_v4f16:
607 ; GCN: s_endpgm
617 ; GCN-LABEL: {{^}}fadd_v8f16:
626 ; GCN: s_endpgm
633 ; GCN-LABEL: {{^}}fsub_f16:
634 ; GCN: v_subrev_f32_e32
635 ; GCN: s_endpgm
645 ; GCN-LABEL: {{^}}test_bitcast_from_half:
646 ; GCN: buffer_load_ushort [[TMP:v[0-9]+]]
647 ; GCN: buffer_store_short [[TMP]]
655 ; GCN-LABEL: {{^}}test_bitcast_to_half:
656 ; GCN: buffer_load_ushort [[TMP:v[0-9]+]]
657 ; GCN: buffer_store_short [[TMP]]