1 ; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s 2 ; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s 3 ; 4 ; Ensures that assumes are treated as not reading or writing memory. 5 6 declare void @llvm.assume(i1) 7 8 define i32 @foo(i32* %a, i32* %b, i1 %c) { 9 ; CHECK: 1 = MemoryDef(liveOnEntry) 10 ; CHECK-NEXT: store i32 4 11 store i32 4, i32* %a, align 4 12 ; CHECK-NOT: MemoryDef 13 ; CHECK: call void @llvm.assume 14 call void @llvm.assume(i1 %c) 15 ; CHECK: MemoryUse(1) 16 ; CHECK-NEXT: %1 = load i32 17 %1 = load i32, i32* %a, align 4 18 ret i32 %1 19 } 20