summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorVolkan Keles <vkeles@apple.com>2018-11-01 19:01:53 +0000
committerVolkan Keles <vkeles@apple.com>2018-11-01 19:01:53 +0000
commit0a8dc9eb0fe0c1eeae027f6d6d570795b7b6fda6 (patch)
tree3b4b8454c2fcc203842ebda35c8270a6f00f7f04 /llvm/lib
parent2c0febe3e6ad1cec1bd5ad6b58f6d6a6aed7c890 (diff)
downloadbcm5719-llvm-0a8dc9eb0fe0c1eeae027f6d6d570795b7b6fda6.tar.gz
bcm5719-llvm-0a8dc9eb0fe0c1eeae027f6d6d570795b7b6fda6.zip
[GlobalISel] Fix a bug in LegalizeRuleSet::clampMaxNumElements
Summary: This function was causing a crash when `MaxElements == 1` because it was trying to create a single element vector type. Reviewers: dsanders, aemerson, aditya_nandakumar Reviewed By: dsanders Subscribers: rovka, kristof.beyls, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D53734 llvm-svn: 345875
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
index 474516ff2cc..4b5e10ac4ec 100644
--- a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
@@ -169,7 +169,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) {
.lowerIf([=](const LegalityQuery &Query) {
return Query.Types[0].getSizeInBits() != Query.MMODescrs[0].SizeInBits;
})
- .clampNumElements(0, v2s32, v2s32);
+ .clampNumElements(0, v2s32, v2s32)
+ .clampMaxNumElements(0, s64, 1);
getActionDefinitionsBuilder(G_STORE)
.legalForTypesWithMemSize({{s8, p0, 8},
@@ -187,7 +188,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) {
return Query.Types[0].isScalar() &&
Query.Types[0].getSizeInBits() != Query.MMODescrs[0].SizeInBits;
})
- .clampNumElements(0, v2s32, v2s32);
+ .clampNumElements(0, v2s32, v2s32)
+ .clampMaxNumElements(0, s64, 1);
// Constants
getActionDefinitionsBuilder(G_CONSTANT)
OpenPOWER on IntegriCloud