1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -Oz %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker@a = global i32 4 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i1 @inner() { 6*9880d681SAndroid Build Coastguard Worker %a1 = load volatile i32, i32* @a 7*9880d681SAndroid Build Coastguard Worker %x1 = add i32 %a1, %a1 8*9880d681SAndroid Build Coastguard Worker %c = icmp eq i32 %x1, 0 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker ; Here are enough instructions to prevent inlining, but because they are used 11*9880d681SAndroid Build Coastguard Worker ; only by the @llvm.assume intrinsic, they're free (and, thus, inlining will 12*9880d681SAndroid Build Coastguard Worker ; still happen). 13*9880d681SAndroid Build Coastguard Worker %a2 = mul i32 %a1, %a1 14*9880d681SAndroid Build Coastguard Worker %a3 = sub i32 %a1, 5 15*9880d681SAndroid Build Coastguard Worker %a4 = udiv i32 %a3, -13 16*9880d681SAndroid Build Coastguard Worker %a5 = mul i32 %a4, %a4 17*9880d681SAndroid Build Coastguard Worker %a6 = add i32 %a5, %x1 18*9880d681SAndroid Build Coastguard Worker %ca = icmp sgt i32 %a6, -7 19*9880d681SAndroid Build Coastguard Worker tail call void @llvm.assume(i1 %ca) 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker ret i1 %c 22*9880d681SAndroid Build Coastguard Worker} 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; @inner() should be inlined for -Oz. 25*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: call i1 @inner 26*9880d681SAndroid Build Coastguard Workerdefine i1 @outer() optsize { 27*9880d681SAndroid Build Coastguard Worker %r = call i1 @inner() 28*9880d681SAndroid Build Coastguard Worker ret i1 %r 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.assume(i1) nounwind 32*9880d681SAndroid Build Coastguard Worker 33