1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | grep zext 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; Never merge these two conversions, even though it's possible: this is 4*9880d681SAndroid Build Coastguard Worker; significantly more expensive than the two conversions on some targets 5*9880d681SAndroid Build Coastguard Worker; and it causes libgcc to be compile __fixunsdfdi into a recursive 6*9880d681SAndroid Build Coastguard Worker; function. 7*9880d681SAndroid Build Coastguard Workerdefine i64 @test(double %D) { 8*9880d681SAndroid Build Coastguard Worker %A = fptoui double %D to i32 ; <i32> [#uses=1] 9*9880d681SAndroid Build Coastguard Worker %B = zext i32 %A to i64 ; <i64> [#uses=1] 10*9880d681SAndroid Build Coastguard Worker ret i64 %B 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13