1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i686-unknown-linux-gnu | FileCheck %s -check-prefix=X86
3 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s -check-prefix=X64
4 ; RUN: llc < %s -mtriple=x86_64-linux-gnux32 | FileCheck %s -check-prefix=X32
6 define zeroext i8 @foo() nounwind ssp {
8 ; X86: # %bb.0: # %entry
9 ; X86-NEXT: subl $12, %esp
10 ; X86-NEXT: calll bar@PLT
11 ; X86-NEXT: movb %ah, %al
12 ; X86-NEXT: addl $12, %esp
16 ; X64: # %bb.0: # %entry
17 ; X64-NEXT: pushq %rax
18 ; X64-NEXT: xorl %eax, %eax
19 ; X64-NEXT: callq bar@PLT
20 ; X64-NEXT: # kill: def $ax killed $ax def $eax
21 ; X64-NEXT: shrl $8, %eax
22 ; X64-NEXT: # kill: def $al killed $al killed $eax
27 ; X32: # %bb.0: # %entry
28 ; X32-NEXT: pushq %rax
29 ; X32-NEXT: xorl %eax, %eax
30 ; X32-NEXT: callq bar@PLT
31 ; X32-NEXT: # kill: def $ax killed $ax def $eax
32 ; X32-NEXT: shrl $8, %eax
33 ; X32-NEXT: # kill: def $al killed $al killed $eax
37 %0 = tail call zeroext i16 (...) @bar() nounwind
39 %2 = trunc i16 %1 to i8
46 declare zeroext i16 @bar(...)