xref: /llvm-project/llvm/test/Analysis/BasicAA/index-size.ll (revision 1aee1e1f4c4b504becc06521546de992a662694b)
1; RUN: opt -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output %s 2>&1 | FileCheck %s
2
3target datalayout = "p:64:64:64:32"
4
5; gep.1 and gep.2 must alias, because they are truncated to the index size
6; (32-bit), not the pointer size (64-bit).
7define void @mustalias_due_to_index_size(ptr %ptr) {
8; CHECK-LABEL: Function: mustalias_due_to_index_size
9; CHECK-NEXT: MustAlias: i8* %gep.1, i8* %ptr
10; CHECK-NEXT: MustAlias: i8* %gep.2, i8* %ptr
11; CHECK-NEXT: MustAlias: i8* %gep.1, i8* %gep.2
12;
13  load i8, ptr %ptr
14  %gep.1 = getelementptr i8, ptr %ptr, i64 4294967296
15  store i8 0, ptr %gep.1
16  %gep.2 = getelementptr i8, ptr %ptr, i64 0
17  store i8 1, ptr %gep.2
18  ret void
19}
20