summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-04-01 23:14:52 +0000
committerTim Northover <tnorthover@apple.com>2016-04-01 23:14:52 +0000
commit5dad9df9f7bd38a076e3c7cdf22270faa17b877f (patch)
treedb30e605c436f12bac85516206a279d81e4e6a14 /llvm/test
parent8af7bb28aa225fe30e0a682325b5b9f4df74d6fe (diff)
downloadbcm5719-llvm-5dad9df9f7bd38a076e3c7cdf22270faa17b877f.tar.gz
bcm5719-llvm-5dad9df9f7bd38a076e3c7cdf22270faa17b877f.zip
AArch64: avoid clobbering SP for dead MOVimm pseudos.
We were producing ORR, which actually defines a GPR32sp rather than a GPR32. Should fix PR23209. llvm-svn: 265198
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/AArch64/movimm-wzr.mir46
1 files changed, 46 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/movimm-wzr.mir b/llvm/test/CodeGen/AArch64/movimm-wzr.mir
new file mode 100644
index 00000000000..32d467628ed
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/movimm-wzr.mir
@@ -0,0 +1,46 @@
+# RUN: llc -run-pass=aarch64-expand-pseudo %s | FileCheck %s
+
+--- |
+ ; ModuleID = 'simple.ll'
+ source_filename = "simple.ll"
+ target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
+ target triple = "aarch64--linux-gnu"
+
+ define i32 @test_mov_0() {
+ ret i32 42
+ }
+
+...
+---
+name: test_mov_0
+alignment: 2
+exposesReturnsTwice: false
+hasInlineAsm: false
+allVRegsAllocated: true
+isSSA: false
+tracksRegLiveness: false
+tracksSubRegLiveness: false
+frameInfo:
+ isFrameAddressTaken: false
+ isReturnAddressTaken: false
+ hasStackMap: false
+ hasPatchPoint: false
+ stackSize: 0
+ offsetAdjustment: 0
+ maxAlignment: 0
+ adjustsStack: false
+ hasCalls: false
+ maxCallFrameSize: 0
+ hasOpaqueSPAdjustment: false
+ hasVAStart: false
+ hasMustTailInVarArgFunc: false
+body: |
+ bb.0 (%ir-block.0):
+ %wzr = MOVi32imm 42
+ %xzr = MOVi64imm 42
+ RET_ReallyLR implicit killed %w0
+
+...
+
+# CHECK: bb.0
+# CHECK-NEXT: RET %lr
OpenPOWER on IntegriCloud