diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp index 3d313ca00f12..a69894839361 100644 --- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp +++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp @@ -422,7 +422,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) return std::pair(0, LLT::scalar(VecTy.getSizeInBits())); }) .customIf(IsPtrVecPred) - .scalarizeIf(typeInSet(0, {v2s16, v2s8}), 0); + .scalarizeIf(typeInSet(0, {v2s16, v2s8}), 0) + .scalarizeIf(scalarOrEltWiderThan(0, 64), 0); StoreActions .customIf([=](const LegalityQuery &Query) { @@ -463,7 +464,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) return std::pair(0, LLT::scalar(VecTy.getSizeInBits())); }) .customIf(IsPtrVecPred) - .scalarizeIf(typeInSet(0, {v2s16, v2s8}), 0); + .scalarizeIf(typeInSet(0, {v2s16, v2s8}), 0) + .scalarizeIf(scalarOrEltWiderThan(0, 64), 0); getActionDefinitionsBuilder(G_INDEXED_STORE) // Idx 0 == Ptr, Idx 1 == Val |
