[llvm] [AMDGPU] Add folding ISD::SELECT from vXiY into vZi32 with X * Y = Z * 32 (PR #173328)
Juan Manuel Martinez CaamaƱo via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 9 03:23:38 PDT 2026
================
@@ -59,6 +59,28 @@ EVT EVT::getExtendedVectorVT(LLVMContext &Context, EVT VT, ElementCount EC) {
return ResultVT;
}
+EVT EVT::getIntegerVectorWithElementWidth(LLVMContext &Context,
+ unsigned NewEltWidth) const {
+ if (!isVector() || !isInteger())
+ return EVT();
+
+ unsigned TotalBits = getVectorMinNumElements() * getScalarSizeInBits();
+ if (TotalBits % NewEltWidth != 0 || NewEltWidth > TotalBits)
+ return EVT();
+
+ unsigned NewNumElements = TotalBits / NewEltWidth;
+ EVT NewEltVT = EVT::getIntegerVT(Context, NewEltWidth);
+
+ if (NewNumElements == 1)
----------------
jmmartinez wrote:
What if it is scalable? This only applies for non scalable vectors.
https://github.com/llvm/llvm-project/pull/173328
More information about the llvm-commits
mailing list