47 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown-linux-gnu | FileCheck %s -check-prefix=X863; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s -check-prefix=X644; RUN: llc < %s -mtriple=x86_64-linux-gnux32 | FileCheck %s -check-prefix=X325 6define zeroext i8 @foo() nounwind ssp {7; X86-LABEL: foo:8; X86: # %bb.0: # %entry9; X86-NEXT: subl $12, %esp10; X86-NEXT: calll bar@PLT11; X86-NEXT: movb %ah, %al12; X86-NEXT: addl $12, %esp13; X86-NEXT: retl14;15; X64-LABEL: foo:16; X64: # %bb.0: # %entry17; X64-NEXT: pushq %rax18; X64-NEXT: xorl %eax, %eax19; X64-NEXT: callq bar@PLT20; X64-NEXT: # kill: def $ax killed $ax def $eax21; X64-NEXT: shrl $8, %eax22; X64-NEXT: # kill: def $al killed $al killed $eax23; X64-NEXT: popq %rcx24; X64-NEXT: retq25;26; X32-LABEL: foo:27; X32: # %bb.0: # %entry28; X32-NEXT: pushq %rax29; X32-NEXT: xorl %eax, %eax30; X32-NEXT: callq bar@PLT31; X32-NEXT: # kill: def $ax killed $ax def $eax32; X32-NEXT: shrl $8, %eax33; X32-NEXT: # kill: def $al killed $al killed $eax34; X32-NEXT: popq %rcx35; X32-NEXT: retq36entry:37 %0 = tail call zeroext i16 (...) @bar() nounwind38 %1 = lshr i16 %0, 839 %2 = trunc i16 %1 to i840 ret i8 %241 42 43 44}45 46declare zeroext i16 @bar(...)47