Skip to content

Commit 513976d

Browse files
committed
[PowerPC] Ignore implicit register operands for MCInst
Summary: When doing the conversion: MachineInst -> MCInst, we should ignore the implicit operands, it will expose more opportunity for InstiAlias. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D77118
1 parent 490443f commit 513976d

File tree

91 files changed

+1990
-1987
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1990
-1987
lines changed

llvm/lib/Target/PowerPC/PPCMCInstLower.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ bool llvm::LowerPPCMachineOperandToMCOperand(const MachineOperand &MO,
147147
assert(MO.getReg() > PPC::NoRegister &&
148148
MO.getReg() < PPC::NUM_TARGET_REGS &&
149149
"Invalid register for this target!");
150+
// Ignore all implicit register operands.
151+
if (MO.isImplicit())
152+
return false;
150153
OutMO = MCOperand::createReg(MO.getReg());
151154
return true;
152155
case MachineOperand::MO_Immediate:

llvm/test/CodeGen/PowerPC/NoCRFieldRedefWhenSpillingCRBIT.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ body: |
9494
renamable $cr5lt = CRNOR renamable $cr0lt, renamable $cr1gt, implicit killed $cr0
9595
renamable $cr5gt = COPY renamable $cr1gt, implicit $cr1
9696
; CHECK: crnor 4*cr5+lt, lt, 4*cr1+gt
97-
; CHECK: cror 4*cr5+gt, 4*cr1+gt, 4*cr1+gt
97+
; CHECK: crmove 4*cr5+gt, 4*cr1+gt
9898
SPILL_CRBIT killed renamable $cr5lt, 0, %stack.0 :: (store 4 into %stack.0)
9999
renamable $cr1 = CMPW renamable $r4, renamable $r5, implicit killed $x5, implicit killed $x4
100100
SPILL_CRBIT killed renamable $cr5gt, 0, %stack.1 :: (store 4 into %stack.1)

llvm/test/CodeGen/PowerPC/atomics-regression.ll

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ define void @test39() {
400400
define void @test40(i8* %ptr, i8 %cmp, i8 %val) {
401401
; PPC64LE-LABEL: test40:
402402
; PPC64LE: # %bb.0:
403-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
403+
; PPC64LE-NEXT: clrlwi 4, 4, 24
404404
; PPC64LE-NEXT: .LBB40_1:
405405
; PPC64LE-NEXT: lbarx 6, 0, 3
406406
; PPC64LE-NEXT: cmpw 4, 6
@@ -419,7 +419,7 @@ define void @test40(i8* %ptr, i8 %cmp, i8 %val) {
419419
define void @test41(i8* %ptr, i8 %cmp, i8 %val) {
420420
; PPC64LE-LABEL: test41:
421421
; PPC64LE: # %bb.0:
422-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
422+
; PPC64LE-NEXT: clrlwi 4, 4, 24
423423
; PPC64LE-NEXT: .LBB41_1:
424424
; PPC64LE-NEXT: lbarx 6, 0, 3
425425
; PPC64LE-NEXT: cmpw 4, 6
@@ -441,7 +441,7 @@ define void @test41(i8* %ptr, i8 %cmp, i8 %val) {
441441
define void @test42(i8* %ptr, i8 %cmp, i8 %val) {
442442
; PPC64LE-LABEL: test42:
443443
; PPC64LE: # %bb.0:
444-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
444+
; PPC64LE-NEXT: clrlwi 4, 4, 24
445445
; PPC64LE-NEXT: .LBB42_1:
446446
; PPC64LE-NEXT: lbarx 6, 0, 3
447447
; PPC64LE-NEXT: cmpw 4, 6
@@ -463,7 +463,7 @@ define void @test42(i8* %ptr, i8 %cmp, i8 %val) {
463463
define void @test43(i8* %ptr, i8 %cmp, i8 %val) {
464464
; PPC64LE-LABEL: test43:
465465
; PPC64LE: # %bb.0:
466-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
466+
; PPC64LE-NEXT: clrlwi 4, 4, 24
467467
; PPC64LE-NEXT: lwsync
468468
; PPC64LE-NEXT: .LBB43_1:
469469
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -483,7 +483,7 @@ define void @test43(i8* %ptr, i8 %cmp, i8 %val) {
483483
define void @test44(i8* %ptr, i8 %cmp, i8 %val) {
484484
; PPC64LE-LABEL: test44:
485485
; PPC64LE: # %bb.0:
486-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
486+
; PPC64LE-NEXT: clrlwi 4, 4, 24
487487
; PPC64LE-NEXT: lwsync
488488
; PPC64LE-NEXT: .LBB44_1:
489489
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -503,7 +503,7 @@ define void @test44(i8* %ptr, i8 %cmp, i8 %val) {
503503
define void @test45(i8* %ptr, i8 %cmp, i8 %val) {
504504
; PPC64LE-LABEL: test45:
505505
; PPC64LE: # %bb.0:
506-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
506+
; PPC64LE-NEXT: clrlwi 4, 4, 24
507507
; PPC64LE-NEXT: lwsync
508508
; PPC64LE-NEXT: .LBB45_1:
509509
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -526,7 +526,7 @@ define void @test45(i8* %ptr, i8 %cmp, i8 %val) {
526526
define void @test46(i8* %ptr, i8 %cmp, i8 %val) {
527527
; PPC64LE-LABEL: test46:
528528
; PPC64LE: # %bb.0:
529-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
529+
; PPC64LE-NEXT: clrlwi 4, 4, 24
530530
; PPC64LE-NEXT: lwsync
531531
; PPC64LE-NEXT: .LBB46_1:
532532
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -549,7 +549,7 @@ define void @test46(i8* %ptr, i8 %cmp, i8 %val) {
549549
define void @test47(i8* %ptr, i8 %cmp, i8 %val) {
550550
; PPC64LE-LABEL: test47:
551551
; PPC64LE: # %bb.0:
552-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
552+
; PPC64LE-NEXT: clrlwi 4, 4, 24
553553
; PPC64LE-NEXT: sync
554554
; PPC64LE-NEXT: .LBB47_1:
555555
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -572,7 +572,7 @@ define void @test47(i8* %ptr, i8 %cmp, i8 %val) {
572572
define void @test48(i8* %ptr, i8 %cmp, i8 %val) {
573573
; PPC64LE-LABEL: test48:
574574
; PPC64LE: # %bb.0:
575-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
575+
; PPC64LE-NEXT: clrlwi 4, 4, 24
576576
; PPC64LE-NEXT: sync
577577
; PPC64LE-NEXT: .LBB48_1:
578578
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -595,7 +595,7 @@ define void @test48(i8* %ptr, i8 %cmp, i8 %val) {
595595
define void @test49(i8* %ptr, i8 %cmp, i8 %val) {
596596
; PPC64LE-LABEL: test49:
597597
; PPC64LE: # %bb.0:
598-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
598+
; PPC64LE-NEXT: clrlwi 4, 4, 24
599599
; PPC64LE-NEXT: sync
600600
; PPC64LE-NEXT: .LBB49_1:
601601
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -618,7 +618,7 @@ define void @test49(i8* %ptr, i8 %cmp, i8 %val) {
618618
define void @test50(i16* %ptr, i16 %cmp, i16 %val) {
619619
; PPC64LE-LABEL: test50:
620620
; PPC64LE: # %bb.0:
621-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
621+
; PPC64LE-NEXT: clrlwi 4, 4, 16
622622
; PPC64LE-NEXT: .LBB50_1:
623623
; PPC64LE-NEXT: lharx 6, 0, 3
624624
; PPC64LE-NEXT: cmpw 4, 6
@@ -637,7 +637,7 @@ define void @test50(i16* %ptr, i16 %cmp, i16 %val) {
637637
define void @test51(i16* %ptr, i16 %cmp, i16 %val) {
638638
; PPC64LE-LABEL: test51:
639639
; PPC64LE: # %bb.0:
640-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
640+
; PPC64LE-NEXT: clrlwi 4, 4, 16
641641
; PPC64LE-NEXT: .LBB51_1:
642642
; PPC64LE-NEXT: lharx 6, 0, 3
643643
; PPC64LE-NEXT: cmpw 4, 6
@@ -659,7 +659,7 @@ define void @test51(i16* %ptr, i16 %cmp, i16 %val) {
659659
define void @test52(i16* %ptr, i16 %cmp, i16 %val) {
660660
; PPC64LE-LABEL: test52:
661661
; PPC64LE: # %bb.0:
662-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
662+
; PPC64LE-NEXT: clrlwi 4, 4, 16
663663
; PPC64LE-NEXT: .LBB52_1:
664664
; PPC64LE-NEXT: lharx 6, 0, 3
665665
; PPC64LE-NEXT: cmpw 4, 6
@@ -681,7 +681,7 @@ define void @test52(i16* %ptr, i16 %cmp, i16 %val) {
681681
define void @test53(i16* %ptr, i16 %cmp, i16 %val) {
682682
; PPC64LE-LABEL: test53:
683683
; PPC64LE: # %bb.0:
684-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
684+
; PPC64LE-NEXT: clrlwi 4, 4, 16
685685
; PPC64LE-NEXT: lwsync
686686
; PPC64LE-NEXT: .LBB53_1:
687687
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -701,7 +701,7 @@ define void @test53(i16* %ptr, i16 %cmp, i16 %val) {
701701
define void @test54(i16* %ptr, i16 %cmp, i16 %val) {
702702
; PPC64LE-LABEL: test54:
703703
; PPC64LE: # %bb.0:
704-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
704+
; PPC64LE-NEXT: clrlwi 4, 4, 16
705705
; PPC64LE-NEXT: lwsync
706706
; PPC64LE-NEXT: .LBB54_1:
707707
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -721,7 +721,7 @@ define void @test54(i16* %ptr, i16 %cmp, i16 %val) {
721721
define void @test55(i16* %ptr, i16 %cmp, i16 %val) {
722722
; PPC64LE-LABEL: test55:
723723
; PPC64LE: # %bb.0:
724-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
724+
; PPC64LE-NEXT: clrlwi 4, 4, 16
725725
; PPC64LE-NEXT: lwsync
726726
; PPC64LE-NEXT: .LBB55_1:
727727
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -744,7 +744,7 @@ define void @test55(i16* %ptr, i16 %cmp, i16 %val) {
744744
define void @test56(i16* %ptr, i16 %cmp, i16 %val) {
745745
; PPC64LE-LABEL: test56:
746746
; PPC64LE: # %bb.0:
747-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
747+
; PPC64LE-NEXT: clrlwi 4, 4, 16
748748
; PPC64LE-NEXT: lwsync
749749
; PPC64LE-NEXT: .LBB56_1:
750750
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -767,7 +767,7 @@ define void @test56(i16* %ptr, i16 %cmp, i16 %val) {
767767
define void @test57(i16* %ptr, i16 %cmp, i16 %val) {
768768
; PPC64LE-LABEL: test57:
769769
; PPC64LE: # %bb.0:
770-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
770+
; PPC64LE-NEXT: clrlwi 4, 4, 16
771771
; PPC64LE-NEXT: sync
772772
; PPC64LE-NEXT: .LBB57_1:
773773
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -790,7 +790,7 @@ define void @test57(i16* %ptr, i16 %cmp, i16 %val) {
790790
define void @test58(i16* %ptr, i16 %cmp, i16 %val) {
791791
; PPC64LE-LABEL: test58:
792792
; PPC64LE: # %bb.0:
793-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
793+
; PPC64LE-NEXT: clrlwi 4, 4, 16
794794
; PPC64LE-NEXT: sync
795795
; PPC64LE-NEXT: .LBB58_1:
796796
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -813,7 +813,7 @@ define void @test58(i16* %ptr, i16 %cmp, i16 %val) {
813813
define void @test59(i16* %ptr, i16 %cmp, i16 %val) {
814814
; PPC64LE-LABEL: test59:
815815
; PPC64LE: # %bb.0:
816-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
816+
; PPC64LE-NEXT: clrlwi 4, 4, 16
817817
; PPC64LE-NEXT: sync
818818
; PPC64LE-NEXT: .LBB59_1:
819819
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1252,7 +1252,7 @@ define void @test79(i64* %ptr, i64 %cmp, i64 %val) {
12521252
define void @test80(i8* %ptr, i8 %cmp, i8 %val) {
12531253
; PPC64LE-LABEL: test80:
12541254
; PPC64LE: # %bb.0:
1255-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1255+
; PPC64LE-NEXT: clrlwi 4, 4, 24
12561256
; PPC64LE-NEXT: .LBB80_1:
12571257
; PPC64LE-NEXT: lbarx 6, 0, 3
12581258
; PPC64LE-NEXT: cmpw 4, 6
@@ -1271,7 +1271,7 @@ define void @test80(i8* %ptr, i8 %cmp, i8 %val) {
12711271
define void @test81(i8* %ptr, i8 %cmp, i8 %val) {
12721272
; PPC64LE-LABEL: test81:
12731273
; PPC64LE: # %bb.0:
1274-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1274+
; PPC64LE-NEXT: clrlwi 4, 4, 24
12751275
; PPC64LE-NEXT: .LBB81_1:
12761276
; PPC64LE-NEXT: lbarx 6, 0, 3
12771277
; PPC64LE-NEXT: cmpw 4, 6
@@ -1293,7 +1293,7 @@ define void @test81(i8* %ptr, i8 %cmp, i8 %val) {
12931293
define void @test82(i8* %ptr, i8 %cmp, i8 %val) {
12941294
; PPC64LE-LABEL: test82:
12951295
; PPC64LE: # %bb.0:
1296-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1296+
; PPC64LE-NEXT: clrlwi 4, 4, 24
12971297
; PPC64LE-NEXT: .LBB82_1:
12981298
; PPC64LE-NEXT: lbarx 6, 0, 3
12991299
; PPC64LE-NEXT: cmpw 4, 6
@@ -1315,7 +1315,7 @@ define void @test82(i8* %ptr, i8 %cmp, i8 %val) {
13151315
define void @test83(i8* %ptr, i8 %cmp, i8 %val) {
13161316
; PPC64LE-LABEL: test83:
13171317
; PPC64LE: # %bb.0:
1318-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1318+
; PPC64LE-NEXT: clrlwi 4, 4, 24
13191319
; PPC64LE-NEXT: lwsync
13201320
; PPC64LE-NEXT: .LBB83_1:
13211321
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1335,7 +1335,7 @@ define void @test83(i8* %ptr, i8 %cmp, i8 %val) {
13351335
define void @test84(i8* %ptr, i8 %cmp, i8 %val) {
13361336
; PPC64LE-LABEL: test84:
13371337
; PPC64LE: # %bb.0:
1338-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1338+
; PPC64LE-NEXT: clrlwi 4, 4, 24
13391339
; PPC64LE-NEXT: lwsync
13401340
; PPC64LE-NEXT: .LBB84_1:
13411341
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1355,7 +1355,7 @@ define void @test84(i8* %ptr, i8 %cmp, i8 %val) {
13551355
define void @test85(i8* %ptr, i8 %cmp, i8 %val) {
13561356
; PPC64LE-LABEL: test85:
13571357
; PPC64LE: # %bb.0:
1358-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1358+
; PPC64LE-NEXT: clrlwi 4, 4, 24
13591359
; PPC64LE-NEXT: lwsync
13601360
; PPC64LE-NEXT: .LBB85_1:
13611361
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1378,7 +1378,7 @@ define void @test85(i8* %ptr, i8 %cmp, i8 %val) {
13781378
define void @test86(i8* %ptr, i8 %cmp, i8 %val) {
13791379
; PPC64LE-LABEL: test86:
13801380
; PPC64LE: # %bb.0:
1381-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1381+
; PPC64LE-NEXT: clrlwi 4, 4, 24
13821382
; PPC64LE-NEXT: lwsync
13831383
; PPC64LE-NEXT: .LBB86_1:
13841384
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1401,7 +1401,7 @@ define void @test86(i8* %ptr, i8 %cmp, i8 %val) {
14011401
define void @test87(i8* %ptr, i8 %cmp, i8 %val) {
14021402
; PPC64LE-LABEL: test87:
14031403
; PPC64LE: # %bb.0:
1404-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1404+
; PPC64LE-NEXT: clrlwi 4, 4, 24
14051405
; PPC64LE-NEXT: sync
14061406
; PPC64LE-NEXT: .LBB87_1:
14071407
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1424,7 +1424,7 @@ define void @test87(i8* %ptr, i8 %cmp, i8 %val) {
14241424
define void @test88(i8* %ptr, i8 %cmp, i8 %val) {
14251425
; PPC64LE-LABEL: test88:
14261426
; PPC64LE: # %bb.0:
1427-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1427+
; PPC64LE-NEXT: clrlwi 4, 4, 24
14281428
; PPC64LE-NEXT: sync
14291429
; PPC64LE-NEXT: .LBB88_1:
14301430
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1447,7 +1447,7 @@ define void @test88(i8* %ptr, i8 %cmp, i8 %val) {
14471447
define void @test89(i8* %ptr, i8 %cmp, i8 %val) {
14481448
; PPC64LE-LABEL: test89:
14491449
; PPC64LE: # %bb.0:
1450-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 24, 31
1450+
; PPC64LE-NEXT: clrlwi 4, 4, 24
14511451
; PPC64LE-NEXT: sync
14521452
; PPC64LE-NEXT: .LBB89_1:
14531453
; PPC64LE-NEXT: lbarx 6, 0, 3
@@ -1470,7 +1470,7 @@ define void @test89(i8* %ptr, i8 %cmp, i8 %val) {
14701470
define void @test90(i16* %ptr, i16 %cmp, i16 %val) {
14711471
; PPC64LE-LABEL: test90:
14721472
; PPC64LE: # %bb.0:
1473-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1473+
; PPC64LE-NEXT: clrlwi 4, 4, 16
14741474
; PPC64LE-NEXT: .LBB90_1:
14751475
; PPC64LE-NEXT: lharx 6, 0, 3
14761476
; PPC64LE-NEXT: cmpw 4, 6
@@ -1489,7 +1489,7 @@ define void @test90(i16* %ptr, i16 %cmp, i16 %val) {
14891489
define void @test91(i16* %ptr, i16 %cmp, i16 %val) {
14901490
; PPC64LE-LABEL: test91:
14911491
; PPC64LE: # %bb.0:
1492-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1492+
; PPC64LE-NEXT: clrlwi 4, 4, 16
14931493
; PPC64LE-NEXT: .LBB91_1:
14941494
; PPC64LE-NEXT: lharx 6, 0, 3
14951495
; PPC64LE-NEXT: cmpw 4, 6
@@ -1511,7 +1511,7 @@ define void @test91(i16* %ptr, i16 %cmp, i16 %val) {
15111511
define void @test92(i16* %ptr, i16 %cmp, i16 %val) {
15121512
; PPC64LE-LABEL: test92:
15131513
; PPC64LE: # %bb.0:
1514-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1514+
; PPC64LE-NEXT: clrlwi 4, 4, 16
15151515
; PPC64LE-NEXT: .LBB92_1:
15161516
; PPC64LE-NEXT: lharx 6, 0, 3
15171517
; PPC64LE-NEXT: cmpw 4, 6
@@ -1533,7 +1533,7 @@ define void @test92(i16* %ptr, i16 %cmp, i16 %val) {
15331533
define void @test93(i16* %ptr, i16 %cmp, i16 %val) {
15341534
; PPC64LE-LABEL: test93:
15351535
; PPC64LE: # %bb.0:
1536-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1536+
; PPC64LE-NEXT: clrlwi 4, 4, 16
15371537
; PPC64LE-NEXT: lwsync
15381538
; PPC64LE-NEXT: .LBB93_1:
15391539
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1553,7 +1553,7 @@ define void @test93(i16* %ptr, i16 %cmp, i16 %val) {
15531553
define void @test94(i16* %ptr, i16 %cmp, i16 %val) {
15541554
; PPC64LE-LABEL: test94:
15551555
; PPC64LE: # %bb.0:
1556-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1556+
; PPC64LE-NEXT: clrlwi 4, 4, 16
15571557
; PPC64LE-NEXT: lwsync
15581558
; PPC64LE-NEXT: .LBB94_1:
15591559
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1573,7 +1573,7 @@ define void @test94(i16* %ptr, i16 %cmp, i16 %val) {
15731573
define void @test95(i16* %ptr, i16 %cmp, i16 %val) {
15741574
; PPC64LE-LABEL: test95:
15751575
; PPC64LE: # %bb.0:
1576-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1576+
; PPC64LE-NEXT: clrlwi 4, 4, 16
15771577
; PPC64LE-NEXT: lwsync
15781578
; PPC64LE-NEXT: .LBB95_1:
15791579
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1596,7 +1596,7 @@ define void @test95(i16* %ptr, i16 %cmp, i16 %val) {
15961596
define void @test96(i16* %ptr, i16 %cmp, i16 %val) {
15971597
; PPC64LE-LABEL: test96:
15981598
; PPC64LE: # %bb.0:
1599-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1599+
; PPC64LE-NEXT: clrlwi 4, 4, 16
16001600
; PPC64LE-NEXT: lwsync
16011601
; PPC64LE-NEXT: .LBB96_1:
16021602
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1619,7 +1619,7 @@ define void @test96(i16* %ptr, i16 %cmp, i16 %val) {
16191619
define void @test97(i16* %ptr, i16 %cmp, i16 %val) {
16201620
; PPC64LE-LABEL: test97:
16211621
; PPC64LE: # %bb.0:
1622-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1622+
; PPC64LE-NEXT: clrlwi 4, 4, 16
16231623
; PPC64LE-NEXT: sync
16241624
; PPC64LE-NEXT: .LBB97_1:
16251625
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1642,7 +1642,7 @@ define void @test97(i16* %ptr, i16 %cmp, i16 %val) {
16421642
define void @test98(i16* %ptr, i16 %cmp, i16 %val) {
16431643
; PPC64LE-LABEL: test98:
16441644
; PPC64LE: # %bb.0:
1645-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1645+
; PPC64LE-NEXT: clrlwi 4, 4, 16
16461646
; PPC64LE-NEXT: sync
16471647
; PPC64LE-NEXT: .LBB98_1:
16481648
; PPC64LE-NEXT: lharx 6, 0, 3
@@ -1665,7 +1665,7 @@ define void @test98(i16* %ptr, i16 %cmp, i16 %val) {
16651665
define void @test99(i16* %ptr, i16 %cmp, i16 %val) {
16661666
; PPC64LE-LABEL: test99:
16671667
; PPC64LE: # %bb.0:
1668-
; PPC64LE-NEXT: rlwinm 4, 4, 0, 16, 31
1668+
; PPC64LE-NEXT: clrlwi 4, 4, 16
16691669
; PPC64LE-NEXT: sync
16701670
; PPC64LE-NEXT: .LBB99_1:
16711671
; PPC64LE-NEXT: lharx 6, 0, 3

0 commit comments

Comments
 (0)