1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i32 @assume_add(i32 %a, i32 %b) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @assume_add( 5*9880d681SAndroid Build Coastguard Worker %1 = add i32 %a, %b 6*9880d681SAndroid Build Coastguard Worker %last_two_digits = and i32 %1, 3 7*9880d681SAndroid Build Coastguard Worker %2 = icmp eq i32 %last_two_digits, 0 8*9880d681SAndroid Build Coastguard Worker call void @llvm.assume(i1 %2) 9*9880d681SAndroid Build Coastguard Worker %3 = add i32 %1, 3 10*9880d681SAndroid Build Coastguard Worker; CHECK: %3 = or i32 %1, 3 11*9880d681SAndroid Build Coastguard Worker ret i32 %3 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.assume(i1) 15