[llvm] [AArch64] Resolve TODO: Add v2i8 and v2i16 to bitcast (PR #85306)

via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 14 13:40:07 PDT 2024


https://github.com/AtariDreams updated https://github.com/llvm/llvm-project/pull/85306

>From 73a98a766a8636c89b020d4e0ad418d26f874a4a Mon Sep 17 00:00:00 2001
From: Rose <gfunni234 at gmail.com>
Date: Thu, 14 Mar 2024 16:34:39 -0400
Subject: [PATCH] [AArch64] Resolve TODO: Add v2i8 and v2i16 to bitcast

---
 .../Target/AArch64/GISel/AArch64LegalizerInfo.cpp    | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
index 36adada2796531..d7c47f7db76b2d 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
@@ -388,14 +388,12 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
       .clampMaxNumElements(0, s32, 4)
       .clampMaxNumElements(0, s64, 2)
       .clampMaxNumElements(0, p0, 2)
-      // TODO: Use BITCAST for v2i8, v2i16 after G_TRUNC gets sorted out
-      .bitcastIf(typeInSet(0, {v4s8}),
+      .bitcastIf(typeInSet(0, {v2s8, v2s16, v4s8}),
                  [=](const LegalityQuery &Query) {
                    const LLT VecTy = Query.Types[0];
                    return std::pair(0, LLT::scalar(VecTy.getSizeInBits()));
                  })
-      .customIf(IsPtrVecPred)
-      .scalarizeIf(typeInSet(0, {v2s16, v2s8}), 0);
+      .customIf(IsPtrVecPred);
 
   getActionDefinitionsBuilder(G_STORE)
       .customIf([=](const LegalityQuery &Query) {
@@ -429,14 +427,12 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
       .clampMaxNumElements(0, s64, 2)
       .clampMaxNumElements(0, p0, 2)
       .lowerIfMemSizeNotPow2()
-      // TODO: Use BITCAST for v2i8, v2i16 after G_TRUNC gets sorted out
-      .bitcastIf(typeInSet(0, {v4s8}),
+      .bitcastIf(typeInSet(0, {v2s8, v2s16, v4s8}),
                  [=](const LegalityQuery &Query) {
                    const LLT VecTy = Query.Types[0];
                    return std::pair(0, LLT::scalar(VecTy.getSizeInBits()));
                  })
-      .customIf(IsPtrVecPred)
-      .scalarizeIf(typeInSet(0, {v2s16, v2s8}), 0);
+      .customIf(IsPtrVecPred);
 
   getActionDefinitionsBuilder(G_INDEXED_STORE)
       // Idx 0 == Ptr, Idx 1 == Val



More information about the llvm-commits mailing list