7 changes: 4 additions & 3 deletions llvm/test/Analysis/ScopedNoAliasAA/basic.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ target triple = "x86_64-unknown-linux-gnu"
define void @foo1(float* nocapture %a, float* nocapture readonly %c) #0 {
entry:
; CHECK-LABEL: Function: foo1
%0 = load float* %c, align 4, !alias.scope !0
%0 = load float* %c, align 4, !alias.scope !1
%arrayidx.i = getelementptr inbounds float* %a, i64 5
store float %0, float* %arrayidx.i, align 4, !noalias !0
store float %0, float* %arrayidx.i, align 4, !noalias !1
%1 = load float* %c, align 4
%arrayidx = getelementptr inbounds float* %a, i64 7
store float %1, float* %arrayidx, align 4
Expand All @@ -22,5 +22,6 @@ entry:

attributes #0 = { nounwind uwtable }

!0 = metadata !{metadata !0}
!0 = metadata !{metadata !0, metadata !"some domain"}
!1 = metadata !{metadata !1, metadata !0, metadata !"some scope"}

31 changes: 19 additions & 12 deletions llvm/test/Analysis/ScopedNoAliasAA/basic2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,35 @@ entry:
; CHECK-LABEL: Function: foo2
%0 = load float* %c, align 4, !alias.scope !0
%arrayidx.i = getelementptr inbounds float* %a, i64 5
store float %0, float* %arrayidx.i, align 4, !alias.scope !2, !noalias !1
store float %0, float* %arrayidx.i, align 4, !alias.scope !5, !noalias !4
%arrayidx1.i = getelementptr inbounds float* %b, i64 8
store float %0, float* %arrayidx1.i, align 4, !alias.scope !1, !noalias !2
store float %0, float* %arrayidx1.i, align 4, !alias.scope !0, !noalias !5
%1 = load float* %c, align 4
%arrayidx = getelementptr inbounds float* %a, i64 7
store float %1, float* %arrayidx, align 4
ret void

; CHECK: NoAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !2, !noalias !1
; CHECK: NoAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %0, float* %arrayidx1.i, align 4, !alias.scope !1, !noalias !2
; CHECK: MayAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !4, !noalia
; CHECK: s !5
; CHECK: MayAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %0, float* %arrayidx1.i, align 4, !alias.scope !0, !noali
; CHECK: as !4
; CHECK: MayAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %1, float* %arrayidx, align 4
; CHECK: MayAlias: %1 = load float* %c, align 4 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !2, !noalias !1
; CHECK: MayAlias: %1 = load float* %c, align 4 <-> store float %0, float* %arrayidx1.i, align 4, !alias.scope !1, !noalias !2
; CHECK: MayAlias: %1 = load float* %c, align 4 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !4, !noalias !5
; CHECK: MayAlias: %1 = load float* %c, align 4 <-> store float %0, float* %arrayidx1.i, align 4, !alias.scope !0, !noalias !4
; CHECK: MayAlias: %1 = load float* %c, align 4 <-> store float %1, float* %arrayidx, align 4
; CHECK: NoAlias: store float %0, float* %arrayidx1.i, align 4, !alias.scope !1, !noalias !2 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !2, !noalias !1
; CHECK: NoAlias: store float %1, float* %arrayidx, align 4 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !2, !noalias !1
; CHECK: MayAlias: store float %1, float* %arrayidx, align 4 <-> store float %0, float* %arrayidx1.i, align 4, !alias.scope !1, !noalias !2
; CHECK: NoAlias: store float %0, float* %arrayidx1.i, align 4, !alias.scope !0, !noalias !4 <-> store float %0, float* %arrayidx.i, align
; CHECK: 4, !alias.scope !4, !noalias !5
; CHECK: NoAlias: store float %1, float* %arrayidx, align 4 <-> store float %0, float* %arrayidx.i, align 4, !alias.scope !4, !noalias !5
; CHECK: MayAlias: store float %1, float* %arrayidx, align 4 <-> store float %0, float* %arrayidx1.i, align 4, !alias.scope !0, !noalias !
; CHECK: 4
}

attributes #0 = { nounwind uwtable }

!0 = metadata !{metadata !1, metadata !2}
!1 = metadata !{metadata !1}
!2 = metadata !{metadata !2}
!0 = metadata !{metadata !1, metadata !3}
!1 = metadata !{metadata !1, metadata !2, metadata !"some scope"}
!2 = metadata !{metadata !2, metadata !"some domain"}
!3 = metadata !{metadata !3, metadata !2, metadata !"some other scope"}
!4 = metadata !{metadata !1}
!5 = metadata !{metadata !3}