[llvm] [VPlan] Print metadata not attached to module as !tmp. (PR #203982)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 03:10:36 PDT 2026


https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/203982

>From 8aea818f0cca7a489d035eb4ed22fa0bad78dda7 Mon Sep 17 00:00:00 2001
From: Florian Hahn <flo at fhahn.com>
Date: Wed, 10 Jun 2026 08:56:50 +0200
Subject: [PATCH] [VPlan] Print metadata not attached to module as !tmp.

Recipes can reference metadata that is not attached to any IR instruction,
e.g. the alias.scope/noalias metadata generated by loop versioning.
Those are not yet inserted into the module, so the slot tracker does not
assign IDs to to them.

Add a new getMetadataSlot slot similar to getLocalSlot, which returns -1
for unregistered metadata.

Manually number those in the VPlan slot tracker and print as !tmpID.

Another option would be to register all unattached metadata via
setProcessHook, but that would require always iterating over the whole
plan.

Depends on https://github.com/llvm/llvm-project/pull/203386 (included in
PR)
---
 llvm/include/llvm/IR/ModuleSlotTracker.h      |   5 +
 llvm/lib/IR/AsmWriter.cpp                     |   6 +
 llvm/lib/Transforms/Vectorize/VPlan.cpp       |  42 ++-
 llvm/lib/Transforms/Vectorize/VPlanHelpers.h  |  14 +-
 .../lib/Transforms/Vectorize/VPlanRecipes.cpp |  13 +-
 .../VPlan/AArch64/sve2-histcnt-vplan.ll       |   2 +-
 .../VPlan/interleave-and-scalarize-only.ll    |   6 +-
 .../VPlan/vplan-printing-metadata.ll          |  78 +++++
 .../WebAssembly/memory-interleave.ll          | 286 +++++++++---------
 .../X86/CostModel/masked-load-i16.ll          |  52 ++--
 .../X86/CostModel/masked-load-i32.ll          |  52 ++--
 .../X86/CostModel/masked-load-i64.ll          |  52 ++--
 .../X86/CostModel/masked-load-i8.ll           |  12 +-
 .../X86/CostModel/masked-store-i16.ll         |  24 +-
 .../X86/CostModel/masked-store-i32.ll         |  44 +--
 .../X86/CostModel/masked-store-i64.ll         |  44 +--
 .../X86/CostModel/masked-store-i8.ll          |  12 +-
 17 files changed, 425 insertions(+), 319 deletions(-)

diff --git a/llvm/include/llvm/IR/ModuleSlotTracker.h b/llvm/include/llvm/IR/ModuleSlotTracker.h
index a3882a81e1177..d995a0ce041c2 100644
--- a/llvm/include/llvm/IR/ModuleSlotTracker.h
+++ b/llvm/include/llvm/IR/ModuleSlotTracker.h
@@ -94,6 +94,11 @@ class LLVM_ABI ModuleSlotTracker {
   /// Return -1 if the value is not in the function's SlotTracker.
   int getLocalSlot(const Value *V);
 
+  /// Return the slot number of metadata node \p N.
+  ///
+  /// Return -1 if \p N has not been assigned a slot.
+  int getMetadataSlot(const MDNode *N);
+
   void setProcessHook(
       std::function<void(AbstractSlotTrackerStorage *, const Module *, bool)>);
   void setProcessHook(std::function<void(AbstractSlotTrackerStorage *,
diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp
index c3202eea12c28..45e12de50c30f 100644
--- a/llvm/lib/IR/AsmWriter.cpp
+++ b/llvm/lib/IR/AsmWriter.cpp
@@ -1010,6 +1010,12 @@ int ModuleSlotTracker::getLocalSlot(const Value *V) {
   return Machine->getLocalSlot(V);
 }
 
+int ModuleSlotTracker::getMetadataSlot(const MDNode *N) {
+  if (!getMachine())
+    return -1;
+  return Machine->getMetadataSlot(N);
+}
+
 void ModuleSlotTracker::setProcessHook(
     std::function<void(AbstractSlotTrackerStorage *, const Module *, bool)>
         Fn) {
diff --git a/llvm/lib/Transforms/Vectorize/VPlan.cpp b/llvm/lib/Transforms/Vectorize/VPlan.cpp
index 87d24ed9d8d4b..6e7c810672290 100644
--- a/llvm/lib/Transforms/Vectorize/VPlan.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlan.cpp
@@ -1613,6 +1613,17 @@ void VPSlotTracker::assignNames(const VPBasicBlock *VPBB) {
       assignName(Def);
 }
 
+ModuleSlotTracker &VPSlotTracker::getOrCreateMST(const Module *Mod,
+                                                 const Function *F) {
+  if (!MST)
+    MST = std::make_unique<ModuleSlotTracker>(Mod);
+  // Incorporate the function even if the MST already existed; this is a no-op
+  // if \p F is already incorporated.
+  if (F)
+    MST->incorporateFunction(*F);
+  return *MST;
+}
+
 std::string VPSlotTracker::getName(const Value *V) {
   std::string Name;
   raw_string_ostream S(Name);
@@ -1621,22 +1632,27 @@ std::string VPSlotTracker::getName(const Value *V) {
     return Name;
   }
 
-  if (!MST) {
-    // Lazily create the ModuleSlotTracker when we first hit an unnamed
-    // instruction.
-    auto *I = cast<Instruction>(V);
-    // This check is required to support unit tests with incomplete IR.
-    if (I->getParent()) {
-      MST = std::make_unique<ModuleSlotTracker>(I->getModule());
-      MST->incorporateFunction(*I->getFunction());
-    } else {
-      MST = std::make_unique<ModuleSlotTracker>(nullptr);
-    }
-  }
-  V->printAsOperand(S, false, *MST);
+  auto *I = cast<Instruction>(V);
+  // The parent check is required to support unit tests with incomplete IR.
+  ModuleSlotTracker &MST =
+      I->getParent() ? getOrCreateMST(I->getModule(), I->getFunction())
+                     : getOrCreateMST(nullptr, nullptr);
+  V->printAsOperand(S, false, MST);
   return Name;
 }
 
+void VPSlotTracker::printMetadataAsOperand(raw_ostream &O, const MDNode *N) {
+  // Use the module slot if \p N has already been numbered.
+  if (int Slot = getOrCreateMST(M, /*F=*/nullptr).getMetadataSlot(N);
+      Slot != -1) {
+    O << '!' << Slot;
+    return;
+  }
+  // Otherwise manually number metadata not attached to the module yet.
+  O << "!tmp"
+    << MetadataTmpIds.try_emplace(N, MetadataTmpIds.size()).first->second;
+}
+
 std::string VPSlotTracker::getOrCreateName(const VPValue *V) const {
   std::string Name = VPValue2Name.lookup(V);
   if (!Name.empty())
diff --git a/llvm/lib/Transforms/Vectorize/VPlanHelpers.h b/llvm/lib/Transforms/Vectorize/VPlanHelpers.h
index 1c987abc649c8..b57ced46c7207 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanHelpers.h
+++ b/llvm/lib/Transforms/Vectorize/VPlanHelpers.h
@@ -420,8 +420,8 @@ class VPSlotTracker {
   /// Number to assign to the next VPValue without underlying value.
   unsigned NextSlot = 0;
 
-  /// Lazily created ModuleSlotTracker, used only when unnamed IR instructions
-  /// require slot tracking.
+  /// Lazily created ModuleSlotTracker, used to print unnamed IR instructions
+  /// and metadata nodes referenced by recipes.
   std::unique_ptr<ModuleSlotTracker> MST;
 
   /// Cached metadata kind names from the Module's LLVMContext.
@@ -430,11 +430,18 @@ class VPSlotTracker {
   /// Cached Module pointer for printing metadata.
   const Module *M = nullptr;
 
+  /// Temporary ids for metadata nodes referenced by recipes that have no module
+  /// slot (e.g. alias.scope/noalias added by loop versioning).
+  DenseMap<const MDNode *, unsigned> MetadataTmpIds;
+
   void assignName(const VPValue *V);
   LLVM_ABI_FOR_TEST void assignNames(const VPlan &Plan);
   void assignNames(const VPBasicBlock *VPBB);
   std::string getName(const Value *V);
 
+  /// Lazily create the ModuleSlotTracker for module \p Mod.
+  ModuleSlotTracker &getOrCreateMST(const Module *Mod, const Function *F);
+
 public:
   VPSlotTracker(const VPlan *Plan = nullptr) {
     if (Plan) {
@@ -456,6 +463,9 @@ class VPSlotTracker {
     return MDNames;
   }
 
+  /// Print a reference to metadata node \p N to \p O.
+  void printMetadataAsOperand(raw_ostream &O, const MDNode *N);
+
   /// Returns the cached Module pointer.
   const Module *getModule() const { return M; }
 };
diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
index b5524948c1bd9..e2047d9de6eee 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
@@ -47,15 +47,6 @@ using VectorParts = SmallVector<Value *, 2>;
 #define LV_NAME "loop-vectorize"
 #define DEBUG_TYPE LV_NAME
 
-#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
-// It is sometimes necessary to disable printing of metadata in tests in order
-// to avoid non-deterministic behaviour due to metadata introduced by VPlan
-// that wasn't present in the original scalar IR.
-static cl::opt<bool> VPlanPrintMetadata(
-    "vplan-print-metadata", cl::init(true), cl::Hidden,
-    cl::desc("Controls the printing of recipe metadata when debugging."));
-#endif
-
 bool VPRecipeBase::mayWriteToMemory() const {
   switch (getVPRecipeID()) {
   case VPExpressionSC:
@@ -2147,7 +2138,7 @@ void VPIRMetadata::intersect(const VPIRMetadata &Other) {
 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void VPIRMetadata::print(raw_ostream &O, VPSlotTracker &SlotTracker) const {
   const Module *M = SlotTracker.getModule();
-  if (Metadata.empty() || !M || !VPlanPrintMetadata)
+  if (Metadata.empty() || !M)
     return;
 
   ArrayRef<StringRef> MDNames = SlotTracker.getMDNames();
@@ -2157,7 +2148,7 @@ void VPIRMetadata::print(raw_ostream &O, VPSlotTracker &SlotTracker) const {
     assert(Kind < MDNames.size() && !MDNames[Kind].empty() &&
            "Unexpected unnamed metadata kind");
     O << "!" << MDNames[Kind] << " ";
-    Node->printAsOperand(O, M);
+    SlotTracker.printMetadataAsOperand(O, Node);
   });
   O << ")";
 }
diff --git a/llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll b/llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
index bceb53bb131c8..bc12db3b42635 100644
--- a/llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
+++ b/llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
@@ -130,7 +130,7 @@ for.exit:
 ;; Check that metadata is preserved in the WIDEN-HISTOGRAM recipe when the
 ;; histogram store carries alias.scope/noalias metadata.
 ; CHECK: VPlan 'Initial VPlan for VF={vscale x 2,vscale x 4},UF>=1' {
-; CHECK:     WIDEN-HISTOGRAM buckets: {{.*}}, inc: ir<1> (!alias.scope {{![0-9]+}}, !noalias {{![0-9]+}})
+; CHECK:     WIDEN-HISTOGRAM buckets: {{.*}}, inc: ir<1> (!alias.scope !7, !noalias !4)
 
 define void @simple_histogram_metadata(ptr noalias %buckets, ptr readonly %indices, i64 %N) {
 entry:
diff --git a/llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll b/llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll
index 1cc75db39a7b4..edb1718149d7b 100644
--- a/llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll
+++ b/llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll
@@ -1,5 +1,5 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 6
-; RUN: opt -passes=loop-vectorize -force-vector-width=1 -force-vector-interleave=2 -vplan-print-after=printOptimizedVPlan -disable-output -vplan-print-metadata=false %s 2>&1 | FileCheck  %s
+; RUN: opt -passes=loop-vectorize -force-vector-width=1 -force-vector-interleave=2 -vplan-print-after=printOptimizedVPlan -disable-output %s 2>&1 | FileCheck  %s
 
 ;
 define void @test_scalarize_call(i32 %start, ptr %dst) {
@@ -332,7 +332,7 @@ define void @scalarize_ptrtoint(ptr %src, ptr %dst) {
 ; CHECK-NEXT:    vector.body:
 ; CHECK-NEXT:      vp<[[VP4:%[0-9]+]]> = SCALAR-STEPS vp<[[VP3]]>, ir<1>, vp<[[VP0]]>
 ; CHECK-NEXT:      CLONE ir<%gep> = getelementptr ir<%src>, vp<[[VP4]]>
-; CHECK-NEXT:      CLONE ir<%l> = load ir<%gep>
+; CHECK-NEXT:      CLONE ir<%l> = load ir<%gep> (!alias.scope !tmp0)
 ; CHECK-NEXT:      EMIT vp<%index.next> = add nuw vp<[[VP3]]>, vp<[[VP1]]>
 ; CHECK-NEXT:      EMIT branch-on-count vp<%index.next>, vp<[[VP2]]>
 ; CHECK-NEXT:    No successors
@@ -343,7 +343,7 @@ define void @scalarize_ptrtoint(ptr %src, ptr %dst) {
 ; CHECK-NEXT:    EMIT-SCALAR ir<%cast> = ptrtoint ir<%l> to i64
 ; CHECK-NEXT:    CLONE ir<%add> = add ir<%cast>, ir<10>
 ; CHECK-NEXT:    EMIT-SCALAR ir<%cast.2> = inttoptr ir<%add> to ptr
-; CHECK-NEXT:    CLONE store ir<%cast.2>, ir<%dst>
+; CHECK-NEXT:    CLONE store ir<%cast.2>, ir<%dst> (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK-NEXT:    EMIT vp<%cmp.n> = icmp eq ir<1024>, vp<[[VP2]]>
 ; CHECK-NEXT:    EMIT branch-on-cond vp<%cmp.n>
 ; CHECK-NEXT:  Successor(s): ir-bb<exit>, scalar.ph
diff --git a/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll b/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
index 26b0bc47fd257..08292668bcb4a 100644
--- a/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
+++ b/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
@@ -237,6 +237,84 @@ exit:
   ret void
 }
 
+define void @test_noalias_metadata(ptr %a, ptr %b, i64 %n) {
+; CHECK-LABEL: VPlan for loop in 'test_noalias_metadata'
+; CHECK:  VPlan 'Initial VPlan for VF={4},UF>=1' {
+; CHECK-NEXT:  Live-in vp<[[VP0:%[0-9]+]]> = VF
+; CHECK-NEXT:  Live-in vp<[[VP1:%[0-9]+]]> = VF * UF
+; CHECK-NEXT:  Live-in vp<[[VP2:%[0-9]+]]> = vector-trip-count
+; CHECK-NEXT:  Live-in ir<%n> = original trip-count
+; CHECK-EMPTY:
+; CHECK-NEXT:  ir-bb<entry>:
+; CHECK-NEXT:  Successor(s): scalar.ph, vector.ph
+; CHECK-EMPTY:
+; CHECK-NEXT:  vector.ph:
+; CHECK-NEXT:  Successor(s): vector loop
+; CHECK-EMPTY:
+; CHECK-NEXT:  <x1> vector loop: {
+; CHECK-NEXT:  vp<[[VP3:%[0-9]+]]> = CANONICAL-IV
+; CHECK-EMPTY:
+; CHECK-NEXT:    vector.body:
+; CHECK-NEXT:      vp<[[VP4:%[0-9]+]]> = SCALAR-STEPS vp<[[VP3]]>, ir<1>, vp<[[VP0]]>
+; CHECK-NEXT:      CLONE ir<%gep.a> = getelementptr inbounds ir<%a>, vp<[[VP4]]>
+; CHECK-NEXT:      vp<[[VP5:%[0-9]+]]> = vector-pointer inbounds i32, ir<%gep.a>, ir<1>
+; CHECK-NEXT:      WIDEN ir<%l> = load vp<[[VP5]]> (!alias.scope !tmp0, !noalias !tmp1)
+; CHECK-NEXT:      CLONE ir<%gep.b> = getelementptr inbounds ir<%b>, vp<[[VP4]]>
+; CHECK-NEXT:      vp<[[VP6:%[0-9]+]]> = vector-pointer inbounds i32, ir<%gep.b>, ir<1>
+; CHECK-NEXT:      WIDEN ir<%l2> = load vp<[[VP6]]> (!alias.scope !tmp1)
+; CHECK-NEXT:      WIDEN ir<%add> = add ir<%l>, ir<%l2>
+; CHECK-NEXT:      vp<[[VP7:%[0-9]+]]> = vector-pointer inbounds i32, ir<%gep.a>, ir<1>
+; CHECK-NEXT:      WIDEN store vp<[[VP7]]>, ir<%add> (!alias.scope !tmp0, !noalias !tmp1)
+; CHECK-NEXT:      EMIT vp<%index.next> = add nuw vp<[[VP3]]>, vp<[[VP1]]>
+; CHECK-NEXT:      EMIT branch-on-count vp<%index.next>, vp<[[VP2]]>
+; CHECK-NEXT:    No successors
+; CHECK-NEXT:  }
+; CHECK-NEXT:  Successor(s): middle.block
+; CHECK-EMPTY:
+; CHECK-NEXT:  middle.block:
+; CHECK-NEXT:    EMIT vp<%cmp.n> = icmp eq ir<%n>, vp<[[VP2]]>
+; CHECK-NEXT:    EMIT branch-on-cond vp<%cmp.n>
+; CHECK-NEXT:  Successor(s): ir-bb<exit>, scalar.ph
+; CHECK-EMPTY:
+; CHECK-NEXT:  ir-bb<exit>:
+; CHECK-NEXT:  No successors
+; CHECK-EMPTY:
+; CHECK-NEXT:  scalar.ph:
+; CHECK-NEXT:    EMIT-SCALAR vp<%bc.resume.val> = phi [ vp<[[VP2]]>, middle.block ], [ ir<0>, ir-bb<entry> ]
+; CHECK-NEXT:  Successor(s): ir-bb<loop>
+; CHECK-EMPTY:
+; CHECK-NEXT:  ir-bb<loop>:
+; CHECK-NEXT:    IR   %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ] (extra operand: vp<%bc.resume.val> from scalar.ph)
+; CHECK-NEXT:    IR   %gep.a = getelementptr inbounds i32, ptr %a, i64 %iv
+; CHECK-NEXT:    IR   %l = load i32, ptr %gep.a, align 4
+; CHECK-NEXT:    IR   %gep.b = getelementptr inbounds i32, ptr %b, i64 %iv
+; CHECK-NEXT:    IR   %l2 = load i32, ptr %gep.b, align 4
+; CHECK-NEXT:    IR   %add = add i32 %l, %l2
+; CHECK-NEXT:    IR   store i32 %add, ptr %gep.a, align 4
+; CHECK-NEXT:    IR   %iv.next = add nuw nsw i64 %iv, 1
+; CHECK-NEXT:    IR   %ec = icmp eq i64 %iv.next, %n
+; CHECK-NEXT:  No successors
+; CHECK-NEXT:  }
+;
+entry:
+  br label %loop
+
+loop:
+  %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
+  %gep.a = getelementptr inbounds i32, ptr %a, i64 %iv
+  %l = load i32, ptr %gep.a, align 4
+  %gep.b = getelementptr inbounds i32, ptr %b, i64 %iv
+  %l2 = load i32, ptr %gep.b, align 4
+  %add = add i32 %l, %l2
+  store i32 %add, ptr %gep.a, align 4
+  %iv.next = add nuw nsw i64 %iv, 1
+  %ec = icmp eq i64 %iv.next, %n
+  br i1 %ec, label %exit, label %loop
+
+exit:
+  ret void
+}
+
 !0 = !{!1, !1, i64 0}
 !1 = !{!"float", !2}
 !2 = !{!"root"}
diff --git a/llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll b/llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
index d123a62d443cc..cd6285fa79f24 100644
--- a/llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
+++ b/llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "Cost of.*INTERLEAVE-GROUP" --filter "LV: Selecting VF:" --filter "Cost for VF" --filter "LV: Scalar loop costs" --filter "Cost of.*REPLICATE.*(load|store)" --filter "^  ir.*load from" --filter "^  store.*to index" --filter-out-after "LV: Selecting VF" --version 6
 ; REQUIRES: asserts
-; RUN: opt -mattr=+simd128 -passes=loop-vectorize -debug-only=loop-vectorize,vectorutils -disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s
+; RUN: opt -mattr=+simd128 -passes=loop-vectorize -debug-only=loop-vectorize,vectorutils -disable-output < %s 2>&1 | FileCheck %s
 
 target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20"
 target triple = "wasm32-unknown-wasi"
@@ -2026,24 +2026,24 @@ define hidden void @scale_uv_row_down2(ptr nocapture noundef readonly %0, i32 no
 ; CHECK:  LV: Scalar loop costs: 10.
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%10>
 ; CHECK:    ir<%11> = load from index 0
-; CHECK:    ir<%13> = load from index 1
+; CHECK:    ir<%13> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%11> to index 0
-; CHECK:    store ir<%13> to index 1
+; CHECK:    store ir<%13> to index 1 (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK:  Cost for VF 4: 37 (Estimated cost per lane: 9.25)
 ; CHECK:  Cost of 26 for VF 8: INTERLEAVE-GROUP with factor 4, ir<%10>
 ; CHECK:    ir<%11> = load from index 0
-; CHECK:    ir<%13> = load from index 1
+; CHECK:    ir<%13> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 8: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%11> to index 0
-; CHECK:    store ir<%13> to index 1
+; CHECK:    store ir<%13> to index 1 (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK:  Cost for VF 8: 41 (Estimated cost per lane: 5.13)
 ; CHECK:  Cost of 68 for VF 16: INTERLEAVE-GROUP with factor 4, ir<%10>
 ; CHECK:    ir<%11> = load from index 0
-; CHECK:    ir<%13> = load from index 1
+; CHECK:    ir<%13> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 16: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%11> to index 0
-; CHECK:    store ir<%13> to index 1
+; CHECK:    store ir<%13> to index 1 (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK:  Cost for VF 16: 82 (Estimated cost per lane: 5.13)
 ; CHECK:  LV: Selecting VF: 8.
 ;
@@ -2089,43 +2089,43 @@ define hidden void @scale_uv_row_down2_box(ptr nocapture noundef readonly %0, i3
 ; CHECK:    ir<%14> = load from index 0
 ; CHECK:    ir<%32> = load from index 1
 ; CHECK:    ir<%17> = load from index 2
-; CHECK:    ir<%35> = load from index 3
+; CHECK:    ir<%35> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%19>
 ; CHECK:    ir<%20> = load from index 0
 ; CHECK:    ir<%38> = load from index 1
 ; CHECK:    ir<%23> = load from index 2
-; CHECK:    ir<%41> = load from index 3
+; CHECK:    ir<%41> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%30> to index 0
-; CHECK:    store ir<%48> to index 1
+; CHECK:    store ir<%48> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 75 (Estimated cost per lane: 18.8)
 ; CHECK:  Cost of 26 for VF 8: INTERLEAVE-GROUP with factor 4, vp<%next.gep>
 ; CHECK:    ir<%14> = load from index 0
 ; CHECK:    ir<%32> = load from index 1
 ; CHECK:    ir<%17> = load from index 2
-; CHECK:    ir<%35> = load from index 3
+; CHECK:    ir<%35> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 26 for VF 8: INTERLEAVE-GROUP with factor 4, ir<%19>
 ; CHECK:    ir<%20> = load from index 0
 ; CHECK:    ir<%38> = load from index 1
 ; CHECK:    ir<%23> = load from index 2
-; CHECK:    ir<%41> = load from index 3
+; CHECK:    ir<%41> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 8: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%30> to index 0
-; CHECK:    store ir<%48> to index 1
+; CHECK:    store ir<%48> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 8: 91 (Estimated cost per lane: 11.4)
 ; CHECK:  Cost of 132 for VF 16: INTERLEAVE-GROUP with factor 4, vp<%next.gep>
 ; CHECK:    ir<%14> = load from index 0
 ; CHECK:    ir<%32> = load from index 1
 ; CHECK:    ir<%17> = load from index 2
-; CHECK:    ir<%35> = load from index 3
+; CHECK:    ir<%35> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 132 for VF 16: INTERLEAVE-GROUP with factor 4, ir<%19>
 ; CHECK:    ir<%20> = load from index 0
 ; CHECK:    ir<%38> = load from index 1
 ; CHECK:    ir<%23> = load from index 2
-; CHECK:    ir<%41> = load from index 3
+; CHECK:    ir<%41> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 16: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%30> to index 0
-; CHECK:    store ir<%48> to index 1
+; CHECK:    store ir<%48> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 16: 324 (Estimated cost per lane: 20.3)
 ; CHECK:  LV: Selecting VF: 8.
 ;
@@ -2204,28 +2204,28 @@ define hidden void @scale_uv_row_down2_linear(ptr nocapture noundef readonly %0,
 ; CHECK:    ir<%10> = load from index 0
 ; CHECK:    ir<%20> = load from index 1
 ; CHECK:    ir<%13> = load from index 2
-; CHECK:    ir<%23> = load from index 3
+; CHECK:    ir<%23> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%18> to index 0
-; CHECK:    store ir<%28> to index 1
+; CHECK:    store ir<%28> to index 1 (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK:  Cost for VF 4: 49 (Estimated cost per lane: 12.3)
 ; CHECK:  Cost of 26 for VF 8: INTERLEAVE-GROUP with factor 4, vp<%next.gep>
 ; CHECK:    ir<%10> = load from index 0
 ; CHECK:    ir<%20> = load from index 1
 ; CHECK:    ir<%13> = load from index 2
-; CHECK:    ir<%23> = load from index 3
+; CHECK:    ir<%23> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 8: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%18> to index 0
-; CHECK:    store ir<%28> to index 1
+; CHECK:    store ir<%28> to index 1 (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK:  Cost for VF 8: 57 (Estimated cost per lane: 7.13)
 ; CHECK:  Cost of 132 for VF 16: INTERLEAVE-GROUP with factor 4, vp<%next.gep>
 ; CHECK:    ir<%10> = load from index 0
 ; CHECK:    ir<%20> = load from index 1
 ; CHECK:    ir<%13> = load from index 2
-; CHECK:    ir<%23> = load from index 3
+; CHECK:    ir<%23> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 16: INTERLEAVE-GROUP with factor 2, vp<%next.gep>.1
 ; CHECK:    store ir<%18> to index 0
-; CHECK:    store ir<%28> to index 1
+; CHECK:    store ir<%28> to index 1 (!alias.scope !tmp1, !noalias !tmp0)
 ; CHECK:  Cost for VF 16: 176 (Estimated cost per lane: 11)
 ; CHECK:  LV: Selecting VF: 8.
 ;
@@ -2273,23 +2273,23 @@ define hidden void @two_floats_same_op(ptr noundef readonly captures(none) %a, p
 ; CHECK:  LV: Scalar loop costs: 14.
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%mul> to index 0
-; CHECK:    store ir<%mul8> to index 1
+; CHECK:    store ir<%mul8> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 29 (Estimated cost per lane: 14.5)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%mul> to index 0
-; CHECK:    store ir<%mul8> to index 1
+; CHECK:    store ir<%mul8> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 26 (Estimated cost per lane: 6.5)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2326,23 +2326,23 @@ define hidden void @two_floats_vary_op(ptr noundef readonly captures(none) %a, p
 ; CHECK:  LV: Scalar loop costs: 14.
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%add> to index 0
-; CHECK:    store ir<%sub> to index 1
+; CHECK:    store ir<%sub> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 29 (Estimated cost per lane: 14.5)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%add> to index 0
-; CHECK:    store ir<%sub> to index 1
+; CHECK:    store ir<%sub> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 26 (Estimated cost per lane: 6.5)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2377,23 +2377,23 @@ for.body:
 define hidden void @two_bytes_two_floats_same_op(ptr noundef readonly captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef writeonly captures(none) %res, i32 noundef %N) {
 ; CHECK-LABEL: 'two_bytes_two_floats_same_op'
 ; CHECK:  LV: Scalar loop costs: 18.
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9>
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9> (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%mul11> to index 1
 ; CHECK:  Cost for VF 2: 52 (Estimated cost per lane: 26)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
-; CHECK:    store ir<%mul11> to index 1
+; CHECK:    store ir<%mul11> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 48 (Estimated cost per lane: 12)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2432,23 +2432,23 @@ for.body:
 define hidden void @two_bytes_two_floats_vary_op(ptr noundef readonly captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef writeonly captures(none) %res, i32 noundef %N) {
 ; CHECK-LABEL: 'two_bytes_two_floats_vary_op'
 ; CHECK:  LV: Scalar loop costs: 18.
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9>
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9> (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%add> to index 0
 ; CHECK:    store ir<%sub> to index 1
 ; CHECK:  Cost for VF 2: 52 (Estimated cost per lane: 26)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%add> to index 0
-; CHECK:    store ir<%sub> to index 1
+; CHECK:    store ir<%sub> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 48 (Estimated cost per lane: 12)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2489,7 +2489,7 @@ define hidden void @two_floats_two_bytes_same_op(ptr noundef readonly captures(n
 ; CHECK:  LV: Scalar loop costs: 16.
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
@@ -2498,13 +2498,13 @@ define hidden void @two_floats_two_bytes_same_op(ptr noundef readonly captures(n
 ; CHECK:  Cost for VF 2: 47 (Estimated cost per lane: 23.5)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
-; CHECK:    store ir<%conv9> to index 1
+; CHECK:    store ir<%conv9> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 43 (Estimated cost per lane: 10.8)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2543,7 +2543,7 @@ define hidden void @two_floats_two_bytes_vary_op(ptr noundef readonly captures(n
 ; CHECK:  LV: Scalar loop costs: 16.
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
@@ -2552,13 +2552,13 @@ define hidden void @two_floats_two_bytes_vary_op(ptr noundef readonly captures(n
 ; CHECK:  Cost for VF 2: 47 (Estimated cost per lane: 23.5)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
-; CHECK:    store ir<%conv8> to index 1
+; CHECK:    store ir<%conv8> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 43 (Estimated cost per lane: 10.8)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2597,23 +2597,23 @@ define hidden void @two_shorts_two_floats_same_op(ptr noundef readonly captures(
 ; CHECK:  LV: Scalar loop costs: 18.
 ; CHECK:  Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
-; CHECK:    store ir<%mul11> to index 1
+; CHECK:    store ir<%mul11> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 45 (Estimated cost per lane: 22.5)
 ; CHECK:  Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
-; CHECK:    store ir<%mul11> to index 1
+; CHECK:    store ir<%mul11> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 36 (Estimated cost per lane: 9)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2654,23 +2654,23 @@ define hidden void @two_shorts_two_floats_vary_op(ptr noundef readonly captures(
 ; CHECK:  LV: Scalar loop costs: 18.
 ; CHECK:  Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%add> to index 0
-; CHECK:    store ir<%sub> to index 1
+; CHECK:    store ir<%sub> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 45 (Estimated cost per lane: 22.5)
 ; CHECK:  Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx4>
 ; CHECK:    store ir<%add> to index 0
-; CHECK:    store ir<%sub> to index 1
+; CHECK:    store ir<%sub> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 36 (Estimated cost per lane: 9)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2711,23 +2711,23 @@ define hidden void @two_floats_two_shorts_same_op(ptr noundef readonly captures(
 ; CHECK:  LV: Scalar loop costs: 16.
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
-; CHECK:    store ir<%conv9> to index 1
+; CHECK:    store ir<%conv9> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 41 (Estimated cost per lane: 20.5)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
-; CHECK:    store ir<%conv9> to index 1
+; CHECK:    store ir<%conv9> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 35 (Estimated cost per lane: 8.75)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2766,23 +2766,23 @@ define hidden void @two_floats_two_shorts_vary_op(ptr noundef readonly captures(
 ; CHECK:  LV: Scalar loop costs: 16.
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
-; CHECK:    store ir<%conv8> to index 1
+; CHECK:    store ir<%conv8> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 41 (Estimated cost per lane: 20.5)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
-; CHECK:    ir<%2> = load from index 1
+; CHECK:    ir<%2> = load from index 1 (!alias.scope !tmp0)
 ; CHECK:  Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
-; CHECK:    ir<%3> = load from index 1
+; CHECK:    ir<%3> = load from index 1 (!alias.scope !tmp1)
 ; CHECK:  Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 2, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
-; CHECK:    store ir<%conv8> to index 1
+; CHECK:    store ir<%conv8> to index 1 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 35 (Estimated cost per lane: 8.75)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -2823,17 +2823,17 @@ define hidden void @four_floats_same_op(ptr noundef readonly captures(none) %a,
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%mul8> to index 1
 ; CHECK:    store ir<%mul14> to index 2
-; CHECK:    store ir<%mul20> to index 3
+; CHECK:    store ir<%mul20> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 54 (Estimated cost per lane: 27)
 ; CHECK:  Cost for VF 4: 12 (Estimated cost per lane: 3)
 ; CHECK:  LV: Selecting VF: 4.
@@ -2887,33 +2887,33 @@ define hidden void @four_floats_vary_op(ptr noundef readonly captures(none) %a,
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%add> to index 0
 ; CHECK:    store ir<%sub> to index 1
 ; CHECK:    store ir<%mul> to index 2
-; CHECK:    store ir<%div> to index 3
+; CHECK:    store ir<%div> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 54 (Estimated cost per lane: 27)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%add> to index 0
 ; CHECK:    store ir<%sub> to index 1
 ; CHECK:    store ir<%mul> to index 2
-; CHECK:    store ir<%div> to index 3
+; CHECK:    store ir<%div> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 120 (Estimated cost per lane: 30)
 ; CHECK:  LV: Selecting VF: 1.
 ;
@@ -2962,14 +2962,14 @@ for.body:
 define hidden void @four_bytes_four_floats_same_op(ptr noundef readonly captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef writeonly captures(none) %res, i32 noundef %N) {
 ; CHECK-LABEL: 'four_bytes_four_floats_same_op'
 ; CHECK:  LV: Scalar loop costs: 32.
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%4> = load ir<%z>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%5> = load ir<%z17>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%6> = load ir<%w>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%7> = load ir<%w25>
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%4> = load ir<%z> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%5> = load ir<%z17> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%6> = load ir<%w> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%7> = load ir<%w25> (!alias.scope !tmp1)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%mul11> to index 1
@@ -2980,17 +2980,17 @@ define hidden void @four_bytes_four_floats_same_op(ptr noundef readonly captures
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%mul11> to index 1
 ; CHECK:    store ir<%mul19> to index 2
-; CHECK:    store ir<%mul27> to index 3
+; CHECK:    store ir<%mul27> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 108 (Estimated cost per lane: 27)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -3047,14 +3047,14 @@ for.body:
 define hidden void @four_bytes_four_floats_vary_op(ptr noundef readonly captures(none) %a, ptr noundef readonly captures(none) %b, ptr noundef writeonly captures(none) %res, i32 noundef %N) {
 ; CHECK-LABEL: 'four_bytes_four_floats_vary_op'
 ; CHECK:  LV: Scalar loop costs: 32.
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%4> = load ir<%z>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%5> = load ir<%z16>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%6> = load ir<%w>
-; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%7> = load ir<%w23>
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%0> = load ir<%arrayidx> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%1> = load ir<%arrayidx1> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%2> = load ir<%y> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%3> = load ir<%y9> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%4> = load ir<%z> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%5> = load ir<%z16> (!alias.scope !tmp1)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%6> = load ir<%w> (!alias.scope !tmp0)
+; CHECK:  Cost of 6 for VF 2: REPLICATE ir<%7> = load ir<%w23> (!alias.scope !tmp1)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%add> to index 1
@@ -3065,17 +3065,17 @@ define hidden void @four_bytes_four_floats_vary_op(ptr noundef readonly captures
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%add> to index 1
 ; CHECK:    store ir<%div> to index 2
-; CHECK:    store ir<%sub> to index 3
+; CHECK:    store ir<%sub> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 108 (Estimated cost per lane: 27)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -3136,7 +3136,7 @@ define hidden void @four_floats_four_bytes_same_op(ptr noundef readonly captures
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
@@ -3151,17 +3151,17 @@ define hidden void @four_floats_four_bytes_same_op(ptr noundef readonly captures
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
 ; CHECK:    store ir<%conv9> to index 1
 ; CHECK:    store ir<%conv16> to index 2
-; CHECK:    store ir<%conv23> to index 3
+; CHECK:    store ir<%conv23> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 126 (Estimated cost per lane: 31.5)
 ; CHECK:  LV: Selecting VF: 1.
 ;
@@ -3218,7 +3218,7 @@ define hidden void @four_floats_four_bytes_vary_op(ptr noundef readonly captures
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
@@ -3233,17 +3233,17 @@ define hidden void @four_floats_four_bytes_vary_op(ptr noundef readonly captures
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
 ; CHECK:    store ir<%conv8> to index 1
 ; CHECK:    store ir<%conv14> to index 2
-; CHECK:    store ir<%conv20> to index 3
+; CHECK:    store ir<%conv20> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 126 (Estimated cost per lane: 31.5)
 ; CHECK:  LV: Selecting VF: 1.
 ;
@@ -3300,33 +3300,33 @@ define hidden void @four_shorts_four_floats_same_op(ptr noundef readonly capture
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%mul11> to index 1
 ; CHECK:    store ir<%mul19> to index 2
-; CHECK:    store ir<%mul27> to index 3
+; CHECK:    store ir<%mul27> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 78 (Estimated cost per lane: 39)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%mul11> to index 1
 ; CHECK:    store ir<%mul19> to index 2
-; CHECK:    store ir<%mul27> to index 3
+; CHECK:    store ir<%mul27> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 100 (Estimated cost per lane: 25)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -3387,33 +3387,33 @@ define hidden void @four_shorts_four_floats_vary_op(ptr noundef readonly capture
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%add> to index 1
 ; CHECK:    store ir<%div> to index 2
-; CHECK:    store ir<%sub> to index 3
+; CHECK:    store ir<%sub> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 78 (Estimated cost per lane: 39)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx4>
 ; CHECK:    store ir<%mul> to index 0
 ; CHECK:    store ir<%add> to index 1
 ; CHECK:    store ir<%div> to index 2
-; CHECK:    store ir<%sub> to index 3
+; CHECK:    store ir<%sub> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 100 (Estimated cost per lane: 25)
 ; CHECK:  LV: Selecting VF: 4.
 ;
@@ -3474,33 +3474,33 @@ define hidden void @four_floats_four_shorts_same_op(ptr noundef readonly capture
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
 ; CHECK:    store ir<%conv9> to index 1
 ; CHECK:    store ir<%conv16> to index 2
-; CHECK:    store ir<%conv23> to index 3
+; CHECK:    store ir<%conv23> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 74 (Estimated cost per lane: 37)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
 ; CHECK:    store ir<%conv9> to index 1
 ; CHECK:    store ir<%conv16> to index 2
-; CHECK:    store ir<%conv23> to index 3
+; CHECK:    store ir<%conv23> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 118 (Estimated cost per lane: 29.5)
 ; CHECK:  LV: Selecting VF: 1.
 ;
@@ -3557,33 +3557,33 @@ define hidden void @four_floats_four_shorts_vary_op(ptr noundef readonly capture
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
 ; CHECK:    store ir<%conv8> to index 1
 ; CHECK:    store ir<%conv14> to index 2
-; CHECK:    store ir<%conv20> to index 3
+; CHECK:    store ir<%conv20> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 2: 74 (Estimated cost per lane: 37)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx>
 ; CHECK:    ir<%0> = load from index 0
 ; CHECK:    ir<%2> = load from index 1
 ; CHECK:    ir<%4> = load from index 2
-; CHECK:    ir<%6> = load from index 3
+; CHECK:    ir<%6> = load from index 3 (!alias.scope !tmp0)
 ; CHECK:  Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx1>
 ; CHECK:    ir<%1> = load from index 0
 ; CHECK:    ir<%3> = load from index 1
 ; CHECK:    ir<%5> = load from index 2
-; CHECK:    ir<%7> = load from index 3
+; CHECK:    ir<%7> = load from index 3 (!alias.scope !tmp1)
 ; CHECK:  Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4, ir<%arrayidx3>
 ; CHECK:    store ir<%conv> to index 0
 ; CHECK:    store ir<%conv8> to index 1
 ; CHECK:    store ir<%conv14> to index 2
-; CHECK:    store ir<%conv20> to index 3
+; CHECK:    store ir<%conv20> to index 3 (!alias.scope !tmp2, !noalias !tmp3)
 ; CHECK:  Cost for VF 4: 118 (Estimated cost per lane: 29.5)
 ; CHECK:  LV: Selecting VF: 1.
 ;
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll
index 9cb0e482da47c..c0b62452fcb45 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF [0-9]+ For instruction:\s*%valB.loaded = load i16, ptr %inB, align 2" --filter "Cost of [0-9]+(.[0-9]+)? for VF [0-9]+: .* ir<%valB.loaded> = load"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
@@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu"
 define void @test(ptr %B) {
 ; SSE-LABEL: 'test'
 ; SSE:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2
-; SSE:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
+; SSE:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
 ;
 ; AVX1-LABEL: 'test'
 ; AVX1:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2
-; AVX1:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX1:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX1:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX1:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX1:  Cost of 3000000 for VF 32: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
+; AVX1:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX1:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX1:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX1:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX1:  Cost of 3000000 for VF 32: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
 ;
 ; AVX2-LABEL: 'test'
 ; AVX2:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2
-; AVX2:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX2:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX2:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX2:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; AVX2:  Cost of 3000000 for VF 32: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
+; AVX2:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX2:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX2:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX2:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; AVX2:  Cost of 3000000 for VF 32: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
 ;
 ; AVX512-LABEL: 'test'
 ; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2
-; AVX512:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX512:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 2 for VF 64: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX512:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 2 for VF 64: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll
index fc42ce6e6f73f..4e3dd44c369e8 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF [0-9]+ For instruction:\s*%valB.loaded = load i32, ptr %inB, align 4" --filter "Cost of [0-9]+(.[0-9]+)? for VF [0-9]+: .* ir<%valB.loaded> = load"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
@@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu"
 define void @test(ptr %B) {
 ; SSE-LABEL: 'test'
 ; SSE:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4
-; SSE:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
+; SSE:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
 ;
 ; AVX1-LABEL: 'test'
 ; AVX1:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4
-; AVX1:  Cost of 3 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX1:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX1:  Cost of 2 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX1:  Cost of 4 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX1:  Cost of 8 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX1:  Cost of 3 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 2 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 4 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 8 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 ; AVX2-LABEL: 'test'
 ; AVX2:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4
-; AVX2:  Cost of 3 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX2:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX2:  Cost of 2 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX2:  Cost of 4 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX2:  Cost of 8 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX2:  Cost of 3 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 2 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 4 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 8 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 ; AVX512-LABEL: 'test'
 ; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4
-; AVX512:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 2 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 4 for VF 64: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX512:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 2 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 4 for VF 64: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll
index 48c9b01beb888..c9719445ca77c 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF [0-9]+ For instruction:\s*%valB.loaded = load i64, ptr %inB, align 8" --filter "Cost of [0-9]+(.[0-9]+)? for VF [0-9]+: .* ir<%valB.loaded> = load"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
@@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu"
 define void @test(ptr %B) {
 ; SSE-LABEL: 'test'
 ; SSE:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8
-; SSE:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
-; SSE:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V)
+; SSE:  Cost of 3000000 for VF 2: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 4: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 8: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
+; SSE:  Cost of 3000000 for VF 16: REPLICATE ir<%valB.loaded> = load ir<%inB> (S->V) (!alias.scope !tmp1)
 ;
 ; AVX1-LABEL: 'test'
 ; AVX1:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8
-; AVX1:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX1:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX1:  Cost of 4 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX1:  Cost of 8 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX1:  Cost of 16 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX1:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 4 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 8 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX1:  Cost of 16 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 ; AVX2-LABEL: 'test'
 ; AVX2:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8
-; AVX2:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX2:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX2:  Cost of 4 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX2:  Cost of 8 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX2:  Cost of 16 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX2:  Cost of 2 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 2 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 4 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 8 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX2:  Cost of 16 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 ; AVX512-LABEL: 'test'
 ; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8
-; AVX512:  Cost of 1 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 1 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 2 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 4 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
-; AVX512:  Cost of 8 for VF 64: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad>
+; AVX512:  Cost of 1 for VF 2: WIDEN ir<%valB.loaded> = load vp<[[VP6:%[0-9]+]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 4: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 1 for VF 8: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 2 for VF 16: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 4 for VF 32: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
+; AVX512:  Cost of 8 for VF 64: WIDEN ir<%valB.loaded> = load vp<[[VP6]]>, ir<%canLoad> (!alias.scope !tmp1)
 ;
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll
index c822598977704..7a437ee6b1775 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF [0-9]+ For instruction:\s*%valB.loaded = load i8, ptr %inB, align 1" --filter "Cost of [0-9]+(.[0-9]+)? for VF [0-9]+: .* ir<%valB.loaded> = load"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i16.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i16.ll
index 61436a61dba50..d3e290e9345d0 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i16.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i16.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF 1 For instruction:\s*store i16 %valB, ptr %out" --filter "Cost of [1-9][0-9]*(.[0-9]+)? for VF [0-9]+: (profitable to scalarize\s+store i16 %valB|WIDEN store .*, ir<%valB>|REPLICATE store ir<%valB>)"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
@@ -40,12 +40,12 @@ define void @test(ptr %C) {
 ;
 ; AVX512-LABEL: 'test'
 ; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %valB, ptr %out, align 2
-; AVX512:  Cost of 2 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 2 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 2 for VF 64: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX512:  Cost of 2 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 2 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 2 for VF 64: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i32.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i32.ll
index 0afea8d1664d5..20293fbfd9e0e 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i32.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i32.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF 1 For instruction:\s*store i32 %valB, ptr %out" --filter "Cost of [1-9][0-9]*(.[0-9]+)? for VF [0-9]+: (profitable to scalarize\s+store i32 %valB|WIDEN store .*, ir<%valB>|REPLICATE store ir<%valB>)"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE42
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE42
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
@@ -31,28 +31,28 @@ define void @test(ptr %C) {
 ;
 ; AVX1-LABEL: 'test'
 ; AVX1:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %valB, ptr %out, align 4
-; AVX1:  Cost of 9 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 8 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 16 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 32 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX1:  Cost of 9 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 8 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 16 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 32 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 ; AVX2-LABEL: 'test'
 ; AVX2:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %valB, ptr %out, align 4
-; AVX2:  Cost of 9 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 8 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 16 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 32 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX2:  Cost of 9 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 8 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 16 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 32 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 ; AVX512-LABEL: 'test'
 ; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %valB, ptr %out, align 4
-; AVX512:  Cost of 2 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 2 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 4 for VF 64: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX512:  Cost of 2 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 2 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 4 for VF 64: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i64.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i64.ll
index ce2d69fca6a3b..2042bcb39b9db 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i64.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i64.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF 1 For instruction:\s*store i64 %valB, ptr %out" --filter "Cost of [1-9][0-9]*(.[0-9]+)? for VF [0-9]+: (profitable to scalarize\s+store i64 %valB|WIDEN store .*, ir<%valB>|REPLICATE store ir<%valB>)"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE42
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE42
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 
@@ -31,28 +31,28 @@ define void @test(ptr %C) {
 ;
 ; AVX1-LABEL: 'test'
 ; AVX1:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %valB, ptr %out, align 8
-; AVX1:  Cost of 8 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 16 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 32 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX1:  Cost of 64 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX1:  Cost of 8 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 16 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 32 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX1:  Cost of 64 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 ; AVX2-LABEL: 'test'
 ; AVX2:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %valB, ptr %out, align 8
-; AVX2:  Cost of 8 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 16 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 32 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX2:  Cost of 64 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX2:  Cost of 8 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 8 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 16 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 32 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX2:  Cost of 64 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 ; AVX512-LABEL: 'test'
 ; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %valB, ptr %out, align 8
-; AVX512:  Cost of 1 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 1 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 2 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 4 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
-; AVX512:  Cost of 8 for VF 64: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore>
+; AVX512:  Cost of 1 for VF 2: WIDEN store vp<[[VP7:%[0-9]+]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 4: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 1 for VF 8: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 2 for VF 16: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 4 for VF 32: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
+; AVX512:  Cost of 8 for VF 64: WIDEN store vp<[[VP7]]>, ir<%valB>, ir<%canStore> (!alias.scope !tmp2, !noalias !tmp3)
 ;
 entry:
   br label %for.body
diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i8.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i8.ll
index 9028e1c5525a0..16a7768bbc302 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i8.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i8.ll
@@ -1,10 +1,10 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+(.[0-9]+)? for VF 1 For instruction:\s*store i8 %valB, ptr %out" --filter "Cost of [1-9][0-9]*(.[0-9]+)? for VF [0-9]+: (profitable to scalarize\s+store i8 %valB|WIDEN store .*, ir<%valB>|REPLICATE store ir<%valB>)"
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=SSE42
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
-; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output -vplan-print-metadata=false < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE42
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX1
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2
+; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX512
 
 ; REQUIRES: asserts
 



More information about the llvm-commits mailing list