[llvm] r337488 - [Power9] Code Cleanup - Remove needsAggressiveScheduling()
Stefan Pintilie via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 19 12:34:18 PDT 2018
Author: stefanp
Date: Thu Jul 19 12:34:18 2018
New Revision: 337488
URL: http://llvm.org/viewvc/llvm-project?rev=337488&view=rev
Log:
[Power9] Code Cleanup - Remove needsAggressiveScheduling()
As we already return true from needsAggressiveScheduling() for the most recent
hardware it would be cleaner to just return true for all PowerPC hardware.
Differential Revision: https://reviews.llvm.org/D48663
Modified:
llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp
llvm/trunk/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll
llvm/trunk/test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll
llvm/trunk/test/CodeGen/PowerPC/MergeConsecutiveStores.ll
llvm/trunk/test/CodeGen/PowerPC/coalesce-ext.ll
llvm/trunk/test/CodeGen/PowerPC/i1-to-double.ll
llvm/trunk/test/CodeGen/PowerPC/lsa.ll
llvm/trunk/test/CodeGen/PowerPC/ppc32-vacopy.ll
llvm/trunk/test/CodeGen/PowerPC/ppc64-gep-opt.ll
llvm/trunk/test/CodeGen/PowerPC/save-cr-ppc32svr4.ll
llvm/trunk/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll
llvm/trunk/test/CodeGen/PowerPC/tls.ll
llvm/trunk/test/CodeGen/PowerPC/unal-altivec.ll
Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp Thu Jul 19 12:34:18 2018
@@ -175,27 +175,8 @@ bool PPCSubtarget::hasLazyResolverStub(c
return false;
}
-// Embedded cores need aggressive scheduling (and some others also benefit).
-static bool needsAggressiveScheduling(unsigned Directive) {
- switch (Directive) {
- default: return false;
- case PPC::DIR_440:
- case PPC::DIR_A2:
- case PPC::DIR_E500mc:
- case PPC::DIR_E5500:
- case PPC::DIR_PWR7:
- case PPC::DIR_PWR8:
- // FIXME: Same as P8 until POWER9 scheduling info is available
- case PPC::DIR_PWR9:
- return true;
- }
-}
-
bool PPCSubtarget::enableMachineScheduler() const {
- // Enable MI scheduling for the embedded cores.
- // FIXME: Enable this for all cores (some additional modeling
- // may be necessary).
- return needsAggressiveScheduling(DarwinDirective);
+ return true;
}
// This overrides the PostRAScheduler bit in the SchedModel for each CPU.
@@ -213,19 +194,19 @@ void PPCSubtarget::getCriticalPathRCs(Re
void PPCSubtarget::overrideSchedPolicy(MachineSchedPolicy &Policy,
unsigned NumRegionInstrs) const {
- if (needsAggressiveScheduling(DarwinDirective)) {
- Policy.OnlyTopDown = false;
- Policy.OnlyBottomUp = false;
- }
-
+ // The GenericScheduler that we use defaults to scheduling bottom up only.
+ // We want to schedule from both the top and the bottom and so we set
+ // OnlyBottomUp to false.
+ // We want to do bi-directional scheduling since it provides a more balanced
+ // schedule leading to better performance.
+ Policy.OnlyBottomUp = false;
// Spilling is generally expensive on all PPC cores, so always enable
// register-pressure tracking.
Policy.ShouldTrackPressure = true;
}
bool PPCSubtarget::useAA() const {
- // Use AA during code generation for the embedded cores.
- return needsAggressiveScheduling(DarwinDirective);
+ return true;
}
bool PPCSubtarget::enableSubRegLiveness() const {
Modified: llvm/trunk/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll Thu Jul 19 12:34:18 2018
@@ -8,54 +8,54 @@ define i64 @__fixunstfdi(ppc_fp128 %a) n
; CHECK-NEXT: stw 0, 4(1)
; CHECK-NEXT: stwu 1, -464(1)
; CHECK-NEXT: mfcr 12
-; CHECK-NEXT: lis 3, .LCPI0_0 at ha
; CHECK-NEXT: stw 29, 412(1) # 4-byte Folded Spill
; CHECK-NEXT: stw 30, 416(1) # 4-byte Folded Spill
+; CHECK-NEXT: lis 3, .LCPI0_0 at ha
; CHECK-NEXT: stw 12, 408(1)
; CHECK-NEXT: stfd 27, 424(1) # 8-byte Folded Spill
; CHECK-NEXT: stfd 28, 432(1) # 8-byte Folded Spill
; CHECK-NEXT: stfd 29, 440(1) # 8-byte Folded Spill
; CHECK-NEXT: stfd 30, 448(1) # 8-byte Folded Spill
; CHECK-NEXT: stfd 31, 456(1) # 8-byte Folded Spill
-; CHECK-NEXT: lfs 27, .LCPI0_0 at l(3)
; CHECK-NEXT: stfd 2, 376(1)
+; CHECK-NEXT: lfs 27, .LCPI0_0 at l(3)
; CHECK-NEXT: stfd 1, 384(1)
+; CHECK-NEXT: lwz 4, 380(1)
; CHECK-NEXT: fcmpu 0, 2, 27
-; CHECK-NEXT: lwz 3, 380(1)
-; CHECK-NEXT: lwz 4, 376(1)
-; CHECK-NEXT: lwz 5, 388(1)
-; CHECK-NEXT: lwz 6, 384(1)
; CHECK-NEXT: fcmpu 1, 1, 27
; CHECK-NEXT: crand 20, 6, 0
+; CHECK-NEXT: stw 4, 396(1)
; CHECK-NEXT: cror 20, 4, 20
-; CHECK-NEXT: stw 3, 396(1)
+; CHECK-NEXT: lwz 4, 376(1)
; CHECK-NEXT: stw 4, 392(1)
-; CHECK-NEXT: stw 5, 404(1)
-; CHECK-NEXT: stw 6, 400(1)
+; CHECK-NEXT: lwz 4, 388(1)
+; CHECK-NEXT: stw 4, 404(1)
+; CHECK-NEXT: lwz 3, 384(1)
+; CHECK-NEXT: stw 3, 400(1)
; CHECK-NEXT: bc 4, 20, .LBB0_2
; CHECK-NEXT: # %bb.1: # %bb5
; CHECK-NEXT: li 3, 0
; CHECK-NEXT: li 4, 0
; CHECK-NEXT: b .LBB0_16
; CHECK-NEXT: .LBB0_2: # %bb1
-; CHECK-NEXT: lfd 0, 392(1)
-; CHECK-NEXT: lfd 1, 400(1)
+; CHECK-NEXT: lfd 0, 400(1)
+; CHECK-NEXT: lfd 1, 392(1)
; CHECK-NEXT: li 29, 0
; CHECK-NEXT: lis 3, 15856
-; CHECK-NEXT: stfd 1, 304(1)
-; CHECK-NEXT: stfd 0, 296(1)
-; CHECK-NEXT: lwz 4, 308(1)
-; CHECK-NEXT: lwz 5, 304(1)
-; CHECK-NEXT: lwz 6, 300(1)
-; CHECK-NEXT: lwz 7, 296(1)
+; CHECK-NEXT: stfd 0, 304(1)
+; CHECK-NEXT: stfd 1, 296(1)
; CHECK-NEXT: stw 29, 340(1)
; CHECK-NEXT: stw 3, 336(1)
; CHECK-NEXT: stw 29, 332(1)
; CHECK-NEXT: stw 29, 328(1)
-; CHECK-NEXT: stw 4, 324(1)
-; CHECK-NEXT: stw 5, 320(1)
-; CHECK-NEXT: stw 6, 316(1)
-; CHECK-NEXT: stw 7, 312(1)
+; CHECK-NEXT: lwz 3, 308(1)
+; CHECK-NEXT: stw 3, 324(1)
+; CHECK-NEXT: lwz 3, 304(1)
+; CHECK-NEXT: stw 3, 320(1)
+; CHECK-NEXT: lwz 3, 300(1)
+; CHECK-NEXT: stw 3, 316(1)
+; CHECK-NEXT: lwz 3, 296(1)
+; CHECK-NEXT: stw 3, 312(1)
; CHECK-NEXT: lfd 31, 320(1)
; CHECK-NEXT: lfd 30, 312(1)
; CHECK-NEXT: lfd 3, 336(1)
@@ -63,52 +63,52 @@ define i64 @__fixunstfdi(ppc_fp128 %a) n
; CHECK-NEXT: fmr 1, 31
; CHECK-NEXT: fmr 2, 30
; CHECK-NEXT: bl __gcc_qmul at PLT
-; CHECK-NEXT: stfd 1, 280(1)
-; CHECK-NEXT: lis 3, .LCPI0_1 at ha
-; CHECK-NEXT: stfd 2, 288(1)
-; CHECK-NEXT: lfs 0, .LCPI0_1 at l(3)
; CHECK-NEXT: lis 3, 16864
-; CHECK-NEXT: lwz 4, 284(1)
-; CHECK-NEXT: lwz 5, 280(1)
-; CHECK-NEXT: lwz 6, 292(1)
-; CHECK-NEXT: lwz 7, 288(1)
+; CHECK-NEXT: stfd 1, 280(1)
; CHECK-NEXT: fmr 29, 1
+; CHECK-NEXT: stfd 2, 288(1)
+; CHECK-NEXT: fmr 28, 2
; CHECK-NEXT: stw 29, 372(1)
; CHECK-NEXT: stw 3, 368(1)
-; CHECK-NEXT: fmr 28, 2
; CHECK-NEXT: stw 29, 364(1)
; CHECK-NEXT: stw 29, 360(1)
-; CHECK-NEXT: fcmpu 0, 2, 27
-; CHECK-NEXT: stw 4, 356(1)
-; CHECK-NEXT: stw 5, 352(1)
-; CHECK-NEXT: fcmpu 1, 1, 0
-; CHECK-NEXT: stw 6, 348(1)
-; CHECK-NEXT: stw 7, 344(1)
-; CHECK-NEXT: crandc 20, 6, 0
+; CHECK-NEXT: lwz 3, 284(1)
+; CHECK-NEXT: stw 3, 356(1)
+; CHECK-NEXT: lwz 3, 280(1)
+; CHECK-NEXT: stw 3, 352(1)
+; CHECK-NEXT: lwz 3, 292(1)
+; CHECK-NEXT: stw 3, 348(1)
+; CHECK-NEXT: lwz 3, 288(1)
+; CHECK-NEXT: stw 3, 344(1)
; CHECK-NEXT: lfd 3, 368(1)
; CHECK-NEXT: lfd 4, 360(1)
; CHECK-NEXT: lfd 1, 352(1)
; CHECK-NEXT: lfd 2, 344(1)
-; CHECK-NEXT: cror 8, 5, 20
; CHECK-NEXT: bl __gcc_qsub at PLT
; CHECK-NEXT: mffs 0
; CHECK-NEXT: mtfsb1 31
+; CHECK-NEXT: lis 3, .LCPI0_1 at ha
+; CHECK-NEXT: fcmpu 0, 28, 27
; CHECK-NEXT: mtfsb0 30
; CHECK-NEXT: fadd 1, 2, 1
; CHECK-NEXT: mtfsf 1, 0
-; CHECK-NEXT: mffs 0
-; CHECK-NEXT: mtfsb1 31
-; CHECK-NEXT: mtfsb0 30
-; CHECK-NEXT: fadd 2, 28, 29
-; CHECK-NEXT: mtfsf 1, 0
; CHECK-NEXT: fctiwz 0, 1
-; CHECK-NEXT: fctiwz 1, 2
+; CHECK-NEXT: mffs 1
; CHECK-NEXT: stfd 0, 160(1)
-; CHECK-NEXT: stfd 1, 152(1)
+; CHECK-NEXT: mtfsb1 31
+; CHECK-NEXT: mtfsb0 30
+; CHECK-NEXT: fadd 0, 28, 29
+; CHECK-NEXT: mtfsf 1, 1
+; CHECK-NEXT: lfs 1, .LCPI0_1 at l(3)
+; CHECK-NEXT: fctiwz 0, 0
+; CHECK-NEXT: stfd 0, 152(1)
+; CHECK-NEXT: fcmpu 1, 29, 1
; CHECK-NEXT: lwz 3, 164(1)
; CHECK-NEXT: lwz 4, 156(1)
+; CHECK-NEXT: crandc 20, 6, 0
+; CHECK-NEXT: cror 20, 5, 20
; CHECK-NEXT: addis 3, 3, -32768
-; CHECK-NEXT: bc 12, 8, .LBB0_4
+; CHECK-NEXT: bc 12, 20, .LBB0_4
; CHECK-NEXT: # %bb.3: # %bb1
; CHECK-NEXT: ori 30, 4, 0
; CHECK-NEXT: b .LBB0_5
@@ -118,24 +118,24 @@ define i64 @__fixunstfdi(ppc_fp128 %a) n
; CHECK-NEXT: li 4, 0
; CHECK-NEXT: mr 3, 30
; CHECK-NEXT: bl __floatditf at PLT
-; CHECK-NEXT: stfd 1, 208(1)
; CHECK-NEXT: lis 3, 17392
+; CHECK-NEXT: stfd 1, 208(1)
+; CHECK-NEXT: fmr 29, 1
; CHECK-NEXT: stfd 2, 200(1)
-; CHECK-NEXT: fmr 28, 1
-; CHECK-NEXT: lwz 4, 212(1)
-; CHECK-NEXT: lwz 5, 208(1)
-; CHECK-NEXT: lwz 6, 204(1)
-; CHECK-NEXT: lwz 7, 200(1)
-; CHECK-NEXT: fmr 29, 2
+; CHECK-NEXT: fmr 28, 2
; CHECK-NEXT: stw 29, 244(1)
; CHECK-NEXT: stw 3, 240(1)
; CHECK-NEXT: cmpwi 2, 30, 0
; CHECK-NEXT: stw 29, 236(1)
; CHECK-NEXT: stw 29, 232(1)
-; CHECK-NEXT: stw 4, 228(1)
-; CHECK-NEXT: stw 5, 224(1)
-; CHECK-NEXT: stw 6, 220(1)
-; CHECK-NEXT: stw 7, 216(1)
+; CHECK-NEXT: lwz 3, 212(1)
+; CHECK-NEXT: stw 3, 228(1)
+; CHECK-NEXT: lwz 3, 208(1)
+; CHECK-NEXT: stw 3, 224(1)
+; CHECK-NEXT: lwz 3, 204(1)
+; CHECK-NEXT: stw 3, 220(1)
+; CHECK-NEXT: lwz 3, 200(1)
+; CHECK-NEXT: stw 3, 216(1)
; CHECK-NEXT: lfd 3, 240(1)
; CHECK-NEXT: lfd 4, 232(1)
; CHECK-NEXT: lfd 1, 224(1)
@@ -143,24 +143,24 @@ define i64 @__fixunstfdi(ppc_fp128 %a) n
; CHECK-NEXT: bl __gcc_qadd at PLT
; CHECK-NEXT: blt 2, .LBB0_7
; CHECK-NEXT: # %bb.6: # %bb1
-; CHECK-NEXT: fmr 1, 28
+; CHECK-NEXT: fmr 2, 28
; CHECK-NEXT: .LBB0_7: # %bb1
-; CHECK-NEXT: stfd 1, 184(1)
; CHECK-NEXT: blt 2, .LBB0_9
; CHECK-NEXT: # %bb.8: # %bb1
-; CHECK-NEXT: fmr 2, 29
+; CHECK-NEXT: fmr 1, 29
; CHECK-NEXT: .LBB0_9: # %bb1
-; CHECK-NEXT: stfd 2, 192(1)
+; CHECK-NEXT: stfd 1, 184(1)
; CHECK-NEXT: fmr 1, 31
-; CHECK-NEXT: lwz 3, 188(1)
-; CHECK-NEXT: lwz 4, 184(1)
-; CHECK-NEXT: lwz 5, 196(1)
-; CHECK-NEXT: lwz 6, 192(1)
+; CHECK-NEXT: stfd 2, 192(1)
; CHECK-NEXT: fmr 2, 30
+; CHECK-NEXT: lwz 3, 188(1)
; CHECK-NEXT: stw 3, 260(1)
-; CHECK-NEXT: stw 4, 256(1)
-; CHECK-NEXT: stw 5, 252(1)
-; CHECK-NEXT: stw 6, 248(1)
+; CHECK-NEXT: lwz 3, 184(1)
+; CHECK-NEXT: stw 3, 256(1)
+; CHECK-NEXT: lwz 3, 196(1)
+; CHECK-NEXT: stw 3, 252(1)
+; CHECK-NEXT: lwz 3, 192(1)
+; CHECK-NEXT: stw 3, 248(1)
; CHECK-NEXT: lfd 3, 256(1)
; CHECK-NEXT: lfd 4, 248(1)
; CHECK-NEXT: bl __gcc_qsub at PLT
@@ -169,67 +169,67 @@ define i64 @__fixunstfdi(ppc_fp128 %a) n
; CHECK-NEXT: stfd 1, 168(1)
; CHECK-NEXT: fcmpu 1, 1, 27
; CHECK-NEXT: lwz 3, 180(1)
-; CHECK-NEXT: lwz 4, 176(1)
-; CHECK-NEXT: lwz 5, 172(1)
-; CHECK-NEXT: lwz 6, 168(1)
; CHECK-NEXT: crandc 20, 6, 0
-; CHECK-NEXT: stw 3, 268(1)
-; CHECK-NEXT: stw 4, 264(1)
; CHECK-NEXT: cror 21, 5, 7
-; CHECK-NEXT: stw 5, 276(1)
-; CHECK-NEXT: stw 6, 272(1)
; CHECK-NEXT: cror 20, 21, 20
+; CHECK-NEXT: stw 3, 268(1)
+; CHECK-NEXT: lwz 3, 176(1)
+; CHECK-NEXT: stw 3, 264(1)
+; CHECK-NEXT: lwz 3, 172(1)
+; CHECK-NEXT: stw 3, 276(1)
+; CHECK-NEXT: lwz 3, 168(1)
+; CHECK-NEXT: stw 3, 272(1)
; CHECK-NEXT: lfd 30, 264(1)
; CHECK-NEXT: lfd 31, 272(1)
; CHECK-NEXT: bc 12, 20, .LBB0_13
; CHECK-NEXT: # %bb.10: # %bb2
-; CHECK-NEXT: fneg 29, 31
-; CHECK-NEXT: fneg 28, 30
-; CHECK-NEXT: stfd 29, 48(1)
+; CHECK-NEXT: fneg 29, 30
+; CHECK-NEXT: fneg 28, 31
; CHECK-NEXT: li 29, 0
-; CHECK-NEXT: stfd 28, 40(1)
; CHECK-NEXT: lis 3, 16864
-; CHECK-NEXT: lwz 4, 52(1)
-; CHECK-NEXT: lwz 5, 48(1)
-; CHECK-NEXT: lwz 6, 44(1)
-; CHECK-NEXT: lwz 7, 40(1)
+; CHECK-NEXT: stfd 28, 48(1)
+; CHECK-NEXT: stfd 29, 40(1)
; CHECK-NEXT: stw 29, 84(1)
; CHECK-NEXT: stw 3, 80(1)
; CHECK-NEXT: stw 29, 76(1)
; CHECK-NEXT: stw 29, 72(1)
-; CHECK-NEXT: stw 4, 68(1)
-; CHECK-NEXT: stw 5, 64(1)
-; CHECK-NEXT: stw 6, 60(1)
-; CHECK-NEXT: stw 7, 56(1)
+; CHECK-NEXT: lwz 3, 52(1)
+; CHECK-NEXT: stw 3, 68(1)
+; CHECK-NEXT: lwz 3, 48(1)
+; CHECK-NEXT: stw 3, 64(1)
+; CHECK-NEXT: lwz 3, 44(1)
+; CHECK-NEXT: stw 3, 60(1)
+; CHECK-NEXT: lwz 3, 40(1)
+; CHECK-NEXT: stw 3, 56(1)
; CHECK-NEXT: lfd 3, 80(1)
; CHECK-NEXT: lfd 4, 72(1)
; CHECK-NEXT: lfd 1, 64(1)
; CHECK-NEXT: lfd 2, 56(1)
; CHECK-NEXT: bl __gcc_qsub at PLT
-; CHECK-NEXT: lis 3, .LCPI0_2 at ha
-; CHECK-NEXT: lfs 0, .LCPI0_2 at l(3)
-; CHECK-NEXT: lis 4, .LCPI0_3 at ha
-; CHECK-NEXT: lfs 3, .LCPI0_3 at l(4)
-; CHECK-NEXT: fcmpu 0, 30, 0
; CHECK-NEXT: mffs 0
; CHECK-NEXT: mtfsb1 31
-; CHECK-NEXT: fcmpu 1, 31, 3
-; CHECK-NEXT: crandc 20, 6, 1
+; CHECK-NEXT: lis 3, .LCPI0_2 at ha
; CHECK-NEXT: mtfsb0 30
-; CHECK-NEXT: cror 20, 4, 20
; CHECK-NEXT: fadd 1, 2, 1
; CHECK-NEXT: mtfsf 1, 0
-; CHECK-NEXT: mffs 0
-; CHECK-NEXT: mtfsb1 31
-; CHECK-NEXT: mtfsb0 30
-; CHECK-NEXT: fadd 2, 28, 29
-; CHECK-NEXT: mtfsf 1, 0
; CHECK-NEXT: fctiwz 0, 1
-; CHECK-NEXT: fctiwz 1, 2
+; CHECK-NEXT: mffs 1
; CHECK-NEXT: stfd 0, 32(1)
-; CHECK-NEXT: stfd 1, 24(1)
+; CHECK-NEXT: mtfsb1 31
+; CHECK-NEXT: lfs 0, .LCPI0_2 at l(3)
+; CHECK-NEXT: lis 3, .LCPI0_3 at ha
+; CHECK-NEXT: mtfsb0 30
+; CHECK-NEXT: fadd 2, 29, 28
+; CHECK-NEXT: mtfsf 1, 1
+; CHECK-NEXT: lfs 1, .LCPI0_3 at l(3)
+; CHECK-NEXT: fcmpu 0, 30, 0
+; CHECK-NEXT: fctiwz 2, 2
+; CHECK-NEXT: stfd 2, 24(1)
+; CHECK-NEXT: fcmpu 1, 31, 1
; CHECK-NEXT: lwz 3, 36(1)
; CHECK-NEXT: lwz 4, 28(1)
+; CHECK-NEXT: crandc 20, 6, 1
+; CHECK-NEXT: cror 20, 4, 20
; CHECK-NEXT: addis 3, 3, -32768
; CHECK-NEXT: bc 12, 20, .LBB0_12
; CHECK-NEXT: # %bb.11: # %bb2
@@ -240,51 +240,51 @@ define i64 @__fixunstfdi(ppc_fp128 %a) n
; CHECK-NEXT: subfe 3, 29, 30
; CHECK-NEXT: b .LBB0_16
; CHECK-NEXT: .LBB0_13: # %bb3
-; CHECK-NEXT: stfd 31, 112(1)
; CHECK-NEXT: li 3, 0
-; CHECK-NEXT: stfd 30, 104(1)
; CHECK-NEXT: lis 4, 16864
-; CHECK-NEXT: lwz 5, 116(1)
-; CHECK-NEXT: lwz 6, 112(1)
-; CHECK-NEXT: lwz 7, 108(1)
-; CHECK-NEXT: lwz 8, 104(1)
+; CHECK-NEXT: stfd 31, 112(1)
+; CHECK-NEXT: stfd 30, 104(1)
; CHECK-NEXT: stw 3, 148(1)
; CHECK-NEXT: stw 4, 144(1)
; CHECK-NEXT: stw 3, 140(1)
; CHECK-NEXT: stw 3, 136(1)
-; CHECK-NEXT: stw 5, 132(1)
-; CHECK-NEXT: stw 6, 128(1)
-; CHECK-NEXT: stw 7, 124(1)
-; CHECK-NEXT: stw 8, 120(1)
+; CHECK-NEXT: lwz 3, 116(1)
+; CHECK-NEXT: stw 3, 132(1)
+; CHECK-NEXT: lwz 3, 112(1)
+; CHECK-NEXT: stw 3, 128(1)
+; CHECK-NEXT: lwz 3, 108(1)
+; CHECK-NEXT: stw 3, 124(1)
+; CHECK-NEXT: lwz 3, 104(1)
+; CHECK-NEXT: stw 3, 120(1)
; CHECK-NEXT: lfd 3, 144(1)
; CHECK-NEXT: lfd 4, 136(1)
; CHECK-NEXT: lfd 1, 128(1)
; CHECK-NEXT: lfd 2, 120(1)
; CHECK-NEXT: bl __gcc_qsub at PLT
-; CHECK-NEXT: lis 3, .LCPI0_0 at ha
-; CHECK-NEXT: lfs 0, .LCPI0_0 at l(3)
-; CHECK-NEXT: lis 4, .LCPI0_1 at ha
-; CHECK-NEXT: lfs 3, .LCPI0_1 at l(4)
-; CHECK-NEXT: fcmpu 0, 30, 0
; CHECK-NEXT: mffs 0
; CHECK-NEXT: mtfsb1 31
-; CHECK-NEXT: fcmpu 1, 31, 3
-; CHECK-NEXT: crandc 20, 6, 0
+; CHECK-NEXT: lis 3, .LCPI0_0 at ha
; CHECK-NEXT: mtfsb0 30
-; CHECK-NEXT: cror 20, 5, 20
; CHECK-NEXT: fadd 1, 2, 1
; CHECK-NEXT: mtfsf 1, 0
-; CHECK-NEXT: mffs 0
+; CHECK-NEXT: fctiwz 0, 1
+; CHECK-NEXT: mffs 1
+; CHECK-NEXT: stfd 0, 96(1)
; CHECK-NEXT: mtfsb1 31
+; CHECK-NEXT: lfs 0, .LCPI0_0 at l(3)
+; CHECK-NEXT: lis 3, .LCPI0_1 at ha
; CHECK-NEXT: mtfsb0 30
; CHECK-NEXT: fadd 2, 30, 31
-; CHECK-NEXT: mtfsf 1, 0
-; CHECK-NEXT: fctiwz 0, 1
-; CHECK-NEXT: fctiwz 1, 2
-; CHECK-NEXT: stfd 0, 96(1)
-; CHECK-NEXT: stfd 1, 88(1)
+; CHECK-NEXT: mtfsf 1, 1
+; CHECK-NEXT: lfs 1, .LCPI0_1 at l(3)
+; CHECK-NEXT: fcmpu 0, 30, 0
+; CHECK-NEXT: fctiwz 2, 2
+; CHECK-NEXT: stfd 2, 88(1)
+; CHECK-NEXT: fcmpu 1, 31, 1
; CHECK-NEXT: lwz 3, 100(1)
; CHECK-NEXT: lwz 4, 92(1)
+; CHECK-NEXT: crandc 20, 6, 0
+; CHECK-NEXT: cror 20, 5, 20
; CHECK-NEXT: addis 3, 3, -32768
; CHECK-NEXT: bc 12, 20, .LBB0_14
; CHECK-NEXT: b .LBB0_15
Modified: llvm/trunk/test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll Thu Jul 19 12:34:18 2018
@@ -50,7 +50,7 @@ for.body4.us:
%2 = load float, float* %arrayidx.us, align 4
%arrayidx7.us = getelementptr inbounds [32000 x float], [32000 x float]* @a, i64 0, i64 %indvars.iv
%3 = load float, float* %arrayidx7.us, align 4
- %add8.us = fadd float %3, %2
+ %add8.us = tail call float asm "fadd $0, $1, $2", "=f,f,f,~{cr2}"(float %3, float %2)
store float %add8.us, float* %arrayidx7.us, align 4
%indvars.iv.next = add i64 %indvars.iv, %1
%4 = trunc i64 %indvars.iv.next to i32
Modified: llvm/trunk/test/CodeGen/PowerPC/MergeConsecutiveStores.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/MergeConsecutiveStores.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/MergeConsecutiveStores.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/MergeConsecutiveStores.ll Thu Jul 19 12:34:18 2018
@@ -23,14 +23,14 @@
;; worthwhile.
;; CHECK-LABEL: f:
-;; CHECK: lwzu
-;; CHECK: stwu
-;; CHECK-NEXT: lwz
-;; CHECK-NEXT: lwz
-;; CHECK-NEXT: lwz
-;; CHECK-NEXT: stw
-;; CHECK-NEXT: stw
-;; CHECK-NEXT: stw
+;; CHECK-DAG: lwzu
+;; CHECK-DAG: stwu
+;; CHECK-DAG: lwz
+;; CHECK-DAG: lwz
+;; CHECK-DAG: lwz
+;; CHECK-DAG: stw
+;; CHECK-DAG: stw
+;; CHECK-DAG: stw
;; CHECK-NEXT: blr
define void @f() {
entry:
Modified: llvm/trunk/test/CodeGen/PowerPC/coalesce-ext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/coalesce-ext.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/coalesce-ext.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/coalesce-ext.ll Thu Jul 19 12:34:18 2018
@@ -9,10 +9,10 @@ define i32 @test1sext(i64 %A, i64 %B, i3
%F = ashr i64 %E, 32
; CHECK: extsw [[EXT:r[0-9]+]], [[SUM]]
store volatile i64 %F, i64 *%P2
- ; CHECK: std [[EXT]]
+ ; CHECK-DAG: std [[EXT]]
store volatile i32 %D, i32* %P
; Reuse low bits of extended register, don't extend live range of SUM.
- ; CHECK: stw [[EXT]]
+ ; CHECK-DAG: stw [[SUM]]
%R = add i32 %D, %D
ret i32 %R
}
Modified: llvm/trunk/test/CodeGen/PowerPC/i1-to-double.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/i1-to-double.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/i1-to-double.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/i1-to-double.ll Thu Jul 19 12:34:18 2018
@@ -5,15 +5,13 @@ define double @test(i1 %X) {
}
; CHECK-LABEL: @test
-
-; CHECK: addis 4, 4, .LCPI
-; CHECK-NEXT: addis 5, 5, .LCPI
-; CHECK: andi. {{[0-9]+}}, 3, 1
+; CHECK-DAG: addis 3, 4, .LCPI
+; CHECK-DAG: addis 4, 4, .LCPI
+; CHECK-DAG: andi. {{[0-9]+}}, 3, 1
; CHECK-NEXT: bc 12, 1, [[TRUE:.LBB[0-9]+]]
-; CHECK: ori 3, 4, 0
; CHECK-NEXT: b [[SUCCESSOR:.LBB[0-9]+]]
; CHECK-NEXT: [[TRUE]]
-; CHECK-NEXT: addi 3, 5, 0
+; CHECK-NEXT: addi 3, 4, 0
; CHECK-NEXT: [[SUCCESSOR]]
; CHECK-NEXT: lfs 1, 0(3)
; CHECK-NEXT: blr
Modified: llvm/trunk/test/CodeGen/PowerPC/lsa.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/lsa.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/lsa.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/lsa.ll Thu Jul 19 12:34:18 2018
@@ -23,8 +23,8 @@ entry:
; CHECK: @foo
; CHECK-NOT: lwzx
-; CHECK: lwz {{[0-9]+}}, 4([[REG:[0-9]+]])
-; CHECK: lwz {{[0-9]+}}, 0([[REG]])
+; CHECK: lwz {{[0-9]+}}, 0([[REG:[0-9]+]])
+; CHECK: lwz {{[0-9]+}}, 4([[REG]])
; CHECK: blr
%add = add nsw i32 %4, %3
Modified: llvm/trunk/test/CodeGen/PowerPC/ppc32-vacopy.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/ppc32-vacopy.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/ppc32-vacopy.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/ppc32-vacopy.ll Thu Jul 19 12:34:18 2018
@@ -16,9 +16,10 @@ entry:
ret void
}
; CHECK: test_vacopy:
-; CHECK: lwz [[REG1:[0-9]+]], {{.*}}
-; CHECK: lwz [[REG2:[0-9]+]], {{.*}}
-; CHECK: lwz [[REG3:[0-9]+]], {{.*}}
-; CHECK: stw [[REG1]], {{.*}}
-; CHECK: stw [[REG2]], {{.*}}
-; CHECK: stw [[REG3]], {{.*}}
+; CHECK-DAG: lwz [[REG1:[0-9]+]], {{.*}}
+; CHECK-DAG: lwz [[REG2:[0-9]+]], {{.*}}
+; CHECK-DAG: lwz [[REG3:[0-9]+]], {{.*}}
+; CHECK-DAG: stw [[REG1]], {{.*}}
+; CHECK-DAG: stw [[REG2]], {{.*}}
+; CHECK-DAG: stw [[REG3]], {{.*}}
+; CHECK: blr
Modified: llvm/trunk/test/CodeGen/PowerPC/ppc64-gep-opt.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/ppc64-gep-opt.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/ppc64-gep-opt.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/ppc64-gep-opt.ll Thu Jul 19 12:34:18 2018
@@ -1,5 +1,4 @@
; RUN: llc -verify-machineinstrs -O3 -mcpu=pwr7 < %s | FileCheck %s
-; RUN: llc -verify-machineinstrs -O3 -print-after=codegenprepare -mcpu=ppc64 < %s >%t 2>&1 && FileCheck --check-prefix=CHECK-NoAA <%t %s
; RUN: llc -verify-machineinstrs -O3 -print-after=codegenprepare -mcpu=pwr7 < %s >%t 2>&1 && FileCheck --check-prefix=CHECK-UseAA <%t %s
target datalayout = "E-m:e-i64:64-n32:64"
target triple = "powerpc64-unknown-linux-gnu"
@@ -29,18 +28,6 @@ if.end:
ret void
}
-; CHECK-NoAA-LABEL: @test_GEP_CSE(
-; CHECK-NoAA: [[PTR0:%[a-zA-Z0-9]+]] = ptrtoint [240 x %struct]* %string to i64
-; CHECK-NoAA: [[PTR1:%[a-zA-Z0-9]+]] = mul i64 %idxprom, 96
-; CHECK-NoAA: [[PTR2:%[a-zA-Z0-9]+]] = add i64 [[PTR0]], [[PTR1]]
-; CHECK-NoAA: add i64 [[PTR2]], 23052
-; CHECK-NoAA: inttoptr
-; CHECK-NoAA: if.then:
-; CHECK-NoAA-NOT: ptrtoint
-; CHECK-NoAA-NOT: mul
-; CHECK-NoAA: add i64 [[PTR2]], 23048
-; CHECK-NoAA: inttoptr
-
; CHECK-UseAA-LABEL: @test_GEP_CSE(
; CHECK-UseAA: [[PTR0:%[a-zA-Z0-9]+]] = bitcast [240 x %struct]* %string to i8*
; CHECK-UseAA: [[IDX:%[a-zA-Z0-9]+]] = mul i64 %idxprom, 96
@@ -80,14 +67,6 @@ exit:
; CHECK-NOT: lwzu
; CHECK: blr
-; CHECK-NoAA-LABEL: test_GEP_across_BB(
-; CHECK-NoAA: add i64 [[TMP:%[a-zA-Z0-9]+]], 528
-; CHECK-NoAA: add i64 [[TMP]], 532
-; CHECK-NoAA: if.true:
-; CHECK-NoAA: {{%sunk[a-zA-Z0-9]+}} = getelementptr i8, i8* {{.*}}, i64 532
-; CHECK-NoAA: exit:
-; CHECK-NoAA: {{%sunk[a-zA-Z0-9]+}} = getelementptr i8, i8* {{.*}}, i64 528
-
; CHECK-UseAA-LABEL: test_GEP_across_BB(
; CHECK-UseAA: [[PTR0:%[a-zA-Z0-9]+]] = getelementptr
; CHECK-UseAA: getelementptr i8, i8* [[PTR0]], i64 528
@@ -112,10 +91,6 @@ entry:
%p = getelementptr [1024 x %struct.S], [1024 x %struct.S]* @struct_array, i64 0, i64 %idxprom, i32 1
ret double* %p
}
-; CHECK-NoAA-LABEL: @test-struct_1(
-; CHECK-NoAA-NOT: getelementptr
-; CHECK-NoAA: add i64 %{{[a-zA-Z0-9]+}}, 88
-
; CHECK-UseAA-LABEL: @test-struct_1(
; CHECK-UseAA: getelementptr i8, i8* %{{[a-zA-Z0-9]+}}, i64 88
@@ -134,10 +109,6 @@ entry:
%ptr2 = getelementptr %struct0, %struct0* %ptr, i64 0, i32 3, i64 %arrayidx, i32 1
ret %struct2* %ptr2
}
-; CHECK-NoAA-LABEL: @test-struct_2(
-; CHECK-NoAA-NOT: = getelementptr
-; CHECK-NoAA: add i64 %{{[a-zA-Z0-9]+}}, -40
-
; CHECK-UseAA-LABEL: @test-struct_2(
; CHECK-UseAA: getelementptr i8, i8* %{{[a-zA-Z0-9]+}}, i64 -40
Modified: llvm/trunk/test/CodeGen/PowerPC/save-cr-ppc32svr4.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/save-cr-ppc32svr4.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/save-cr-ppc32svr4.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/save-cr-ppc32svr4.ll Thu Jul 19 12:34:18 2018
@@ -3,12 +3,12 @@
; Make sure that the CR register is saved correctly on PPC32/SVR4.
; CHECK-LABEL: fred:
-; CHECK: stwu 1, -32(1)
-; CHECK: stw 31, 28(1)
+; CHECK: stwu 1, -48(1)
+; CHECK: stw 31, 36(1)
; CHECK: mr 31, 1
-; CHECK-DAG: stw 30, 24(1)
+; CHECK-DAG: stw 30, 32(1)
; CHECK-DAG: mfcr [[CR:[0-9]+]]
-; CHECK: stw [[CR]], 20(31)
+; CHECK: stw [[CR]], 28(31)
target datalayout = "E-m:e-p:32:32-i64:64-n32"
target triple = "powerpc-unknown-freebsd"
@@ -16,7 +16,8 @@ target triple = "powerpc-unknown-freebsd
; Function Attrs: norecurse nounwind readnone sspstrong
define i64 @fred(double %a0) local_unnamed_addr #0 {
b1:
- %v2 = fcmp olt double %a0, 0x43E0000000000000
+ %a1 = tail call double asm "fadd $0, $1, $2", "=f,f,f,~{cr2}"(double %a0, double %a0)
+ %v2 = fcmp olt double %a1, 0x43E0000000000000
br i1 %v2, label %b3, label %b7
b3: ; preds = %b1
Modified: llvm/trunk/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll Thu Jul 19 12:34:18 2018
@@ -3,18 +3,18 @@
; CHECK-LABEL: fred
; CHECK: stwux 1, 1, 0
; Save R31..R29 via R0:
-; CHECK: addic 0, 0, -4
+; CHECK: addic 0, 0, -12
; CHECK: stwx 31, 0, 0
; CHECK: addic 0, 0, -4
; CHECK: stwx 30, 0, 0
; CHECK: addic 0, 0, -4
; CHECK: stwx 29, 0, 0
; Set R29 back to the value of R0 from before the updates:
-; CHECK: addic 29, 0, 12
+; CHECK: addic 29, 0, 20
; Save CR through R12 using R29 as the stack pointer (aligned base pointer).
; CHECK: mfcr 12
-; CHECK: stw 28, -16(29)
-; CHECK: stw 12, -20(29)
+; CHECK: stw 28, -24(29)
+; CHECK: stw 12, -28(29)
target datalayout = "E-m:e-p:32:32-i64:64-n32"
target triple = "powerpc-unknown-freebsd"
@@ -24,7 +24,8 @@ define i64 @fred(double %a0) local_unnam
b1:
%v2 = alloca i64, align 128
store i64 0, i64* %v2
- %v3 = fcmp olt double %a0, 0x43E0000000000000
+ %a1 = tail call double asm "fadd $0, $1, $2", "=f,f,f,~{cr2}"(double %a0, double %a0)
+ %v3 = fcmp olt double %a1, 0x43E0000000000000
br i1 %v3, label %b4, label %b8
b4: ; preds = %b1
Modified: llvm/trunk/test/CodeGen/PowerPC/tls.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/tls.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/tls.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/tls.ll Thu Jul 19 12:34:18 2018
@@ -16,7 +16,7 @@ entry:
;OPT0: stw [[REG2]], 0([[REG1]])
;OPT1: addis [[REG1:[0-9]+]], 13, a at tprel@ha
;OPT1-NEXT: li [[REG2:[0-9]+]], 42
-;OPT1-NEXT: stw [[REG2]], a at tprel@l([[REG1]])
+;OPT1: stw [[REG2]], a at tprel@l([[REG1]])
store i32 42, i32* @a, align 4
ret i32 0
}
Modified: llvm/trunk/test/CodeGen/PowerPC/unal-altivec.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/unal-altivec.ll?rev=337488&r1=337487&r2=337488&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/unal-altivec.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/unal-altivec.ll Thu Jul 19 12:34:18 2018
@@ -30,21 +30,14 @@ vector.body:
; CHECK: @foo
; CHECK-DAG: li [[C0:[0-9]+]], 0
-; CHECK-DAG: li [[C15:[0-9]+]], 15
; CHECK-DAG: lvx [[CNST:[0-9]+]],
; CHECK: .LBB0_1:
; CHECK-DAG: lvsl [[MASK1:[0-9]+]], [[B1:[0-9]+]], [[C0]]
-; CHECK-DAG: lvsl [[MASK2:[0-9]+]], [[B2:[0-9]+]], [[C0]]
; CHECK-DAG: add [[B3:[0-9]+]], [[B1]], [[C0]]
-; CHECK-DAG: add [[B4:[0-9]+]], [[B2]], [[C0]]
; CHECK-DAG: lvx [[LD1:[0-9]+]], [[B1]], [[C0]]
-; CHECK-DAG: lvx [[LD2:[0-9]+]], [[B3]], [[C15]]
-; CHECK-DAG: lvx [[LD3:[0-9]+]], [[B2]], [[C0]]
-; CHECK-DAG: lvx [[LD4:[0-9]+]], [[B4]], [[C15]]
+; CHECK-DAG: lvx [[LD2:[0-9]+]], [[B3]],
; CHECK-DAG: vperm [[R1:[0-9]+]], [[LD1]], [[LD2]], [[MASK1]]
-; CHECK-DAG: vperm [[R2:[0-9]+]], [[LD3]], [[LD4]], [[MASK2]]
; CHECK-DAG: vaddfp {{[0-9]+}}, [[R1]], [[CNST]]
-; CHECK-DAG: vaddfp {{[0-9]+}}, [[R2]], [[CNST]]
; CHECK: blr
for.end: ; preds = %vector.body
More information about the llvm-commits
mailing list