[llvm] [LLVM][CodeGen][SVE] Improve code quality of predicate vector extracts. (PR #220254)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 2 09:55:09 PDT 2026


================
@@ -32214,6 +32214,28 @@ void AArch64TargetLowering::ReplaceExtractSubVectorResults(
   SDLoc DL(N);
   EVT VT = N->getValueType(0);
 
+  if (VT.isFixedLengthVectorOf(MVT::i1)) {
+    EVT NewEltVT;
+    switch (VT.getVectorMinNumElements()) {
+    case 2:
+      NewEltVT = MVT::i32;
+      break;
+    case 4:
+      NewEltVT = MVT::i16;
+      break;
+    default:
+      NewEltVT = MVT::i8;
----------------
paulwalker-arm wrote:

The transformation is safe for single element vector types, so there's no reason to assert?

https://github.com/llvm/llvm-project/pull/220254


More information about the llvm-commits mailing list