[llvm] [llvm] Update tests to use struct path TBAA (PR #226051)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 24 02:54:41 PDT 2026
https://github.com/nikic updated https://github.com/llvm/llvm-project/pull/226051
>From 6a8a5fad3834e321c53d2dacb651684339c39463 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Thu, 24 Sep 2026 09:44:05 +0200
Subject: [PATCH 1/2] [llvm] Update tests to use struct path TBAA
The new format was introduced more than a decade ago, so make sure
it's used in tests. The tests currently get away with it due to
a TBAA upgrade applied in the IR parser.
---
llvm/test/CodeGen/AArch64/arm64-abi_align.ll | 6 ++++--
.../CodeGen/AArch64/arm64-ccmp-heuristics.ll | 9 ++++++---
.../CodeGen/AArch64/arm64-fastcc-tailcall.ll | 3 ++-
llvm/test/CodeGen/AArch64/arm64-prefetch-new.ll | 3 ++-
llvm/test/CodeGen/AArch64/arm64-prefetch.ll | 6 ++++--
llvm/test/CodeGen/AArch64/instr-ref-ldv.ll | 3 ++-
.../GlobalISel/legalize-load-memory-metadata.mir | 11 ++++++-----
.../regbankselect-split-scalar-load-metadata.mir | 16 ++++++++++++----
.../CodeGen/AMDGPU/lower-lds-with-alias-scope.ll | 3 ++-
.../CodeGen/AMDGPU/lower-lds-with-noalias.ll | 3 ++-
llvm/test/CodeGen/Hexagon/bugAsmHWloop.ll | 3 ++-
llvm/test/CodeGen/Hexagon/circ_ld.ll | 9 ++++++---
llvm/test/CodeGen/Hexagon/cmpb-eq.ll | 3 ++-
llvm/test/CodeGen/Hexagon/early-if-spare.ll | 3 ++-
llvm/test/CodeGen/Hexagon/hwloop-preh.ll | 3 ++-
llvm/test/CodeGen/Hexagon/insert4.ll | 6 ++++--
llvm/test/CodeGen/Hexagon/mux-basic.ll | 3 ++-
llvm/test/CodeGen/Hexagon/pic-simple.ll | 3 ++-
llvm/test/CodeGen/Hexagon/pic-static.ll | 6 ++++--
llvm/test/CodeGen/Hexagon/predicate-logical.ll | 3 ++-
llvm/test/CodeGen/Hexagon/rdf-copy.ll | 3 ++-
llvm/test/CodeGen/Hexagon/sdata-basic.ll | 3 ++-
llvm/test/CodeGen/Hexagon/store-widen.ll | 3 ++-
llvm/test/CodeGen/Hexagon/swp-stages4.ll | 3 ++-
llvm/test/CodeGen/Hexagon/swp-stages5.ll | 3 ++-
llvm/test/CodeGen/Hexagon/vect/vect-vshifts.ll | 3 ++-
llvm/test/CodeGen/PowerPC/aa-tbaa.ll | 6 ++++--
llvm/test/CodeGen/SystemZ/alias-01.ll | 6 ++++--
.../CodeGen/X86/merge_store_duplicated_loads.ll | 14 ++++++++------
llvm/test/Transforms/GVN/opt-remarks.ll | 3 ++-
llvm/test/Transforms/GVN/tbaa.ll | 3 ++-
llvm/test/Transforms/GVNSink/sink-common-code.ll | 6 ++++--
llvm/test/Transforms/InstCombine/store.ll | 3 ++-
.../LoopStrengthReduce/AArch64/lsr-memset.ll | 6 ++++--
...narrow-interleave-to-widen-memory-metadata.ll | 6 ++++--
llvm/test/Transforms/LoopVectorize/metadata.ll | 3 ++-
.../preserve-store-metadata.ll | 5 +++--
llvm/test/Transforms/NewGVN/tbaa.ll | 3 ++-
.../X86/relative_lookup_table.ll | 3 ++-
.../Transforms/SLPVectorizer/X86/metadata.ll | 3 ++-
llvm/test/Transforms/SROA/tbaa-struct2.ll | 8 ++++++--
.../Transforms/Scalarizer/basic-inseltpoison.ll | 6 ++++--
llvm/test/Transforms/Scalarizer/basic.ll | 6 ++++--
.../SimplifyCFG/X86/sink-common-code.ll | 6 ++++--
llvm/test/Transforms/SimplifyCFG/basictest.ll | 3 ++-
llvm/test/Transforms/VectorCombine/alias.ll | 3 ++-
46 files changed, 149 insertions(+), 76 deletions(-)
diff --git a/llvm/test/CodeGen/AArch64/arm64-abi_align.ll b/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
index 4a36721a91e25..fc3f9c267e81f 100644
--- a/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
@@ -514,8 +514,10 @@ attributes #3 = { nounwind }
attributes #4 = { nounwind }
attributes #5 = { nobuiltin }
-!0 = !{!"int", !1}
+!0 = !{!5, !5, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
-!3 = !{!"short", !1}
+!3 = !{!6, !6, i64 0}
!4 = !{i64 0, i64 4, !0, i64 4, i64 2, !3, i64 8, i64 4, !0, i64 12, i64 2, !3, i64 16, i64 4, !0, i64 20, i64 2, !3}
+!5 = !{!"int", !1}
+!6 = !{!"short", !1}
diff --git a/llvm/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll b/llvm/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll
index 358a2c3404815..a65a08b6e8b27 100644
--- a/llvm/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll
@@ -184,7 +184,10 @@ declare hidden fastcc i32 @Maze1Mech(i64, i64, i64, i64, i64, i32, i32) nounwind
; Materializable
declare hidden fastcc void @CleanNet(i64) nounwind ssp
-!0 = !{!"long", !1}
-!1 = !{!"omnipotent char", !2}
+!0 = !{!4, !4, i64 0}
+!1 = !{!5, !5, i64 0}
!2 = !{!"Simple C/C++ TBAA"}
-!3 = !{!"any pointer", !1}
+!3 = !{!6, !6, i64 0}
+!4 = !{!"long", !5}
+!5 = !{!"omnipotent char", !2}
+!6 = !{!"any pointer", !5}
diff --git a/llvm/test/CodeGen/AArch64/arm64-fastcc-tailcall.ll b/llvm/test/CodeGen/AArch64/arm64-fastcc-tailcall.ll
index 8ef31720806f1..bf6c7d1909dae 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fastcc-tailcall.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fastcc-tailcall.ll
@@ -19,6 +19,7 @@ define internal fastcc void @callee(ptr nocapture %p, i32 %a) nounwind optsize n
ret void
}
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/AArch64/arm64-prefetch-new.ll b/llvm/test/CodeGen/AArch64/arm64-prefetch-new.ll
index da7d74afe56be..06df6ad50f465 100644
--- a/llvm/test/CodeGen/AArch64/arm64-prefetch-new.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-prefetch-new.ll
@@ -61,7 +61,8 @@ declare void @llvm.aarch64.prefetch(ptr readonly, i32 immarg, i32 immarg, i32 im
attributes #0 = { inaccessiblemem_or_argmemonly nounwind willreturn }
-!0 = !{!"int", !1}
+!0 = !{!4, !4, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
!3 = !{!"any pointer", !1}
+!4 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/AArch64/arm64-prefetch.ll b/llvm/test/CodeGen/AArch64/arm64-prefetch.ll
index 55652e3de5a17..1407e699ef6b5 100644
--- a/llvm/test/CodeGen/AArch64/arm64-prefetch.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-prefetch.ll
@@ -105,7 +105,9 @@ entry:
declare void @llvm.prefetch(ptr nocapture, i32, i32, i32) nounwind
-!0 = !{!"int", !1}
+!0 = !{!4, !4, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
-!3 = !{!"any pointer", !1}
+!3 = !{!5, !5, i64 0}
+!4 = !{!"int", !1}
+!5 = !{!"any pointer", !1}
diff --git a/llvm/test/CodeGen/AArch64/instr-ref-ldv.ll b/llvm/test/CodeGen/AArch64/instr-ref-ldv.ll
index 7d9b495c89dc8..3bdbe4103748f 100644
--- a/llvm/test/CodeGen/AArch64/instr-ref-ldv.ll
+++ b/llvm/test/CodeGen/AArch64/instr-ref-ldv.ll
@@ -68,5 +68,6 @@ cleanup: ; preds = %_ZNK4llvm3opt7ArgLi
!9478 = distinct !DILocation(scope: !9391)
!9480 = !DILocation(scope: !9441, inlinedAt: !9478)
!9527 = !DILocation(scope: !9440, inlinedAt: !9478)
-!9528 = !{!"any pointer", !9530, i64 0}
+!9528 = !{!9533, !9533, i64 0, i64 0}
!9530 = !{}
+!9533 = !{!"any pointer", !9530}
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
index 4b52e96f5a5ef..53684171867e8 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
@@ -28,9 +28,10 @@
}
!0 = !{i24 0, i24 1048575}
- !1 = !{!"omnipotent char", !2}
+ !1 = !{!4, !4, i64 0}
!2 = !{!"Simple C/C++ TBAA"}
!3 = !{i24 0, i24 1048575}
+ !4 = !{!"omnipotent char", !2}
...
# Make sure range metadata is not preserved when widening loads, but
@@ -44,7 +45,7 @@ body: |
; SI: liveins: $vgpr0_vgpr1
; SI-NEXT: {{ $}}
; SI-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
- ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !1, addrspace 1)
+ ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !0, addrspace 1)
; SI-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16777215
; SI-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LOAD]], [[C]]
; SI-NEXT: $vgpr0 = COPY [[AND]](s32)
@@ -65,7 +66,7 @@ body: |
; SI: liveins: $vgpr0_vgpr1
; SI-NEXT: {{ $}}
; SI-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
- ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !1, addrspace 1)
+ ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !0, addrspace 1)
; SI-NEXT: $vgpr0 = COPY [[LOAD]](s32)
%0:_(p1) = COPY $vgpr0_vgpr1
%1:_(s32) = G_LOAD %0 :: (load (s24), align 4, addrspace 1, !range !3, !tbaa !1)
@@ -81,7 +82,7 @@ body: |
; SI: liveins: $vgpr0_vgpr1
; SI-NEXT: {{ $}}
; SI-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
- ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !1, addrspace 1)
+ ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !0, addrspace 1)
; SI-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16777215
; SI-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LOAD]], [[C]]
; SI-NEXT: $vgpr0 = COPY [[AND]](s32)
@@ -102,7 +103,7 @@ body: |
; SI: liveins: $vgpr0_vgpr1
; SI-NEXT: {{ $}}
; SI-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
- ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !1, addrspace 1)
+ ; SI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), !tbaa !0, addrspace 1)
; SI-NEXT: $vgpr0 = COPY [[LOAD]](s32)
%0:_(p1) = COPY $vgpr0_vgpr1
%1:_(s32) = G_LOAD %0 :: (load (s24), align 4, addrspace 1, !tbaa !1)
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
index 0bbafccef1fd8..7d4d5cddbb417 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
@@ -16,9 +16,10 @@
}
!0 = !{i96 0, i96 9223372036854775808}
- !1 = !{!"omnipotent char", !2}
+ !1 = !{!4, !4, i64 0}
!2 = !{!"Simple C/C++ TBAA"}
!3 = !{i32 0, i32 2147483646}
+ !4 = !{!"omnipotent char", !2}
...
# Make sure range metadata is not preserved when widening loads, but
@@ -42,6 +43,13 @@ body: |
; GFX7-NEXT: [[UV:%[0-9]+]]:sgpr(s32), [[UV1:%[0-9]+]]:sgpr(s32) = G_UNMERGE_VALUES [[LOAD]](<2 x s32>)
; GFX7-NEXT: [[BUILD_VECTOR:%[0-9]+]]:sgpr(<3 x s32>) = G_BUILD_VECTOR [[UV]](s32), [[UV1]](s32), [[LOAD1]](s32)
; GFX7-NEXT: $sgpr0_sgpr1_sgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
+ ;
+ ; GFX12-LABEL: name: split_smrd_load_range
+ ; GFX12: liveins: $sgpr0_sgpr1
+ ; GFX12-NEXT: {{ $}}
+ ; GFX12-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1
+ ; GFX12-NEXT: [[LOAD:%[0-9]+]]:sgpr(<3 x s32>) = G_LOAD [[COPY]](p4) :: (load (<3 x s32>) from constant-pool, align 8, !range !4, addrspace 4)
+ ; GFX12-NEXT: $sgpr0_sgpr1_sgpr2 = COPY [[LOAD]](<3 x s32>)
%0:_(p4) = COPY $sgpr0_sgpr1
%1:_(<3 x s32>) = G_LOAD %0 :: (load (<3 x s32>) from constant-pool, align 8, addrspace 4, !range !3)
$sgpr0_sgpr1_sgpr2 = COPY %1
@@ -59,10 +67,10 @@ body: |
; GFX7: liveins: $sgpr0_sgpr1
; GFX7-NEXT: {{ $}}
; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1
- ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sgpr(<2 x s32>) = G_LOAD [[COPY]](p4) :: (load (<2 x s32>) from constant-pool, !tbaa !2, addrspace 4)
+ ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sgpr(<2 x s32>) = G_LOAD [[COPY]](p4) :: (load (<2 x s32>) from constant-pool, !tbaa !1, addrspace 4)
; GFX7-NEXT: [[C:%[0-9]+]]:sgpr(i64) = G_CONSTANT i64 8
; GFX7-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p4) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](i64)
- ; GFX7-NEXT: [[LOAD1:%[0-9]+]]:sgpr(s32) = G_LOAD [[PTR_ADD]](p4) :: (load (s32) from constant-pool + 8, align 8, !tbaa !2, addrspace 4)
+ ; GFX7-NEXT: [[LOAD1:%[0-9]+]]:sgpr(s32) = G_LOAD [[PTR_ADD]](p4) :: (load (s32) from constant-pool + 8, align 8, !tbaa !1, addrspace 4)
; GFX7-NEXT: [[UV:%[0-9]+]]:sgpr(s32), [[UV1:%[0-9]+]]:sgpr(s32) = G_UNMERGE_VALUES [[LOAD]](<2 x s32>)
; GFX7-NEXT: [[BUILD_VECTOR:%[0-9]+]]:sgpr(<3 x s32>) = G_BUILD_VECTOR [[UV]](s32), [[UV1]](s32), [[LOAD1]](s32)
; GFX7-NEXT: $sgpr0_sgpr1_sgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
@@ -71,7 +79,7 @@ body: |
; GFX12: liveins: $sgpr0_sgpr1
; GFX12-NEXT: {{ $}}
; GFX12-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1
- ; GFX12-NEXT: [[LOAD:%[0-9]+]]:sgpr(<3 x s32>) = G_LOAD [[COPY]](p4) :: (load (<3 x s32>) from constant-pool, align 8, !tbaa !2, addrspace 4)
+ ; GFX12-NEXT: [[LOAD:%[0-9]+]]:sgpr(<3 x s32>) = G_LOAD [[COPY]](p4) :: (load (<3 x s32>) from constant-pool, align 8, !tbaa !1, addrspace 4)
; GFX12-NEXT: $sgpr0_sgpr1_sgpr2 = COPY [[LOAD]](<3 x s32>)
%0:_(p4) = COPY $sgpr0_sgpr1
%1:_(<3 x s32>) = G_LOAD %0 :: (load (<3 x s32>) from constant-pool, align 8, addrspace 4, !tbaa !1)
diff --git a/llvm/test/CodeGen/AMDGPU/lower-lds-with-alias-scope.ll b/llvm/test/CodeGen/AMDGPU/lower-lds-with-alias-scope.ll
index e14ee60611236..7daee933f96c1 100644
--- a/llvm/test/CodeGen/AMDGPU/lower-lds-with-alias-scope.ll
+++ b/llvm/test/CodeGen/AMDGPU/lower-lds-with-alias-scope.ll
@@ -44,7 +44,7 @@ bb:
ret void
}
- !0 = !{!"omnipotent char", !1, i64 0}
+ !0 = !{!8, !8, i64 0, i64 0}
!1 = !{!1}
!2 = !{!3}
!3 = distinct !{!3, !4}
@@ -52,3 +52,4 @@ bb:
!5 = !{!3}
!6 = !{!7}
!7 = !{!7, !4}
+ !8 = !{!"omnipotent char", !1}
diff --git a/llvm/test/CodeGen/AMDGPU/lower-lds-with-noalias.ll b/llvm/test/CodeGen/AMDGPU/lower-lds-with-noalias.ll
index fb17cdb1e4204..b2c13ec965fbe 100644
--- a/llvm/test/CodeGen/AMDGPU/lower-lds-with-noalias.ll
+++ b/llvm/test/CodeGen/AMDGPU/lower-lds-with-noalias.ll
@@ -61,12 +61,13 @@ bb:
ret void
}
- !0 = !{!"omnipotent char", !1, i64 0}
+ !0 = !{!6, !6, i64 0, i64 0}
!1 = !{!1}
!2 = !{!3}
!3 = distinct !{!3, !4}
!4 = distinct !{!4}
!5 = !{!3}
+ !6 = !{!"omnipotent char", !1}
;.
; CHECK: [[TBAA1]] = !{[[META2:![0-9]+]], [[META2]], i64 0, i64 0}
; CHECK: [[META2]] = !{!"omnipotent char", [[META3:![0-9]+]]}
diff --git a/llvm/test/CodeGen/Hexagon/bugAsmHWloop.ll b/llvm/test/CodeGen/Hexagon/bugAsmHWloop.ll
index 2b9fd396ec879..9c00ca3bf7962 100644
--- a/llvm/test/CodeGen/Hexagon/bugAsmHWloop.ll
+++ b/llvm/test/CodeGen/Hexagon/bugAsmHWloop.ll
@@ -63,8 +63,9 @@ declare i64 @llvm.hexagon.A4.combineir(i32, i32) nounwind readnone
declare i32 @llvm.hexagon.A2.combine.ll(i32, i32) nounwind readnone
-!0 = !{!"long", !1}
+!0 = !{!5, !5, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
!3 = !{i32 18362}
!4 = !{i32 18893}
+!5 = !{!"long", !1}
diff --git a/llvm/test/CodeGen/Hexagon/circ_ld.ll b/llvm/test/CodeGen/Hexagon/circ_ld.ll
index a44de2d8f6f3f..71a3046e70119 100644
--- a/llvm/test/CodeGen/Hexagon/circ_ld.ll
+++ b/llvm/test/CodeGen/Hexagon/circ_ld.ll
@@ -115,7 +115,10 @@ entry:
declare ptr @llvm.hexagon.circ.ldw(ptr, ptr, i32, i32) nounwind
-!0 = !{!"omnipotent char", !1}
+!0 = !{!4, !4, i64 0}
!1 = !{!"Simple C/C++ TBAA"}
-!2 = !{!"short", !0}
-!3 = !{!"int", !0}
+!2 = !{!5, !5, i64 0}
+!3 = !{!6, !6, i64 0}
+!4 = !{!"omnipotent char", !1}
+!5 = !{!"short", !4}
+!6 = !{!"int", !4}
diff --git a/llvm/test/CodeGen/Hexagon/cmpb-eq.ll b/llvm/test/CodeGen/Hexagon/cmpb-eq.ll
index d88e11d12ec42..f394eba7bea32 100644
--- a/llvm/test/CodeGen/Hexagon/cmpb-eq.ll
+++ b/llvm/test/CodeGen/Hexagon/cmpb-eq.ll
@@ -49,5 +49,6 @@ if.end21: ; preds = %for.body
br i1 %tobool, label %if.then12.loopexit, label %for.body
}
-!0 = !{!"omnipotent char", !1}
+!0 = !{!2, !2, i64 0}
!1 = !{!"Simple C/C++ TBAA"}
+!2 = !{!"omnipotent char", !1}
diff --git a/llvm/test/CodeGen/Hexagon/early-if-spare.ll b/llvm/test/CodeGen/Hexagon/early-if-spare.ll
index 07497e93dbe5c..9b32600868b5a 100644
--- a/llvm/test/CodeGen/Hexagon/early-if-spare.ll
+++ b/llvm/test/CodeGen/Hexagon/early-if-spare.ll
@@ -53,6 +53,7 @@ declare i32 @bar(ptr) nounwind
attributes #0 = { nounwind "target-cpu"="hexagonv5" }
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/Hexagon/hwloop-preh.ll b/llvm/test/CodeGen/Hexagon/hwloop-preh.ll
index c1a97220fc612..11487b6fa72a2 100644
--- a/llvm/test/CodeGen/Hexagon/hwloop-preh.ll
+++ b/llvm/test/CodeGen/Hexagon/hwloop-preh.ll
@@ -37,8 +37,9 @@ return: ; preds = %return.loopexit, %f
ret i32 %retval.0
}
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
attributes #0 = { nounwind "target-cpu"="hexagonv60" "target-features"="-hvx" }
diff --git a/llvm/test/CodeGen/Hexagon/insert4.ll b/llvm/test/CodeGen/Hexagon/insert4.ll
index 1122b39870366..e11a84d0929d9 100644
--- a/llvm/test/CodeGen/Hexagon/insert4.ll
+++ b/llvm/test/CodeGen/Hexagon/insert4.ll
@@ -106,6 +106,8 @@ declare i64 @llvm.hexagon.A2.vaddhs(i64, i64) #1
attributes #0 = { nounwind "frame-pointer"="non-leaf" "realign-stack" }
attributes #1 = { nounwind readnone }
-!0 = !{!"short", !1}
-!1 = !{!"omnipotent char", !2}
+!0 = !{!3, !3, i64 0}
+!1 = !{!4, !4, i64 0}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"short", !4}
+!4 = !{!"omnipotent char", !2}
diff --git a/llvm/test/CodeGen/Hexagon/mux-basic.ll b/llvm/test/CodeGen/Hexagon/mux-basic.ll
index 0707b744696a7..0cb23d4140d4d 100644
--- a/llvm/test/CodeGen/Hexagon/mux-basic.ll
+++ b/llvm/test/CodeGen/Hexagon/mux-basic.ll
@@ -22,6 +22,7 @@ entry:
ret void
}
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/Hexagon/pic-simple.ll b/llvm/test/CodeGen/Hexagon/pic-simple.ll
index b17dd599effa1..3d9d07cecebe7 100644
--- a/llvm/test/CodeGen/Hexagon/pic-simple.ll
+++ b/llvm/test/CodeGen/Hexagon/pic-simple.ll
@@ -17,6 +17,7 @@ entry:
declare i32 @baz(i32)
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/Hexagon/pic-static.ll b/llvm/test/CodeGen/Hexagon/pic-static.ll
index 8ef75a5f95d94..4d1974975e177 100644
--- a/llvm/test/CodeGen/Hexagon/pic-static.ll
+++ b/llvm/test/CodeGen/Hexagon/pic-static.ll
@@ -15,7 +15,9 @@ entry:
ret i32 %add
}
-!0 = !{!"any pointer", !1}
+!0 = !{!4, !4, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
-!3 = !{!"int", !1}
+!3 = !{!5, !5, i64 0}
+!4 = !{!"any pointer", !1}
+!5 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/Hexagon/predicate-logical.ll b/llvm/test/CodeGen/Hexagon/predicate-logical.ll
index f5217729fe8ec..3d3020cfc8b11 100644
--- a/llvm/test/CodeGen/Hexagon/predicate-logical.ll
+++ b/llvm/test/CodeGen/Hexagon/predicate-logical.ll
@@ -25,6 +25,7 @@ entry:
declare i32 @llvm.hexagon.A2.vcmpwgtu(i64, i64) nounwind readnone
-!0 = !{!"long long", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"long long", !1}
diff --git a/llvm/test/CodeGen/Hexagon/rdf-copy.ll b/llvm/test/CodeGen/Hexagon/rdf-copy.ll
index 36cc0d4facf7c..084cc7e507922 100644
--- a/llvm/test/CodeGen/Hexagon/rdf-copy.ll
+++ b/llvm/test/CodeGen/Hexagon/rdf-copy.ll
@@ -52,6 +52,7 @@ if.end: ; preds = %if.end.loopexit, %e
attributes #0 = { nounwind "target-features"="-packets" }
-!0 = !{!"any pointer", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"any pointer", !1}
diff --git a/llvm/test/CodeGen/Hexagon/sdata-basic.ll b/llvm/test/CodeGen/Hexagon/sdata-basic.ll
index 3234c225e7a49..f626e891d5cf9 100644
--- a/llvm/test/CodeGen/Hexagon/sdata-basic.ll
+++ b/llvm/test/CodeGen/Hexagon/sdata-basic.ll
@@ -11,6 +11,7 @@ entry:
ret i32 %0
}
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/Hexagon/store-widen.ll b/llvm/test/CodeGen/Hexagon/store-widen.ll
index 931adbea00637..abbdeb6266b23 100644
--- a/llvm/test/CodeGen/Hexagon/store-widen.ll
+++ b/llvm/test/CodeGen/Hexagon/store-widen.ll
@@ -13,6 +13,7 @@ entry:
ret void
}
-!0 = !{!"short", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"short", !1}
diff --git a/llvm/test/CodeGen/Hexagon/swp-stages4.ll b/llvm/test/CodeGen/Hexagon/swp-stages4.ll
index fff6fb0177ce2..bab71473d03d5 100644
--- a/llvm/test/CodeGen/Hexagon/swp-stages4.ll
+++ b/llvm/test/CodeGen/Hexagon/swp-stages4.ll
@@ -90,5 +90,6 @@ for.end104:
attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "use-soft-float"="false" }
-!0 = !{!"omnipotent char", !1}
+!0 = !{!2, !2, i64 0}
!1 = !{!"Simple C/C++ TBAA"}
+!2 = !{!"omnipotent char", !1}
diff --git a/llvm/test/CodeGen/Hexagon/swp-stages5.ll b/llvm/test/CodeGen/Hexagon/swp-stages5.ll
index f3bc8891b4202..fef902334e12d 100644
--- a/llvm/test/CodeGen/Hexagon/swp-stages5.ll
+++ b/llvm/test/CodeGen/Hexagon/swp-stages5.ll
@@ -73,5 +73,6 @@ for.end:
attributes #0 = { nounwind }
-!0 = !{!"omnipotent char", !1}
+!0 = !{!2, !2, i64 0}
!1 = !{!"Simple C/C++ TBAA"}
+!2 = !{!"omnipotent char", !1}
diff --git a/llvm/test/CodeGen/Hexagon/vect/vect-vshifts.ll b/llvm/test/CodeGen/Hexagon/vect/vect-vshifts.ll
index de9661e161a9c..19d06993bd096 100644
--- a/llvm/test/CodeGen/Hexagon/vect/vect-vshifts.ll
+++ b/llvm/test/CodeGen/Hexagon/vect/vect-vshifts.ll
@@ -465,6 +465,7 @@ declare i64 @llvm.hexagon.S2.asl.r.vw(i64, i32) #1
attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
-!0 = !{!"int", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
+!3 = !{!"int", !1}
diff --git a/llvm/test/CodeGen/PowerPC/aa-tbaa.ll b/llvm/test/CodeGen/PowerPC/aa-tbaa.ll
index 02f5c39a769a3..1c47953933d63 100644
--- a/llvm/test/CodeGen/PowerPC/aa-tbaa.ll
+++ b/llvm/test/CodeGen/PowerPC/aa-tbaa.ll
@@ -36,6 +36,8 @@ next:
}
!0 = !{ !"root" }
-!1 = !{ !"set1", !0 }
-!2 = !{ !"set2", !0 }
+!1 = !{!3, !3, i64 0}
+!2 = !{!4, !4, i64 0}
+!3 = !{!"set1", !0}
+!4 = !{!"set2", !0}
diff --git a/llvm/test/CodeGen/SystemZ/alias-01.ll b/llvm/test/CodeGen/SystemZ/alias-01.ll
index 79792de99a6b4..92c5826ef1709 100644
--- a/llvm/test/CodeGen/SystemZ/alias-01.ll
+++ b/llvm/test/CodeGen/SystemZ/alias-01.ll
@@ -18,5 +18,7 @@ define void @f1(ptr %src1, ptr %dest) {
}
!0 = !{ !"root" }
-!1 = !{ !"set1", !0 }
-!2 = !{ !"set2", !0 }
+!1 = !{!3, !3, i64 0}
+!2 = !{!4, !4, i64 0}
+!3 = !{!"set1", !0}
+!4 = !{!"set2", !0}
diff --git a/llvm/test/CodeGen/X86/merge_store_duplicated_loads.ll b/llvm/test/CodeGen/X86/merge_store_duplicated_loads.ll
index 70c3e804f1216..d017c063a49dc 100644
--- a/llvm/test/CodeGen/X86/merge_store_duplicated_loads.ll
+++ b/llvm/test/CodeGen/X86/merge_store_duplicated_loads.ll
@@ -15,17 +15,17 @@ define void @merge_double(ptr noalias nocapture %st, ptr noalias nocapture reado
; CHECK-NEXT: movsd %xmm1, 24(%rdi)
; CHECK-NEXT: retq
%ld_idx1 = getelementptr inbounds double, ptr %ld, i64 1
- %ld0 = load double, ptr %ld, align 8, !tbaa !2
- %ld1 = load double, ptr %ld_idx1, align 8, !tbaa !2
+ %ld0 = load double, ptr %ld, align 8, !tbaa !5
+ %ld1 = load double, ptr %ld_idx1, align 8, !tbaa !5
%st_idx1 = getelementptr inbounds double, ptr %st, i64 1
%st_idx2 = getelementptr inbounds double, ptr %st, i64 2
%st_idx3 = getelementptr inbounds double, ptr %st, i64 3
- store double %ld0, ptr %st, align 8, !tbaa !2
- store double %ld1, ptr %st_idx1, align 8, !tbaa !2
- store double %ld0, ptr %st_idx2, align 8, !tbaa !2
- store double %ld1, ptr %st_idx3, align 8, !tbaa !2
+ store double %ld0, ptr %st, align 8, !tbaa !5
+ store double %ld1, ptr %st_idx1, align 8, !tbaa !5
+ store double %ld0, ptr %st_idx2, align 8, !tbaa !5
+ store double %ld1, ptr %st_idx3, align 8, !tbaa !5
ret void
}
@@ -86,3 +86,5 @@ attributes #0 = { "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2
!2 = !{!"double", !3, i64 0}
!3 = !{!"omnipotent char", !4, i64 0}
!4 = !{!"Simple C/C++ TBAA"}
+!6 = !{!"double", !3}
+!5 = !{!6, !6, i64 0, i64 0}
diff --git a/llvm/test/Transforms/GVN/opt-remarks.ll b/llvm/test/Transforms/GVN/opt-remarks.ll
index a5c3cb5c55925..9cb8730bcd92c 100644
--- a/llvm/test/Transforms/GVN/opt-remarks.ll
+++ b/llvm/test/Transforms/GVN/opt-remarks.ll
@@ -134,4 +134,5 @@ define i8 @lifetime_end(i8 %val) {
!11 = !DILocation(line: 3, column: 3, scope: !7)
!12 = !{ !"tbaa root" }
-!13 = !{ !"int", !12 }
+!13 = !{!14, !14, i64 0}
+!14 = !{!"int", !12}
diff --git a/llvm/test/Transforms/GVN/tbaa.ll b/llvm/test/Transforms/GVN/tbaa.ll
index 22bb1391800ec..cad306ff91dbe 100644
--- a/llvm/test/Transforms/GVN/tbaa.ll
+++ b/llvm/test/Transforms/GVN/tbaa.ll
@@ -164,7 +164,8 @@ declare i32 @foo(ptr) readonly
; A TBAA structure who's only point is to have a constant location.
!9 = !{!"yet another root"}
-!10 = !{!"node", !9, i64 1}
+!10 = !{!21, !21, i64 0, i64 1}
+!21 = !{!"node", !9}
;.
; CHECK: [[C_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
; CHECK: [[META1]] = !{!"C", [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/GVNSink/sink-common-code.ll b/llvm/test/Transforms/GVNSink/sink-common-code.ll
index c77a85f95f1a5..e70fc569f6121 100644
--- a/llvm/test/Transforms/GVNSink/sink-common-code.ll
+++ b/llvm/test/Transforms/GVNSink/sink-common-code.ll
@@ -311,8 +311,10 @@ if.end:
!0 = !{ !"an example type tree" }
!1 = !{ !"int", !0 }
!2 = !{ !"float", !0 }
-!3 = !{ !"const float", !2, i64 0 }
-!4 = !{ !"special float", !2, i64 1 }
+!3 = !{!5, !5, i64 0, i64 0}
+!4 = !{!6, !6, i64 0, i64 1}
+!5 = !{!"const float", !2}
+!6 = !{!"special float", !2}
; CHECK-LABEL: test13
; CHECK-DAG: select
diff --git a/llvm/test/Transforms/InstCombine/store.ll b/llvm/test/Transforms/InstCombine/store.ll
index e2fc0fdcd456a..8b801a4a3c946 100644
--- a/llvm/test/Transforms/InstCombine/store.ll
+++ b/llvm/test/Transforms/InstCombine/store.ll
@@ -513,5 +513,6 @@ define void @store_nonconst_b8(b8 %v, ptr %p) {
!0 = !{!4, !4, i64 0}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
-!3 = !{!"float", !1}
+!3 = !{!5, !5, i64 0}
!4 = !{!"int", !1}
+!5 = !{!"float", !1}
diff --git a/llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memset.ll b/llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memset.ll
index 298b59a6f1a0b..a89b1f37a1d04 100644
--- a/llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memset.ll
+++ b/llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memset.ll
@@ -94,6 +94,8 @@ done: ; preds = %while.cond, %while.
ret ptr %dest
}
-!0 = !{!"omnipotent char", !1}
+!0 = !{!3, !3, i64 0}
!1 = !{!"Simple C/C++ TBAA"}
-!2 = !{!"long long", !0}
+!2 = !{!4, !4, i64 0}
+!3 = !{!"omnipotent char", !1}
+!4 = !{!"long long", !3}
diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-metadata.ll b/llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-metadata.ll
index 782665b9a1768..99569616dd327 100644
--- a/llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-metadata.ll
+++ b/llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-metadata.ll
@@ -92,10 +92,12 @@ exit:
!0 = !{!"Simple C/C++ TBAA"}
!1 = !{!"omnipotent char", !0, i64 0}
-!2 = !{!"A", !1, i64 0}
-!3 = !{!"B", !1, i64 0}
+!2 = !{!6, !6, i64 0, i64 0}
+!3 = !{!7, !7, i64 0, i64 0}
!4 = !{ i64 0, i64 2 }
!5 = !{ i64 0, i64 2 }
+!6 = !{!"A", !1}
+!7 = !{!"B", !1}
;.
; VF2: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/LoopVectorize/metadata.ll b/llvm/test/Transforms/LoopVectorize/metadata.ll
index 4cc50326cdb2d..d0e21bb64caab 100644
--- a/llvm/test/Transforms/LoopVectorize/metadata.ll
+++ b/llvm/test/Transforms/LoopVectorize/metadata.ll
@@ -628,10 +628,11 @@ attributes #1 = { nounwind "vector-function-abi-variant"="_ZGV_LLVM_N2v_bar(bar_
!0 = !{ float 2.5 }
!1 = !{ i64 0, i64 2 }
!2 = !{!"Simple C/C++ TBAA"}
-!3 = !{!"omnipotent char", !2, i64 0}
+!3 = !{!7, !7, i64 0, i64 0}
!4 = !{!5}
!5 = distinct !{!5, !6, !"g1"}
!6 = distinct !{!6, !"t2"}
+!7 = !{!"omnipotent char", !2}
;.
; CHECK: [[CHAR_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0, i64 0}
diff --git a/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll b/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll
index 1dfdf09a26999..157db4b887835 100644
--- a/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll
+++ b/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll
@@ -27,7 +27,7 @@ entry:
then:
store ptr %dst, ptr %gep.dst.16, align 8, !tbaa !0, !alias.scope !9, !noalias !9, !llvm.access.group !13
- store ptr %dst, ptr %min, align 8, !tbaa !5
+ store ptr %dst, ptr %min, align 8, !tbaa !15
br label %return
else:
@@ -63,7 +63,7 @@ entry:
br i1 %c, label %then, label %else
then:
- store ptr %dst, ptr %gep.dst.16, align 8, !tbaa !5, !alias.scope !9, !noalias !9, !llvm.access.group !13
+ store ptr %dst, ptr %gep.dst.16, align 8, !tbaa !15, !alias.scope !9, !noalias !9, !llvm.access.group !13
store ptr %dst, ptr %min, align 8, !tbaa !6
br label %return
@@ -92,6 +92,7 @@ return:
!12 = distinct !{!10}
!13 = distinct !{}
!14 = distinct !{}
+!15 = !{!5, !5, i64 0}
;.
; CHECK: [[INT_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
; CHECK: [[META1]] = !{!"int", [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/NewGVN/tbaa.ll b/llvm/test/Transforms/NewGVN/tbaa.ll
index a90660349f2f4..18c58620b40a4 100644
--- a/llvm/test/Transforms/NewGVN/tbaa.ll
+++ b/llvm/test/Transforms/NewGVN/tbaa.ll
@@ -163,7 +163,8 @@ declare i32 @foo(ptr) readonly
; A TBAA structure who's only point is to have a constant location.
!9 = !{!"yet another root"}
-!10 = !{!"node", !9, i64 1}
+!10 = !{!21, !21, i64 0, i64 1}
+!21 = !{!"node", !9}
;.
; CHECK: [[C_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
; CHECK: [[META1]] = !{!"C", [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/RelLookupTableConverter/X86/relative_lookup_table.ll b/llvm/test/Transforms/RelLookupTableConverter/X86/relative_lookup_table.ll
index b9c7cfa207536..6f2f0bbc8e625 100644
--- a/llvm/test/Transforms/RelLookupTableConverter/X86/relative_lookup_table.ll
+++ b/llvm/test/Transforms/RelLookupTableConverter/X86/relative_lookup_table.ll
@@ -463,9 +463,10 @@ define ptr @gep_volatile_load(i64 %index) {
!llvm.module.flags = !{!0, !1}
!0 = !{i32 7, !"PIC Level", i32 2}
!1 = !{i32 1, !"Code Model", i32 1}
-!4 = !{!"any pointer", !5, i64 0}
+!4 = !{!7, !7, i64 0, i64 0}
!5 = !{!"omnipotent char", !6, i64 0}
!6 = !{!"Simple C/C++ TBAA"}
+!7 = !{!"any pointer", !5}
;.
; CHECK: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(argmem: read) }
;.
diff --git a/llvm/test/Transforms/SLPVectorizer/X86/metadata.ll b/llvm/test/Transforms/SLPVectorizer/X86/metadata.ll
index 635ec32ca055b..c11e5d16b4f07 100644
--- a/llvm/test/Transforms/SLPVectorizer/X86/metadata.ll
+++ b/llvm/test/Transforms/SLPVectorizer/X86/metadata.ll
@@ -58,7 +58,8 @@ entry:
!1 = !{ float 2.5 }
!2 = !{!"Simple C/C++ TBAA"}
!3 = !{!"omnipotent char", !2}
-!4 = !{!"double", !3}
+!4 = !{!5, !5, i64 0}
+!5 = !{!"double", !3}
;.
; CHECK: [[DOUBLE_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
; CHECK: [[META1]] = !{!"double", [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/SROA/tbaa-struct2.ll b/llvm/test/Transforms/SROA/tbaa-struct2.ll
index 1ad8e187e60fe..56506e386e24a 100644
--- a/llvm/test/Transforms/SROA/tbaa-struct2.ll
+++ b/llvm/test/Transforms/SROA/tbaa-struct2.ll
@@ -22,9 +22,9 @@ define double @bar(ptr %wishart) {
;
%tmp = alloca %struct.Wishart, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %tmp, ptr align 8 %wishart, i64 16, i1 false), !tbaa.struct !2
- %lg = load double, ptr %tmp, align 8, !tbaa !4
+ %lg = load double, ptr %tmp, align 8, !tbaa !11
%m = getelementptr inbounds %struct.Wishart, ptr %tmp, i32 0, i32 1
- %lm = load i32, ptr %m, align 8, !tbaa !8
+ %lm = load i32, ptr %m, align 8, !tbaa !9
%call = call double @subcall(double %lg, i32 %lm)
ret double %call
}
@@ -36,6 +36,10 @@ define double @bar(ptr %wishart) {
!6 = !{!"Simple C++ TBAA"}
!7 = !{!8, !8, i64 0}
!8 = !{!"int", !5, i64 0}
+!10 = !{!"int", !5}
+!9 = !{!10, !10, i64 0, i64 0}
+!12 = !{!"double", !5}
+!11 = !{!12, !12, i64 0, i64 0}
;.
; CHECK: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
;.
diff --git a/llvm/test/Transforms/Scalarizer/basic-inseltpoison.ll b/llvm/test/Transforms/Scalarizer/basic-inseltpoison.ll
index af152d4ba8d05..0a3516c82ad10 100644
--- a/llvm/test/Transforms/Scalarizer/basic-inseltpoison.ll
+++ b/llvm/test/Transforms/Scalarizer/basic-inseltpoison.ll
@@ -854,12 +854,14 @@ define <2 x i32> @f23_crash(<2 x i32> %srcvec, i32 %v1) {
}
!0 = !{ !"root" }
-!1 = !{ !"set1", !0 }
-!2 = !{ !"set2", !0 }
+!1 = !{!14, !14, i64 0}
+!2 = !{!15, !15, i64 0}
!3 = !{ !3, !{!"llvm.loop.parallel_accesses", !13} }
!4 = !{ float 4.0 }
!5 = !{ i64 0, i64 8, null }
!13 = distinct !{}
+!14 = !{!"set1", !0}
+!15 = !{!"set2", !0}
;.
; CHECK: [[SET1_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
; CHECK: [[META1]] = !{!"set1", [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/Scalarizer/basic.ll b/llvm/test/Transforms/Scalarizer/basic.ll
index 82337c927a9ed..ffde5600bbc9a 100644
--- a/llvm/test/Transforms/Scalarizer/basic.ll
+++ b/llvm/test/Transforms/Scalarizer/basic.ll
@@ -905,12 +905,14 @@ define <2 x i8> @test_copy_trunc_flags(<2 x i32> %src) {
}
!0 = !{ !"root" }
-!1 = !{ !"set1", !0 }
-!2 = !{ !"set2", !0 }
+!1 = !{!14, !14, i64 0}
+!2 = !{!15, !15, i64 0}
!3 = !{ !3, !{!"llvm.loop.parallel_accesses", !13} }
!4 = !{ float 4.0 }
!5 = !{ i64 0, i64 8, null }
!13 = distinct !{}
+!14 = !{!"set1", !0}
+!15 = !{!"set2", !0}
;.
; CHECK: [[SET1_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
; CHECK: [[META1]] = !{!"set1", [[META2:![0-9]+]]}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll b/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
index 8daa2334a4a68..82f9120831a67 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
@@ -438,8 +438,8 @@ if.end:
!0 = !{ !"an example type tree" }
!1 = !{ !"int", !0 }
!2 = !{ !"float", !0 }
-!3 = !{ !"const float", !2, i64 0 }
-!4 = !{ !"special float", !2, i64 1 }
+!3 = !{!15, !15, i64 0, i64 0}
+!4 = !{!16, !16, i64 0, i64 1}
; The call should be commoned.
@@ -2183,3 +2183,5 @@ declare void @use.ptr(ptr)
!12 = !{i32 1}
!13 = !{null}
!14 = !DISubroutineType(types: !13)
+!15 = !{!"const float", !2}
+!16 = !{!"special float", !2}
diff --git a/llvm/test/Transforms/SimplifyCFG/basictest.ll b/llvm/test/Transforms/SimplifyCFG/basictest.ll
index 91eb696d64e29..bc1d32c45a604 100644
--- a/llvm/test/Transforms/SimplifyCFG/basictest.ll
+++ b/llvm/test/Transforms/SimplifyCFG/basictest.ll
@@ -121,7 +121,7 @@ bb0:
%tmp1 = icmp eq i8 %tmp, 0
br i1 %tmp1, label %bb2, label %bb1
bb1:
- %tmp3 = load i8, ptr %r, align 1, !range !2, !tbaa !10, !dbg !5
+ %tmp3 = load i8, ptr %r, align 1, !range !2, !tbaa !11, !dbg !5
%tmp4 = icmp eq i8 %tmp3, 1
br i1 %tmp4, label %bb2, label %bb3
bb2:
@@ -146,3 +146,4 @@ declare i8 @test6g(ptr)
!8 = !{i32 2, !"Dwarf Version", i32 2}
!9 = !{i32 2, !"Debug Info Version", i32 3}
!10 = !{!"scalar type", !1}
+!11 = !{!10, !10, i64 0}
diff --git a/llvm/test/Transforms/VectorCombine/alias.ll b/llvm/test/Transforms/VectorCombine/alias.ll
index 0fb09d1b35103..02aa1b63bee08 100644
--- a/llvm/test/Transforms/VectorCombine/alias.ll
+++ b/llvm/test/Transforms/VectorCombine/alias.ll
@@ -44,7 +44,8 @@ bb:
!2 = distinct !{!2}
!3 = !{!"Simple C/C++ TBAA"}
!4 = !{!"omnipotent char", !3, i64 0}
-!5 = !{!"i8", !4, i64 0}
+!5 = !{!6, !6, i64 0, i64 0}
+!6 = !{!"i8", !4}
;.
; CHECK: [[TBAA0]] = !{[[META3:![0-9]+]], [[META3]], i64 0, i64 0}
; CHECK: [[META3]] = !{!"i8", [[META4:![0-9]+]]}
>From 0a842070e3f663995db3cbdd7b419345529de8d9 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Thu, 24 Sep 2026 11:48:23 +0200
Subject: [PATCH 2/2] Avoid duplicate metadata
The MergedLoadStoreMotion one is not strictly the same, but just
differs in the presence of the immutable field. Not relevant to
the intent of the test.
---
.../MergedLoadStoreMotion/preserve-store-metadata.ll | 7 +++----
llvm/test/Transforms/SimplifyCFG/basictest.ll | 3 +--
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll b/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll
index 157db4b887835..00cdc487eaba1 100644
--- a/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll
+++ b/llvm/test/Transforms/MergedLoadStoreMotion/preserve-store-metadata.ll
@@ -27,7 +27,7 @@ entry:
then:
store ptr %dst, ptr %gep.dst.16, align 8, !tbaa !0, !alias.scope !9, !noalias !9, !llvm.access.group !13
- store ptr %dst, ptr %min, align 8, !tbaa !15
+ store ptr %dst, ptr %min, align 8, !tbaa !4
br label %return
else:
@@ -63,7 +63,7 @@ entry:
br i1 %c, label %then, label %else
then:
- store ptr %dst, ptr %gep.dst.16, align 8, !tbaa !15, !alias.scope !9, !noalias !9, !llvm.access.group !13
+ store ptr %dst, ptr %gep.dst.16, align 8, !tbaa !4, !alias.scope !9, !noalias !9, !llvm.access.group !13
store ptr %dst, ptr %min, align 8, !tbaa !6
br label %return
@@ -92,9 +92,8 @@ return:
!12 = distinct !{!10}
!13 = distinct !{}
!14 = distinct !{}
-!15 = !{!5, !5, i64 0}
;.
-; CHECK: [[INT_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
+; CHECK: [[INT_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0, i64 0}
; CHECK: [[META1]] = !{!"int", [[META2:![0-9]+]]}
; CHECK: [[META2]] = !{!"omnipotent char", [[META3:![0-9]+]], i64 0}
; CHECK: [[META3]] = !{!"Simple C++ TBAA"}
diff --git a/llvm/test/Transforms/SimplifyCFG/basictest.ll b/llvm/test/Transforms/SimplifyCFG/basictest.ll
index bc1d32c45a604..0e7fc0a4efa25 100644
--- a/llvm/test/Transforms/SimplifyCFG/basictest.ll
+++ b/llvm/test/Transforms/SimplifyCFG/basictest.ll
@@ -121,7 +121,7 @@ bb0:
%tmp1 = icmp eq i8 %tmp, 0
br i1 %tmp1, label %bb2, label %bb1
bb1:
- %tmp3 = load i8, ptr %r, align 1, !range !2, !tbaa !11, !dbg !5
+ %tmp3 = load i8, ptr %r, align 1, !range !2, !tbaa !0, !dbg !5
%tmp4 = icmp eq i8 %tmp3, 1
br i1 %tmp4, label %bb2, label %bb3
bb2:
@@ -146,4 +146,3 @@ declare i8 @test6g(ptr)
!8 = !{i32 2, !"Dwarf Version", i32 2}
!9 = !{i32 2, !"Debug Info Version", i32 3}
!10 = !{!"scalar type", !1}
-!11 = !{!10, !10, i64 0}
More information about the llvm-commits
mailing list