diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-12-09 23:54:42 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-12-09 23:54:42 +0000 |
commit | 4e36a934dc2e9ae32b113267a5759e708301ca63 (patch) | |
tree | 40dabe4935b0821de81812ab9fe47f9fba123e0c /llvm/lib/Target/ARM/ARMISelLowering.cpp | |
parent | 19939cc38063087787969debc91ad7478236ec20 (diff) | |
download | bcm5719-llvm-4e36a934dc2e9ae32b113267a5759e708301ca63.tar.gz bcm5719-llvm-4e36a934dc2e9ae32b113267a5759e708301ca63.zip |
Splats can contain undef's; make sure to handle them correctly. PR11526.
llvm-svn: 146299
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index f09a1c7e4f7..2045073fb6c 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -3984,8 +3984,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) { - ConstantFPSDNode *C = cast<ConstantFPSDNode>(Op.getOperand(0)); - int ImmVal = ARM_AM::getFP32Imm(C->getValueAPF()); + int ImmVal = ARM_AM::getFP32Imm(SplatBits); if (ImmVal != -1) { SDValue Val = DAG.getTargetConstant(ImmVal, MVT::i32); return DAG.getNode(ARMISD::VMOVFPIMM, dl, VT, Val); |