1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=i686-unknown-linux-gnu -o - %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdeclare void @g_bool(i1 zeroext) 4*9880d681SAndroid Build Coastguard Workerdefine void @f_bool(i1 zeroext %x) { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker tail call void @g_bool(i1 zeroext %x) 7*9880d681SAndroid Build Coastguard Worker ret void 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; Forwarding a bool in a tail call works. 10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f_bool: 11*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: movz 12*9880d681SAndroid Build Coastguard Worker; CHECK: jmp g_bool 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdeclare void @g_float(float) 17*9880d681SAndroid Build Coastguard Workerdefine void @f_i32(i32 %x) { 18*9880d681SAndroid Build Coastguard Workerentry: 19*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %x to float 20*9880d681SAndroid Build Coastguard Worker tail call void @g_float(float %0) 21*9880d681SAndroid Build Coastguard Worker ret void 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker; Forwarding a bitcasted value works too. 24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f_i32 25*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: mov 26*9880d681SAndroid Build Coastguard Worker; CHECK: jmp g_float 27*9880d681SAndroid Build Coastguard Worker} 28