49 lines · plain
1; RUN: opt -S -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output < %s 2>&1 | FileCheck %s2 3; CHECK-LABEL: Function: test4;; Before limit:5; CHECK-DAG: MustAlias: i8* %gep.add9, i8* %gep.inc96; CHECK-DAG: NoAlias: i8* %gep.inc7, i8* %gep.inc97; CHECK-DAG: NoAlias: i8* %gep.inc8, i8* %gep.inc98;; At limit:9; CHECK-DAG: MustAlias: i8* %gep.add10, i8* %gep.inc1010; CHECK-DAG: NoAlias: i8* %gep.inc10, i8* %gep.inc811; CHECK-DAG: NoAlias: i8* %gep.inc10, i8* %gep.inc912;; After limit:13; CHECK-DAG: MayAlias: i8* %gep.add11, i8* %gep.inc1114; CHECK-DAG: MayAlias: i8* %gep.inc11, i8* %gep.inc915; CHECK-DAG: NoAlias: i8* %gep.inc10, i8* %gep.inc1116 17define void @test(ptr %base) {18 %gep.add9 = getelementptr i8, ptr %base, i64 919 %gep.add10 = getelementptr i8, ptr %base, i64 1020 %gep.add11 = getelementptr i8, ptr %base, i64 1121 22 %gep.inc1 = getelementptr i8, ptr %base, i64 123 %gep.inc2 = getelementptr i8, ptr %gep.inc1, i64 124 %gep.inc3 = getelementptr i8, ptr %gep.inc2, i64 125 %gep.inc4 = getelementptr i8, ptr %gep.inc3, i64 126 %gep.inc5 = getelementptr i8, ptr %gep.inc4, i64 127 %gep.inc6 = getelementptr i8, ptr %gep.inc5, i64 128 %gep.inc7 = getelementptr i8, ptr %gep.inc6, i64 129 %gep.inc8 = getelementptr i8, ptr %gep.inc7, i64 130 %gep.inc9 = getelementptr i8, ptr %gep.inc8, i64 131 %gep.inc10 = getelementptr i8, ptr %gep.inc9, i64 132 %gep.inc11 = getelementptr i8, ptr %gep.inc10, i64 133 34 load i8, ptr %gep.add935 load i8, ptr %gep.add1036 load i8, ptr %gep.add1137 load i8, ptr %gep.inc338 load i8, ptr %gep.inc439 load i8, ptr %gep.inc540 load i8, ptr %gep.inc641 load i8, ptr %gep.inc742 load i8, ptr %gep.inc843 load i8, ptr %gep.inc944 load i8, ptr %gep.inc1045 load i8, ptr %gep.inc1146 47 ret void48}49