summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-03-10 23:02:21 +0000
committerTim Northover <tnorthover@apple.com>2016-03-10 23:02:21 +0000
commit6092de50750e85b6866950884512ba281d431391 (patch)
tree191ce722dd6e8f2cb09445b6e4a8a4630fee37ea /llvm/lib
parent416ad130eab2047e64fa1be7ab5f60a6caad7cb9 (diff)
downloadbcm5719-llvm-6092de50750e85b6866950884512ba281d431391.tar.gz
bcm5719-llvm-6092de50750e85b6866950884512ba281d431391.zip
AArch64: only try to use scaled fcvt ops on legal vector types.
Before we ended up calling getSimpleVectorType on a <3 x float>, which asserted. llvm-svn: 263169
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AArch64/AArch64ISelLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index f5f2043fd68..ecb8eb19c18 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -7687,7 +7687,8 @@ static SDValue performFpToIntCombine(SDNode *N, SelectionDAG &DAG,
return SDValue();
SDValue Op = N->getOperand(0);
- if (!Op.getValueType().isVector() || Op.getOpcode() != ISD::FMUL)
+ if (!Op.getValueType().isVector() || !Op.getValueType().isSimple() ||
+ Op.getOpcode() != ISD::FMUL)
return SDValue();
SDValue ConstVec = Op->getOperand(1);
OpenPOWER on IntegriCloud