1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i686-unknown-linux-gnu | FileCheck %s -check-prefix=X86 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s -check-prefix=X64 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-linux-gnux32 | FileCheck %s -check-prefix=X32 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine zeroext i8 @foo() nounwind ssp { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %0 = tail call zeroext i16 (...) @bar() nounwind 8*9880d681SAndroid Build Coastguard Worker %1 = lshr i16 %0, 8 9*9880d681SAndroid Build Coastguard Worker %2 = trunc i16 %1 to i8 10*9880d681SAndroid Build Coastguard Worker ret i8 %2 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker; X86-LABEL: foo 13*9880d681SAndroid Build Coastguard Worker; X86: calll 14*9880d681SAndroid Build Coastguard Worker; X86-NEXT: movb %ah, %al 15*9880d681SAndroid Build Coastguard Worker; X86-NEXT: addl $12, %esp 16*9880d681SAndroid Build Coastguard Worker; X86-NEXT: retl 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker; X64-LABEL: foo 19*9880d681SAndroid Build Coastguard Worker; X64: callq 20*9880d681SAndroid Build Coastguard Worker; X64-NEXT: # kill 21*9880d681SAndroid Build Coastguard Worker; X64-NEXT: shrl $8, %eax 22*9880d681SAndroid Build Coastguard Worker; X64-NEXT: # kill 23*9880d681SAndroid Build Coastguard Worker; X64-NEXT: popq 24*9880d681SAndroid Build Coastguard Worker; X64-NEXT: retq 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker; X32-LABEL: foo 27*9880d681SAndroid Build Coastguard Worker; X32: callq 28*9880d681SAndroid Build Coastguard Worker; X32-NEXT: # kill 29*9880d681SAndroid Build Coastguard Worker; X32-NEXT: shrl $8, %eax 30*9880d681SAndroid Build Coastguard Worker; X32-NEXT: # kill 31*9880d681SAndroid Build Coastguard Worker; X32-NEXT: popq 32*9880d681SAndroid Build Coastguard Worker; X32-NEXT: retq 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdeclare zeroext i16 @bar(...) 36