diff options
| author | Jessica Paquette <jpaquette@apple.com> | 2019-03-04 21:12:46 +0000 |
|---|---|---|
| committer | Jessica Paquette <jpaquette@apple.com> | 2019-03-04 21:12:46 +0000 |
| commit | 0632e12f8927a13345cec0f823212fbd881fe889 (patch) | |
| tree | 29e03f10d99f148101705c96219ac0f9c1cb2b38 /llvm/lib/Target | |
| parent | e800a32b93cc26dc3087f260b633e54afe0ba722 (diff) | |
| download | bcm5719-llvm-0632e12f8927a13345cec0f823212fbd881fe889.tar.gz bcm5719-llvm-0632e12f8927a13345cec0f823212fbd881fe889.zip | |
[GlobalISel][AArch64] Legalize vector G_SELECT
Just scalarize it, and add a test showing it works.
Differential Revision: https://reviews.llvm.org/D58747
llvm-svn: 355339
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp index 3694b9faab7..03933b1d098 100644 --- a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp @@ -298,10 +298,13 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) { getActionDefinitionsBuilder(G_BRINDIRECT).legalFor({p0}); // Select + // FIXME: We can probably do a bit better than just scalarizing vector + // selects. getActionDefinitionsBuilder(G_SELECT) .legalFor({{s32, s1}, {s64, s1}, {p0, s1}}) .clampScalar(0, s32, s64) - .widenScalarToNextPow2(0); + .widenScalarToNextPow2(0) + .scalarize(0); // Pointer-handling getActionDefinitionsBuilder(G_FRAME_INDEX).legalFor({p0}); |

