Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s -check-prefix=X64
      2 ; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck %s -check-prefix=WIN64
      3 
      4 ; X64: @bar1
      5 ; X64: movzbl
      6 ; X64: jmp
      7 ; WIN64: @bar1
      8 ; WIN64: movzbl
      9 ; WIN64: callq
     10 define void @bar1(i1 zeroext %v1) nounwind ssp {
     11 entry:
     12   %conv = zext i1 %v1 to i32
     13   %call = tail call i32 (...)* @foo1(i32 %conv) nounwind
     14   ret void
     15 }
     16 
     17 ; X64: @bar2
     18 ; X64-NOT: movzbl
     19 ; X64: jmp
     20 ; WIN64: @bar2
     21 ; WIN64-NOT: movzbl
     22 ; WIN64: callq
     23 define void @bar2(i8 zeroext %v1) nounwind ssp {
     24 entry:
     25   %conv = zext i8 %v1 to i32
     26   %call = tail call i32 (...)* @foo1(i32 %conv) nounwind
     27   ret void
     28 }
     29 
     30 ; X64: @bar3
     31 ; X64: callq
     32 ; X64-NOT: movzbl
     33 ; X64-NOT: and
     34 ; X64: ret
     35 ; WIN64: @bar3
     36 ; WIN64: callq
     37 ; WIN64-NOT: movzbl
     38 ; WIN64-NOT: and
     39 ; WIN64: ret
     40 define zeroext i1 @bar3() nounwind ssp {
     41 entry:
     42   %call = call i1 @foo2() nounwind
     43   ret i1 %call
     44 }
     45 
     46 declare i32 @foo1(...)
     47 declare zeroext i1 @foo2()
     48