[llvm] [LV][VPlan] Add initial support for CSA vectorization (PR #106560)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 30 13:22:37 PDT 2024


================
@@ -676,11 +768,16 @@ Value *VPInstruction::generatePerPart(VPTransformState &State, unsigned Part) {
 
 bool VPInstruction::isVectorToScalar() const {
   return getOpcode() == VPInstruction::ExtractFromEnd ||
-         getOpcode() == VPInstruction::ComputeReductionResult;
+         getOpcode() == VPInstruction::ComputeReductionResult ||
+         getOpcode() == VPInstruction::CSAAnyActive ||
+         getOpcode() == VPInstruction::CSAAnyActiveEVL;
 }
 
 bool VPInstruction::isSingleScalar() const {
-  return getOpcode() == VPInstruction::ResumePhi;
+  return getOpcode() == VPInstruction::ResumePhi ||
+         getOpcode() == VPInstruction::CSAVLPhi ||
+         getOpcode() == VPInstruction::CSAVLSel ||
+         getOpcode() == VPInstruction::ExplicitVectorLength;
----------------
artagnon wrote:

Is `VPInstruction::ExplicitVectorLength` something that this patch adds? If not, how come it appears in the diff?

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


More information about the llvm-commits mailing list