[llvm-commits] [llvm] r116955 - in /llvm/trunk: lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/Thumb2/buildvector-crash.ll

Dale Johannesen dalej at apple.com
Wed Oct 20 15:03:37 PDT 2010


Author: johannes
Date: Wed Oct 20 17:03:37 2010
New Revision: 116955

URL: http://llvm.org/viewvc/llvm-project?rev=116955&view=rev
Log:
Fix crash introduced in 116852.  8573915.


Added:
    llvm/trunk/test/CodeGen/Thumb2/buildvector-crash.ll
Modified:
    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=116955&r1=116954&r2=116955&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Wed Oct 20 17:03:37 2010
@@ -3457,8 +3457,9 @@
                                   Op.getOperand(i)));
       SDValue Val = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32, &Ops[0],
                                 NumElts);
-      return DAG.getNode(ISD::BIT_CONVERT, dl, VT,
-                         LowerBUILD_VECTOR(Val, DAG, ST));
+      Val = LowerBUILD_VECTOR(Val, DAG, ST);
+      if (Val.getNode())
+        return DAG.getNode(ISD::BIT_CONVERT, dl, VT, Val);
     }
     SDValue Val = IsSingleInstrConstant(Value, DAG, ST, dl);
     if (Val.getNode())

Added: llvm/trunk/test/CodeGen/Thumb2/buildvector-crash.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb2/buildvector-crash.ll?rev=116955&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Thumb2/buildvector-crash.ll (added)
+++ llvm/trunk/test/CodeGen/Thumb2/buildvector-crash.ll Wed Oct 20 17:03:37 2010
@@ -0,0 +1,17 @@
+; RUN: llc < %s -O3 -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-a8 | FileCheck %s
+; Formerly crashed, 3573915.
+
+define void @RotateStarsFP_Vec() nounwind {
+bb.nph372:
+  br label %bb8
+
+bb8:                                              ; preds = %bb8, %bb.nph372
+  %0 = fadd <4 x float> undef, <float 0xBFEE353F80000000, float 0xBFEE353F80000000, float 0xBFEE353F80000000, float 0xBFEE353F80000000>
+  %1 = fmul <4 x float> %0, undef
+  %2 = fmul <4 x float> %1, undef
+  %3 = fadd <4 x float> undef, %2
+  store <4 x float> %3, <4 x float>* undef, align 4
+  br label %bb8
+; CHECK: RotateStarsFP_Vec:
+; CHECK: vldmia
+}





More information about the llvm-commits mailing list