diff options
Diffstat (limited to 'llvm/test/Analysis')
-rw-r--r-- | llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll b/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll index 1d6f32eea72..550b01c4c9a 100644 --- a/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll +++ b/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll @@ -7,6 +7,7 @@ target datalayout = "e" declare zeroext i1 @return_i1() +declare i32* @foo() @globalstr = global [6 x i8] c"hello\00" @globali32ptr = external global i32* @@ -111,6 +112,16 @@ entry: %load21 = load i8, i8 addrspace(1)* %gep.align1.offset16, align 16 %load22 = load i8, i8 addrspace(1)* %gep.align16.offset16, align 16 +; CHECK-NOT: %no_deref_return +; CHECK: %deref_return{{.*}}(unaligned) +; CHECK: %deref_and_aligned_return{{.*}}(aligned) + %no_deref_return = call i32* @foo() + %deref_return = call dereferenceable(32) i32* @foo() + %deref_and_aligned_return = call dereferenceable(32) align 16 i32* @foo() + %load23 = load i32, i32* %no_deref_return + %load24 = load i32, i32* %deref_return, align 16 + %load25 = load i32, i32* %deref_and_aligned_return, align 16 + ret void } |