1
1
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2
- # RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck %s
2
+ # RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck %s
3
3
4
4
---
5
5
name : test_sext_s32_to_s64
@@ -336,8 +336,10 @@ body: |
336
336
337
337
; CHECK-LABEL: name: test_sext_s32_to_s128
338
338
; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
339
- ; CHECK: [[SEXT:%[0-9]+]]:_(s128) = G_SEXT [[COPY]](s32)
340
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s128)
339
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
340
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s32)
341
+ ; CHECK: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32)
342
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s128)
341
343
%0:_(s32) = COPY $vgpr0
342
344
%1:_(s128) = G_SEXT %0
343
345
S_ENDPGM 0, implicit %1
@@ -351,8 +353,10 @@ body: |
351
353
352
354
; CHECK-LABEL: name: test_sext_s32_to_s256
353
355
; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
354
- ; CHECK: [[SEXT:%[0-9]+]]:_(s256) = G_SEXT [[COPY]](s32)
355
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s256)
356
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
357
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s32)
358
+ ; CHECK: [[MV:%[0-9]+]]:_(s256) = G_MERGE_VALUES [[COPY]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32)
359
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s256)
356
360
%0:_(s32) = COPY $vgpr0
357
361
%1:_(s256) = G_SEXT %0
358
362
S_ENDPGM 0, implicit %1
@@ -366,8 +370,10 @@ body: |
366
370
367
371
; CHECK-LABEL: name: test_sext_s32_to_s512
368
372
; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
369
- ; CHECK: [[SEXT:%[0-9]+]]:_(s512) = G_SEXT [[COPY]](s32)
370
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s512)
373
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
374
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s32)
375
+ ; CHECK: [[MV:%[0-9]+]]:_(s512) = G_MERGE_VALUES [[COPY]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32)
376
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s512)
371
377
%0:_(s32) = COPY $vgpr0
372
378
%1:_(s512) = G_SEXT %0
373
379
S_ENDPGM 0, implicit %1
@@ -381,8 +387,10 @@ body: |
381
387
382
388
; CHECK-LABEL: name: test_sext_s32_to_s1024
383
389
; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
384
- ; CHECK: [[SEXT:%[0-9]+]]:_(s1024) = G_SEXT [[COPY]](s32)
385
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s1024)
390
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
391
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s32)
392
+ ; CHECK: [[MV:%[0-9]+]]:_(s1024) = G_MERGE_VALUES [[COPY]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32), [[ASHR]](s32)
393
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s1024)
386
394
%0:_(s32) = COPY $vgpr0
387
395
%1:_(s1024) = G_SEXT %0
388
396
S_ENDPGM 0, implicit %1
@@ -413,8 +421,10 @@ body: |
413
421
414
422
; CHECK-LABEL: name: test_sext_s64_to_s256
415
423
; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
416
- ; CHECK: [[SEXT:%[0-9]+]]:_(s256) = G_SEXT [[COPY]](s64)
417
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s256)
424
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63
425
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[COPY]], [[C]](s32)
426
+ ; CHECK: [[MV:%[0-9]+]]:_(s256) = G_MERGE_VALUES [[COPY]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64)
427
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s256)
418
428
%0:_(s64) = COPY $vgpr0_vgpr1
419
429
%1:_(s256) = G_SEXT %0
420
430
S_ENDPGM 0, implicit %1
@@ -428,8 +438,10 @@ body: |
428
438
429
439
; CHECK-LABEL: name: test_sext_s64_to_s512
430
440
; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
431
- ; CHECK: [[SEXT:%[0-9]+]]:_(s512) = G_SEXT [[COPY]](s64)
432
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s512)
441
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63
442
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[COPY]], [[C]](s32)
443
+ ; CHECK: [[MV:%[0-9]+]]:_(s512) = G_MERGE_VALUES [[COPY]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64)
444
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s512)
433
445
%0:_(s64) = COPY $vgpr0_vgpr1
434
446
%1:_(s512) = G_SEXT %0
435
447
S_ENDPGM 0, implicit %1
@@ -443,8 +455,10 @@ body: |
443
455
444
456
; CHECK-LABEL: name: test_sext_s64_to_s1024
445
457
; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
446
- ; CHECK: [[SEXT:%[0-9]+]]:_(s1024) = G_SEXT [[COPY]](s64)
447
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s1024)
458
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63
459
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[COPY]], [[C]](s32)
460
+ ; CHECK: [[MV:%[0-9]+]]:_(s1024) = G_MERGE_VALUES [[COPY]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64), [[ASHR]](s64)
461
+ ; CHECK: S_ENDPGM 0, implicit [[MV]](s1024)
448
462
%0:_(s64) = COPY $vgpr0_vgpr1
449
463
%1:_(s1024) = G_SEXT %0
450
464
S_ENDPGM 0, implicit %1
@@ -469,8 +483,27 @@ body: |
469
483
470
484
; CHECK-LABEL: name: test_sext_s128_to_s256
471
485
; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
472
- ; CHECK: [[SEXT:%[0-9]+]]:_(s256) = G_SEXT [[COPY]](s128)
473
- ; CHECK: S_ENDPGM 0, implicit [[SEXT]](s256)
486
+ ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127
487
+ ; CHECK: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 64
488
+ ; CHECK: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](s128)
489
+ ; CHECK: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[C1]]
490
+ ; CHECK: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C1]], [[C]]
491
+ ; CHECK: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
492
+ ; CHECK: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ult), [[C]](s32), [[C1]]
493
+ ; CHECK: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[C]](s32), [[C2]]
494
+ ; CHECK: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[UV1]], [[C]](s32)
495
+ ; CHECK: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[UV]], [[C]](s32)
496
+ ; CHECK: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[UV1]], [[SUB1]](s32)
497
+ ; CHECK: [[OR:%[0-9]+]]:_(s64) = G_OR [[LSHR]], [[SHL]]
498
+ ; CHECK: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 63
499
+ ; CHECK: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[UV1]], [[C3]](s32)
500
+ ; CHECK: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[UV1]], [[SUB]](s32)
501
+ ; CHECK: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[OR]], [[ASHR2]]
502
+ ; CHECK: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP1]](s1), [[UV]], [[SELECT]]
503
+ ; CHECK: [[SELECT2:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[ASHR]], [[ASHR1]]
504
+ ; CHECK: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[SELECT1]](s64), [[SELECT2]](s64)
505
+ ; CHECK: [[MV1:%[0-9]+]]:_(s256) = G_MERGE_VALUES [[COPY]](s128), [[MV]](s128)
506
+ ; CHECK: S_ENDPGM 0, implicit [[MV1]](s256)
474
507
%0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
475
508
%1:_(s256) = G_SEXT %0
476
509
S_ENDPGM 0, implicit %1
0 commit comments