50 lines · plain
1; RUN: opt -passes=aa-eval -print-all-alias-modref-info -disable-output < %s 2>&1 | FileCheck %s2 3; CHECK: MayAlias: i8* %a, i8* %gep4define void @inttoptr_alloca() {5 %a = alloca i86 %a.int = ptrtoint ptr %a to i647 %a.int.1 = add i64 %a.int, 18 %gep = getelementptr i8, ptr inttoptr (i64 -1 to ptr), i64 %a.int.19 %load = load i8, ptr %gep10 store i8 1, ptr %a11 ret void12}13 14; CHECK: MayAlias: i8* %a, i8* %gep15define void @inttoptr_alloca_unknown_relation(i64 %offset) {16 %a = alloca i817 %a.int = ptrtoint ptr %a to i6418 %gep = getelementptr i8, ptr inttoptr (i64 -1 to ptr), i64 %offset19 %load = load i8, ptr %gep20 store i8 1, ptr %a21 ret void22}23 24; CHECK: NoAlias: i8* %a, i8* %gep25define void @inttoptr_alloca_noescape(i64 %offset) {26 %a = alloca i827 %gep = getelementptr i8, ptr inttoptr (i64 -1 to ptr), i64 %offset28 %load = load i8, ptr %gep29 store i8 1, ptr %a30 ret void31}32 33; CHECK: MayAlias: i8* %a, i8* %gep34define void @inttoptr_noalias(ptr noalias %a) {35 %a.int = ptrtoint ptr %a to i6436 %a.int.1 = add i64 %a.int, 137 %gep = getelementptr i8, ptr inttoptr (i64 -1 to ptr), i64 %a.int.138 %load = load i8, ptr %gep39 store i8 1, ptr %a40 ret void41}42 43; CHECK: NoAlias: i8* %a, i8* %gep44define void @inttoptr_noalias_noescape(ptr noalias %a, i64 %offset) {45 %gep = getelementptr i8, ptr inttoptr (i64 -1 to ptr), i64 %offset46 %load = load i8, ptr %gep47 store i8 1, ptr %a48 ret void49}50