diff options
| author | Volkan Keles <vkeles@apple.com> | 2018-11-01 19:01:53 +0000 |
|---|---|---|
| committer | Volkan Keles <vkeles@apple.com> | 2018-11-01 19:01:53 +0000 |
| commit | 0a8dc9eb0fe0c1eeae027f6d6d570795b7b6fda6 (patch) | |
| tree | 3b4b8454c2fcc203842ebda35c8270a6f00f7f04 /llvm/lib | |
| parent | 2c0febe3e6ad1cec1bd5ad6b58f6d6a6aed7c890 (diff) | |
| download | bcm5719-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.cpp | 6 |
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) |

