Make check a bit more strict so we don't call ARM_AM::getFP32Imm with a value that...
authorEli Friedman <eli.friedman@gmail.com>
Thu, 15 Dec 2011 22:56:53 +0000 (22:56 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Thu, 15 Dec 2011 22:56:53 +0000 (22:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146700 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp

index 857eb7ade286be54d5569f03952bf10e862b179e..c6c1f5be935c9010131988d68569cc8b26b2195c 100644 (file)
@@ -4009,7 +4009,7 @@ SDValue ARMTargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
       }
 
       // Use vmov.f32 to materialize other v2f32 and v4f32 splats.
-      if (VT == MVT::v2f32 || VT == MVT::v4f32) {
+      if ((VT == MVT::v2f32 || VT == MVT::v4f32) && SplatBitSize == 32) {
         int ImmVal = ARM_AM::getFP32Imm(SplatBits);
         if (ImmVal != -1) {
           SDValue Val = DAG.getTargetConstant(ImmVal, MVT::i32);