Skip to content

[VPlan] Don't print interleave group insert position.#200023

Merged
fhahn merged 2 commits into
llvm:mainfrom
fhahn:vplan-ig-print-no-insert-pos
Jun 2, 2026
Merged

[VPlan] Don't print interleave group insert position.#200023
fhahn merged 2 commits into
llvm:mainfrom
fhahn:vplan-ig-print-no-insert-pos

Conversation

@fhahn
Copy link
Copy Markdown
Contributor

@fhahn fhahn commented May 27, 2026

This patch updates interleave group printing to drop the insert position. It does not add any information (the position of the interleave group is determined by the position in VPlan), and for stores we currently were printing anyways (trying to print a value with void type).

This patch updates interleave group printing to drop the insert
position. It does not add any information (the position of the
interleave group is determined by the position in VPlan), and for stores
we currently were printing <badref> anyways (trying to print a value
with void type).
@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 27, 2026

How to use the Graphite Merge Queue

Add the label FP Bundles to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

@llvmorg-github-actions
Copy link
Copy Markdown

llvmorg-github-actions Bot commented May 27, 2026

@llvm/pr-subscribers-llvm-transforms
@llvm/pr-subscribers-vectorizers

@llvm/pr-subscribers-backend-systemz

Author: Florian Hahn (fhahn)

Changes

This patch updates interleave group printing to drop the insert position. It does not add any information (the position of the interleave group is determined by the position in VPlan), and for stores we currently were printing <badref> anyways (trying to print a value with void type).


Patch is 639.68 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/200023.diff

110 Files Affected:

  • (modified) llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp (+2-6)
  • (modified) llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll (+24-24)
  • (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll (+1-1)
  • (modified) llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll (+22-22)
  • (modified) llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll (+58-58)
  • (modified) llvm/test/Transforms/LoopVectorize/RISCV/interleaved-cost.ll (+248-248)
  • (modified) llvm/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs-02.ll (+4-4)
  • (modified) llvm/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs.ll (+3-3)
  • (modified) llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll (+2-2)
  • (modified) llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll (+146-141)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/handle-iptr-with-data-layout-to-not-assert.ll (+3-3)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-5.ll (+4-4)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-6.ll (+8-8)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-7.ll (+4-4)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-8.ll (+5-5)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-2.ll (+11-11)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-3.ll (+7-7)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-4.ll (+7-7)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-5.ll (+2-2)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-6.ll (+5-5)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-7.ll (+1-1)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-8.ll (+1-1)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-half.ll (+2-2)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll (+21-21)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-5.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-7.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-8.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll (+9-9)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-01uu.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll (+9-9)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll (+10-10)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-5.ll (+4-4)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll (+8-8)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-7.ll (+4-4)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-8.ll (+5-5)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-2.ll (+11-11)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-3.ll (+7-7)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-4.ll (+7-7)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-5.ll (+2-2)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-6.ll (+5-5)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-7.ll (+1-1)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-8.ll (+1-1)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-5.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-6.ll (+17-17)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-7.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-8.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-8.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-8.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-8.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-8.ll (+15-15)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-8.ll (+26-26)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-load-i16.ll (+12-12)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-store-i16.ll (+7-7)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i16.ll (+20-20)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i32.ll (+16-16)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i64.ll (+9-9)
  • (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i8.ll (+24-24)
  • (modified) llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll (+1-1)
  • (modified) llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll.expected (+7-7)
  • (modified) llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/loopvectorize-costmodel.test (+2-2)
diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
index 17d471631148f..5a127764b6ef5 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
@@ -4344,9 +4344,7 @@ void VPInterleaveRecipe::execute(VPTransformState &State) {
 void VPInterleaveRecipe::printRecipe(raw_ostream &O, const Twine &Indent,
                                      VPSlotTracker &SlotTracker) const {
   const InterleaveGroup<Instruction> *IG = getInterleaveGroup();
-  O << Indent << "INTERLEAVE-GROUP with factor " << IG->getFactor() << " at ";
-  IG->getInsertPos()->printAsOperand(O, false);
-  O << ", ";
+  O << Indent << "INTERLEAVE-GROUP with factor " << IG->getFactor() << ", ";
   getAddr()->printAsOperand(O, SlotTracker);
   VPValue *Mask = getMask();
   if (Mask) {
@@ -4486,9 +4484,7 @@ void VPInterleaveEVLRecipe::execute(VPTransformState &State) {
 void VPInterleaveEVLRecipe::printRecipe(raw_ostream &O, const Twine &Indent,
                                         VPSlotTracker &SlotTracker) const {
   const InterleaveGroup<Instruction> *IG = getInterleaveGroup();
-  O << Indent << "INTERLEAVE-GROUP with factor " << IG->getFactor() << " at ";
-  IG->getInsertPos()->printAsOperand(O, false);
-  O << ", ";
+  O << Indent << "INTERLEAVE-GROUP with factor " << IG->getFactor() << ", ";
   getAddr()->printAsOperand(O, SlotTracker);
   O << ", ";
   getEVL()->printAsOperand(O, SlotTracker);
diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll b/llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
index 44cc7bbc9294b..7ce07a82e6465 100644
--- a/llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
+++ b/llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
@@ -13,11 +13,11 @@ entry:
   br label %for.body
 
 ; VF_8-LABEL:  Checking a loop in 'i8_factor_2'
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i8_factor_2'
-; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i8.2, ptr %data, i64 %i, i32 0
@@ -40,14 +40,14 @@ entry:
   br label %for.body
 
 ; VF_4-LABEL: Checking a loop in 'i16_factor_2'
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i16_factor_2'
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i16_factor_2'
-; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i16.2, ptr %data, i64 %i, i32 0
@@ -70,17 +70,17 @@ entry:
   br label %for.body
 
 ; VF_2-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_4-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i32_factor_2'
-; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i32.2, ptr %data, i64 %i, i32 0
@@ -106,14 +106,14 @@ entry:
 ; VF_2:          Cost of 1 for VF 2: WIDEN ir<%tmp2> = load ir<%tmp0>
 ; VF_2-NEXT:     Cost of 1 for VF 2: WIDEN store ir<%tmp0>, ir<%tmp2>
 ; VF_4-LABEL:  Checking a loop in 'i64_factor_2'
-; VF_4:          Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:          Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:          Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:          Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i64_factor_2'
-; VF_8:          Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i64_factor_2'
-; VF_16:         Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i64.2, ptr %data, i64 %i, i32 0
diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll b/llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll
index 0531261c1503c..6fbab439e2035 100644
--- a/llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll
+++ b/llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll
@@ -95,7 +95,7 @@ for.cond.cleanup:
 }
 
 ; CHECK: LV: Checking a loop in 'gather_nxv4i32_stride2'
-; CHECK: Cost of 2 for VF vscale x 4: INTERLEAVE-GROUP with factor 2 at %0, ir<%arrayidx>
+; CHECK: Cost of 2 for VF vscale x 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 define void @gather_nxv4i32_stride2(ptr noalias nocapture readonly %a, ptr noalias nocapture readonly %b, i64 %n) #0 {
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll b/llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll
index c3cfd48208e8e..fdca980fcc773 100644
--- a/llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll
+++ b/llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll
@@ -13,11 +13,11 @@ entry:
   br label %for.body
 
 ; VF_8-LABEL:  Checking a loop in 'i8_factor_2'
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i8_factor_2'
-; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i8.2, ptr %data, i64 %i, i32 0
@@ -40,14 +40,14 @@ entry:
   br label %for.body
 
 ; VF_4-LABEL:  Checking a loop in 'i16_factor_2'
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i16_factor_2'
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i16_factor_2'
-; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i16.2, ptr %data, i64 %i, i32 0
@@ -70,17 +70,17 @@ entry:
   br label %for.body
 
 ; VF_2-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_2:          Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_4-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:          Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:          Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL: Checking a loop in 'i32_factor_2'
-; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:         Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i32.2, ptr %data, i64 %i, i32 0
@@ -103,11 +103,11 @@ entry:
   br label %for.body
 
 ; VF_4-LABEL: Checking a loop in 'half_factor_2'
-; VF_4:         Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:         Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:         Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:         Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL: Checking a loop in 'half_factor_2'
-; VF_8:         Cost of 80 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:         Cost of 80 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:         Cost of 80 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:         Cost of 80 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %half.2, ptr %data, i64 %i, i32 0
diff --git a/llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll b/llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
index 76898f5010e85..7f5114fc4aa27 100644
--- a/llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
+++ b/llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
@@ -20,14 +20,14 @@ entry:
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp2>, ir<%tmp0>
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp3>, ir<%tmp1>
 ; VF_4-LABEL:  Checking a loop in 'i8_factor_2'
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i8_factor_2'
-; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL:  Checking a loop in 'i8_factor_2'
-; VF_16:    Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:    Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:    Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:    Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i8.2, ptr %data, i64 %i, i32 0
@@ -55,14 +55,14 @@ entry:
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp2>, ir<%tmp0>
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp3>, ir<%tmp1>
 ; VF_4-LABEL:  Checking a loop in 'i16_factor_2'
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i16_factor_2'
-; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL:  Checking a loop in 'i16_factor_2'
-; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i16.2, ptr %data, i64 %i, i32 0
@@ -90,14 +90,14 @@ entry:
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp2>, ir<%tmp0>
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp3>, ir<%tmp1>
 ; VF_4-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_8:     Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:     Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:     Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:     Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL:  Checking a loop in 'i32_factor_2'
-; VF_16:    Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:    Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:    Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:    Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %i32.2, ptr %data, i64 %i, i32 0
@@ -166,14 +166,14 @@ entry:
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp2>, ir<%tmp0>
 ; VF_2-NEXT: Cost of 4 for VF 2: REPLICATE store ir<%tmp3>, ir<%tmp1>
 ; VF_4-LABEL:  Checking a loop in 'f16_factor_2'
-; VF_4:     Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:     Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:     Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:     Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'f16_factor_2'
-; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_8:     Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_16-LABEL:  Checking a loop in 'f16_factor_2'
-; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_16:    Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 for.body:
   %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
   %tmp0 = getelementptr inbounds %f16.2, ptr %data, i64 %i, i32 0
@@ -196,17 +196,17 @@ entry:
   br label %for.body
 
 ; VF_2-LABEL:  Checking a loop in 'f32_factor_2'
-; VF_2:     Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_2:     Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_2:     Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_2:     Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_4-LABEL:  Checking a loop in 'f32_factor_2'
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at <badref>, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
+; VF_4:     Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%tmp0>
 ; VF_8-LABEL:  Checking a loop in 'f32_factor_2'
-; VF_8:     Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 2 at %tmp2, ir<%tmp0>
-; VF_8:     Cost of 8 for VF 8: INTERLEA...
[truncated]

Copy link
Copy Markdown
Contributor

@david-arm david-arm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@fhahn fhahn enabled auto-merge (squash) June 2, 2026 09:14
@fhahn fhahn merged commit c3ea53c into llvm:main Jun 2, 2026
9 of 10 checks passed
llvm-upstreamsync Bot pushed a commit to qualcomm/cpullvm-toolchain that referenced this pull request Jun 2, 2026
…0023)

This patch updates interleave group printing to drop the insert
position. It does not add any information (the position of the
interleave group is determined by the position in VPlan), and for stores
we currently were printing <badref> anyways (trying to print a value
with void type).

PR: llvm/llvm-project#200023
llvm-sync Bot pushed a commit to arm/arm-toolchain that referenced this pull request Jun 2, 2026
…0023)

This patch updates interleave group printing to drop the insert
position. It does not add any information (the position of the
interleave group is determined by the position in VPlan), and for stores
we currently were printing <badref> anyways (trying to print a value
with void type).

PR: llvm/llvm-project#200023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants