1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -S -ipsccp | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 4*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-unknown-linux-gnu" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine i64 @fn2() { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker %conv = sext i32 undef to i64 9*9880d681SAndroid Build Coastguard Worker %div = sdiv i64 8, %conv 10*9880d681SAndroid Build Coastguard Worker %call2 = call i64 @fn1(i64 %div) 11*9880d681SAndroid Build Coastguard Worker ret i64 %call2 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: define i64 @fn2( 15*9880d681SAndroid Build Coastguard Worker; CHECK: %[[CALL:.*]] = call i64 @fn1(i64 undef) 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerdefine internal i64 @fn1(i64 %p1) { 18*9880d681SAndroid Build Coastguard Workerentry: 19*9880d681SAndroid Build Coastguard Worker %tobool = icmp ne i64 %p1, 0 20*9880d681SAndroid Build Coastguard Worker %cond = select i1 %tobool, i64 %p1, i64 %p1 21*9880d681SAndroid Build Coastguard Worker ret i64 %cond 22*9880d681SAndroid Build Coastguard Worker} 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: define internal i64 @fn1( 25*9880d681SAndroid Build Coastguard Worker; CHECK: %[[SEL:.*]] = select i1 undef, i64 undef, i64 undef 26*9880d681SAndroid Build Coastguard Worker; CHECK: ret i64 %[[SEL]] 27