1
1
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2
2
# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=amdgpu-regbankselect -regbankselect-fast -verify-machineinstrs %s -o - | FileCheck %s
3
3
# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=amdgpu-regbankselect -regbankselect-greedy -verify-machineinstrs %s -o - | FileCheck %s
4
+ # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=amdgpu-regbankselect -regbankselect-fast -verify-machineinstrs %s -o - | FileCheck --check-prefix=GFX10 %s
5
+ # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=amdgpu-regbankselect -regbankselect-greedy -verify-machineinstrs %s -o - | FileCheck --check-prefix=GFX10 %s
4
6
5
7
---
6
8
name : copy_s32_vgpr_to_vgpr
@@ -216,6 +218,14 @@ body: |
216
218
; CHECK-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
217
219
; CHECK-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
218
220
; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
221
+ ;
222
+ ; GFX10-LABEL: name: copy_sgpr_64_to_s1
223
+ ; GFX10: liveins: $sgpr4_sgpr5
224
+ ; GFX10-NEXT: {{ $}}
225
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vcc(s1) = COPY $sgpr4_sgpr5
226
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
227
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
228
+ ; GFX10-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
219
229
%0:_(s1) = COPY $sgpr4_sgpr5
220
230
%1:_(s32) = G_ZEXT %0:_(s1)
221
231
...
@@ -234,6 +244,14 @@ body: |
234
244
; CHECK-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
235
245
; CHECK-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
236
246
; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
247
+ ;
248
+ ; GFX10-LABEL: name: copy_sgpr_32_to_s1
249
+ ; GFX10: liveins: $sgpr0
250
+ ; GFX10-NEXT: {{ $}}
251
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vcc(s1) = COPY $sgpr0
252
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
253
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
254
+ ; GFX10-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
237
255
%0:_(s1) = COPY $sgpr0
238
256
%1:_(s32) = G_ZEXT %0:_(s1)
239
257
...
@@ -256,6 +274,18 @@ body: |
256
274
; CHECK-NEXT: [[CONST3:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
257
275
; CHECK-NEXT: [[CONST4:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
258
276
; CHECK-NEXT: [[SELECT2:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY2]](s1), [[CONST3]], [[CONST4]]
277
+ ;
278
+ ; GFX10-LABEL: name: copy2_sgpr_64_to_s1
279
+ ; GFX10: liveins: $sgpr4_sgpr5, $sgpr6_sgpr7
280
+ ; GFX10-NEXT: {{ $}}
281
+ ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY $sgpr4_sgpr5
282
+ ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vcc(s1) = COPY $sgpr6_sgpr7
283
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
284
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
285
+ ; GFX10-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY1]](s1), [[CONST1]], [[CONST2]]
286
+ ; GFX10-NEXT: [[CONST3:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
287
+ ; GFX10-NEXT: [[CONST4:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
288
+ ; GFX10-NEXT: [[SELECT2:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY2]](s1), [[CONST3]], [[CONST4]]
259
289
%0:_(s1) = COPY $sgpr4_sgpr5
260
290
%1:_(s1) = COPY $sgpr6_sgpr7
261
291
%2:_(s32) = G_ZEXT %0:_(s1)
@@ -280,6 +310,18 @@ body: |
280
310
; CHECK-NEXT: [[CONST3:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
281
311
; CHECK-NEXT: [[CONST4:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
282
312
; CHECK-NEXT: [[SELECT2:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY2]](s1), [[CONST3]], [[CONST4]]
313
+ ;
314
+ ; GFX10-LABEL: name: copy2_sgpr_32_to_s1
315
+ ; GFX10: liveins: $sgpr0, $sgpr1
316
+ ; GFX10-NEXT: {{ $}}
317
+ ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY $sgpr0
318
+ ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vcc(s1) = COPY $sgpr1
319
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
320
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
321
+ ; GFX10-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY1]](s1), [[CONST1]], [[CONST2]]
322
+ ; GFX10-NEXT: [[CONST3:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
323
+ ; GFX10-NEXT: [[CONST4:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
324
+ ; GFX10-NEXT: [[SELECT2:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY2]](s1), [[CONST3]], [[CONST4]]
283
325
%0:_(s1) = COPY $sgpr0
284
326
%1:_(s1) = COPY $sgpr1
285
327
%2:_(s32) = G_ZEXT %0:_(s1)
@@ -303,6 +345,17 @@ body: |
303
345
; CHECK-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY1]](s1), [[CONST1]], [[CONST2]]
304
346
; CHECK-NEXT: [[CONST3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 1
305
347
; CHECK-NEXT: [[AND1:%[0-9]+]]:sgpr(s32) = G_AND [[COPY2]], [[CONST3]]
348
+ ;
349
+ ; GFX10-LABEL: name: copy_sgpr_64_and_sgpr_32_to_s1
350
+ ; GFX10: liveins: $sgpr6, $sgpr4_sgpr5
351
+ ; GFX10-NEXT: {{ $}}
352
+ ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY $sgpr4_sgpr5
353
+ ; GFX10-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr6
354
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
355
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
356
+ ; GFX10-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY1]](s1), [[CONST1]], [[CONST2]]
357
+ ; GFX10-NEXT: [[CONST3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 1
358
+ ; GFX10-NEXT: [[AND1:%[0-9]+]]:sgpr(s32) = G_AND [[COPY2]], [[CONST3]]
306
359
%0:_(s1) = COPY $sgpr4_sgpr5
307
360
%2:_(s32) = COPY $sgpr6
308
361
%7:_(s32) = G_ZEXT %0:_(s1)
@@ -322,6 +375,12 @@ body: |
322
375
; CHECK-NEXT: {{ $}}
323
376
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s1) = COPY $sgpr4_sgpr5
324
377
; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vgpr(s32) = G_ZEXT [[COPY]](s1)
378
+ ;
379
+ ; GFX10-LABEL: name: copy_sgpr_64_to_s1_vgpr
380
+ ; GFX10: liveins: $sgpr4_sgpr5
381
+ ; GFX10-NEXT: {{ $}}
382
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s1) = COPY $sgpr4_sgpr5
383
+ ; GFX10-NEXT: [[ZEXT:%[0-9]+]]:vgpr(s32) = G_ZEXT [[COPY]](s1)
325
384
%0:vgpr(s1) = COPY $sgpr4_sgpr5
326
385
%1:_(s32) = G_ZEXT %0:vgpr(s1)
327
386
...
@@ -338,6 +397,12 @@ body: |
338
397
; CHECK-NEXT: {{ $}}
339
398
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s1) = COPY $sgpr0
340
399
; CHECK-NEXT: [[ZEXT:%[0-9]+]]:vgpr(s32) = G_ZEXT [[COPY]](s1)
400
+ ;
401
+ ; GFX10-LABEL: name: copy_sgpr_32_to_s1_vgpr
402
+ ; GFX10: liveins: $sgpr0
403
+ ; GFX10-NEXT: {{ $}}
404
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s1) = COPY $sgpr0
405
+ ; GFX10-NEXT: [[ZEXT:%[0-9]+]]:vgpr(s32) = G_ZEXT [[COPY]](s1)
341
406
%0:vgpr(s1) = COPY $sgpr0
342
407
%1:_(s32) = G_ZEXT %0:vgpr(s1)
343
408
...
@@ -356,6 +421,14 @@ body: |
356
421
; CHECK-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
357
422
; CHECK-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
358
423
; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
424
+ ;
425
+ ; GFX10-LABEL: name: copy_sgpr_64_to_s1_vcc
426
+ ; GFX10: liveins: $sgpr4_sgpr5
427
+ ; GFX10-NEXT: {{ $}}
428
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vcc(s1) = COPY $sgpr4_sgpr5
429
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
430
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
431
+ ; GFX10-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
359
432
%0:vcc(s1) = COPY $sgpr4_sgpr5
360
433
%1:_(s32) = G_ZEXT %0:vcc(s1)
361
434
...
@@ -374,6 +447,14 @@ body: |
374
447
; CHECK-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
375
448
; CHECK-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
376
449
; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
450
+ ;
451
+ ; GFX10-LABEL: name: copy_sgpr_32_to_s1_vcc
452
+ ; GFX10: liveins: $sgpr0
453
+ ; GFX10-NEXT: {{ $}}
454
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vcc(s1) = COPY $sgpr0
455
+ ; GFX10-NEXT: [[CONST1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1
456
+ ; GFX10-NEXT: [[CONST2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0
457
+ ; GFX10-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY]](s1), [[CONST1]], [[CONST2]]
377
458
%0:vcc(s1) = COPY $sgpr0
378
459
%1:_(s32) = G_ZEXT %0:vcc(s1)
379
460
...
@@ -391,6 +472,13 @@ body: |
391
472
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
392
473
; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
393
474
; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s1) = COPY [[TRUNC]](s1)
475
+ ;
476
+ ; GFX10-LABEL: name: copy_virt_reg_to_s1
477
+ ; GFX10: liveins: $vgpr0
478
+ ; GFX10-NEXT: {{ $}}
479
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
480
+ ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
481
+ ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr(s1) = COPY [[TRUNC]](s1)
394
482
%0:_(s32) = COPY $vgpr0
395
483
%1:_(s1) = G_TRUNC %0
396
484
%2:_(s1) = COPY %1
@@ -410,6 +498,14 @@ body: |
410
498
; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
411
499
; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s1) = COPY [[TRUNC]](s1)
412
500
; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr(s1) = COPY [[COPY2]](s1)
501
+ ;
502
+ ; GFX10-LABEL: name: copy_virt_reg_to_s1_vgpr
503
+ ; GFX10: liveins: $vgpr0
504
+ ; GFX10-NEXT: {{ $}}
505
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
506
+ ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
507
+ ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr(s1) = COPY [[TRUNC]](s1)
508
+ ; GFX10-NEXT: [[COPY3:%[0-9]+]]:vgpr(s1) = COPY [[COPY2]](s1)
413
509
%0:_(s32) = COPY $vgpr0
414
510
%1:_(s1) = G_TRUNC %0
415
511
%2:vgpr(s1) = COPY %1
@@ -431,6 +527,14 @@ body: |
431
527
; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
432
528
; CHECK-NEXT: [[COPY2:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
433
529
; CHECK-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[COPY2]](s1)
530
+ ;
531
+ ; GFX10-LABEL: name: copy_virt_reg_to_s1_vcc
532
+ ; GFX10: liveins: $vgpr0
533
+ ; GFX10-NEXT: {{ $}}
534
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
535
+ ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
536
+ ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
537
+ ; GFX10-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[COPY2]](s1)
434
538
%0:_(s32) = COPY $vgpr0
435
539
%1:_(s1) = G_TRUNC %0
436
540
%2:vcc(s1) = COPY %1
@@ -450,6 +554,13 @@ body: |
450
554
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
451
555
; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
452
556
; CHECK-NEXT: $sgpr4_sgpr5 = COPY [[TRUNC]](s1)
557
+ ;
558
+ ; GFX10-LABEL: name: copy_s1_to_sgpr_64
559
+ ; GFX10: liveins: $vgpr0
560
+ ; GFX10-NEXT: {{ $}}
561
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
562
+ ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
563
+ ; GFX10-NEXT: $sgpr4_sgpr5 = COPY [[TRUNC]](s1)
453
564
%0:_(s32) = COPY $vgpr0
454
565
%1:_(s1) = G_TRUNC %0
455
566
$sgpr4_sgpr5 = COPY %1
@@ -468,8 +579,14 @@ body: |
468
579
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
469
580
; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
470
581
; CHECK-NEXT: $sgpr0 = COPY [[TRUNC]](s1)
582
+ ;
583
+ ; GFX10-LABEL: name: copy_s1_to_sgpr_32
584
+ ; GFX10: liveins: $vgpr0
585
+ ; GFX10-NEXT: {{ $}}
586
+ ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
587
+ ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
588
+ ; GFX10-NEXT: $sgpr0 = COPY [[TRUNC]](s1)
471
589
%0:_(s32) = COPY $vgpr0
472
590
%1:_(s1) = G_TRUNC %0
473
591
$sgpr0 = COPY %1
474
592
...
475
-
0 commit comments