@@ -5,13 +5,13 @@ define <4 x i32> @quux(ptr addrspace(3) %arg) {
55; CHECK-LABEL: define <4 x i32> @quux(
66; CHECK-SAME: ptr addrspace(3) [[ARG:%.*]]) {
77; CHECK-NEXT: [[BB:.*:]]
8- ; CHECK-NEXT: [[EXTRACTELEMENT:%.*]] = load i8, ptr addrspace(3) [[ARG]], align 4, !alias.scope [[META0:![0-9]+]], !noalias [[META0]]
8+ ; CHECK-NEXT: [[EXTRACTELEMENT:%.*]] = load i8, ptr addrspace(3) [[ARG]], align 4, !tbaa [[TBAA0:![0-9]+]], ! alias.scope [[META0:![0-9]+]], !noalias [[META0]]
99; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds <4 x i8>, ptr addrspace(3) [[ARG]], i32 0, i64 1
10- ; CHECK-NEXT: [[EXTRACTELEMENT1:%.*]] = load i8, ptr addrspace(3) [[TMP0]], align 1, !alias.scope [[META0]], !noalias [[META0]]
10+ ; CHECK-NEXT: [[EXTRACTELEMENT1:%.*]] = load i8, ptr addrspace(3) [[TMP0]], align 1, !tbaa [[TBAA0]], ! alias.scope [[META0]], !noalias [[META0]]
1111; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds <4 x i8>, ptr addrspace(3) [[ARG]], i32 0, i64 2
12- ; CHECK-NEXT: [[EXTRACTELEMENT2:%.*]] = load i8, ptr addrspace(3) [[TMP1]], align 2, !alias.scope [[META0]], !noalias [[META0]]
12+ ; CHECK-NEXT: [[EXTRACTELEMENT2:%.*]] = load i8, ptr addrspace(3) [[TMP1]], align 2, !tbaa [[TBAA0]], ! alias.scope [[META0]], !noalias [[META0]]
1313; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds <4 x i8>, ptr addrspace(3) [[ARG]], i32 0, i64 3
14- ; CHECK-NEXT: [[EXTRACTELEMENT3:%.*]] = load i8, ptr addrspace(3) [[TMP2]], align 1, !alias.scope [[META0]], !noalias [[META0]]
14+ ; CHECK-NEXT: [[EXTRACTELEMENT3:%.*]] = load i8, ptr addrspace(3) [[TMP2]], align 1, !tbaa [[TBAA0]], ! alias.scope [[META0]], !noalias [[META0]]
1515; CHECK-NEXT: [[ZEXT:%.*]] = zext i8 [[EXTRACTELEMENT]] to i32
1616; CHECK-NEXT: [[ZEXT4:%.*]] = zext i8 [[EXTRACTELEMENT1]] to i32
1717; CHECK-NEXT: [[ZEXT5:%.*]] = zext i8 [[EXTRACTELEMENT2]] to i32
@@ -23,7 +23,7 @@ define <4 x i32> @quux(ptr addrspace(3) %arg) {
2323; CHECK-NEXT: ret <4 x i32> [[INSERTELEMENT9]]
2424;
2525bb:
26- %load = load <4 x i8 >, ptr addrspace (3 ) %arg , align 4 , !alias.scope !0 , !noalias !0
26+ %load = load <4 x i8 >, ptr addrspace (3 ) %arg , align 4 , !alias.scope !0 , !noalias !0 , !tbaa !5
2727 %extractelement = extractelement <4 x i8 > %load , i64 0
2828 %extractelement1 = extractelement <4 x i8 > %load , i64 1
2929 %extractelement2 = extractelement <4 x i8 > %load , i64 2
4242!0 = !{!1 }
4343!1 = distinct !{!1 , !2 }
4444!2 = distinct !{!2 }
45+ !3 = !{!"Simple C/C++ TBAA" }
46+ !4 = !{!"omnipotent char" , !3 , i64 0 }
47+ !5 = !{!"i8" , !4 , i64 0 }
4548;.
4649; CHECK: [[META0]] = !{[[META1:![0-9]+]]}
4750; CHECK: [[META1]] = distinct !{[[META1]], [[META2:![0-9]+]]}
0 commit comments