summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-11-13 20:36:40 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-11-13 20:36:40 +0000
commitd190b8216f5a12eaa3ba0f34238fe08e26de1765 (patch)
tree1f5648b76819f8a60431a47cc5ddc1d402db04b4 /llvm/test/CodeGen/ARM
parentbdd124036d7c14391d5c0d8eb08ac89f079af638 (diff)
downloadbcm5719-llvm-d190b8216f5a12eaa3ba0f34238fe08e26de1765.tar.gz
bcm5719-llvm-d190b8216f5a12eaa3ba0f34238fe08e26de1765.zip
Fix PR5410: LiveVariables lost subreg def:
D0<def,dead> = ... ... = S0<use, kill> S0<def> = ... ... D0<def> = The first D0 def is correctly marked dead, however, livevariables should have added an implicit def of S0 or we end up with a use without a def. llvm-svn: 88690
Diffstat (limited to 'llvm/test/CodeGen/ARM')
-rw-r--r--llvm/test/CodeGen/ARM/2009-11-13-CoalescerCrash.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/2009-11-13-CoalescerCrash.ll b/llvm/test/CodeGen/ARM/2009-11-13-CoalescerCrash.ll
new file mode 100644
index 00000000000..efc4be11581
--- /dev/null
+++ b/llvm/test/CodeGen/ARM/2009-11-13-CoalescerCrash.ll
@@ -0,0 +1,20 @@
+; RUN: llc -mtriple=armv7-eabi -mcpu=cortex-a8 < %s
+; PR5410
+
+%0 = type { float, float, float, float }
+%pln = type { %vec, float }
+%vec = type { [4 x float] }
+
+define arm_aapcs_vfpcc float @aaa(%vec* nocapture %ustart, %vec* nocapture %udir, %vec* nocapture %vstart, %vec* nocapture %vdir, %vec* %upoint, %vec* %vpoint) {
+entry:
+ br i1 undef, label %bb81, label %bb48
+
+bb48: ; preds = %entry
+ %0 = call arm_aapcs_vfpcc %0 @bbb(%pln* undef, %vec* %vstart, %vec* undef) nounwind ; <%0> [#uses=0]
+ ret float 0.000000e+00
+
+bb81: ; preds = %entry
+ ret float 0.000000e+00
+}
+
+declare arm_aapcs_vfpcc %0 @bbb(%pln* nocapture, %vec* nocapture, %vec* nocapture) nounwind
OpenPOWER on IntegriCloud