; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=i686-apple-darwin10 -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=X32
; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=X64

define i8 @test1(i8 %x) nounwind {
; X32-LABEL: test1:
; X32:       ## %bb.0:
; X32-NEXT:    movb {{[0-9]+}}(%esp), %al
; X32-NEXT:    andb $1, %al
; X32-NEXT:    negb %al
; X32-NEXT:    retl
;
; X64-LABEL: test1:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    negb %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %z = trunc i8 %x to i1
  %u = sext i1 %z to i8
  ret i8 %u
}

define i16 @test2(i16 %x) nounwind {
; X32-LABEL: test2:
; X32:       ## %bb.0:
; X32-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    andb $1, %al
; X32-NEXT:    negb %al
; X32-NEXT:    movsbl %al, %eax
; X32-NEXT:    ## kill: def $ax killed $ax killed $eax
; X32-NEXT:    retl
;
; X64-LABEL: test2:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    negb %dil
; X64-NEXT:    movsbl %dil, %eax
; X64-NEXT:    ## kill: def $ax killed $ax killed $eax
; X64-NEXT:    retq
  %z = trunc i16 %x to i1
  %u = sext i1 %z to i16
  ret i16 %u
}

define i32 @test3(i32 %x) nounwind {
; X32-LABEL: test3:
; X32:       ## %bb.0:
; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    andb $1, %al
; X32-NEXT:    negb %al
; X32-NEXT:    movsbl %al, %eax
; X32-NEXT:    retl
;
; X64-LABEL: test3:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    negb %dil
; X64-NEXT:    movsbl %dil, %eax
; X64-NEXT:    retq
  %z = trunc i32 %x to i1
  %u = sext i1 %z to i32
  ret i32 %u
}

define i32 @test4(i32 %x) nounwind {
; X32-LABEL: test4:
; X32:       ## %bb.0:
; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    andb $1, %al
; X32-NEXT:    negb %al
; X32-NEXT:    movsbl %al, %eax
; X32-NEXT:    retl
;
; X64-LABEL: test4:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    negb %dil
; X64-NEXT:    movsbl %dil, %eax
; X64-NEXT:    retq
  %z = trunc i32 %x to i1
  %u = sext i1 %z to i32
  ret i32 %u
}

define i8 @test5(i8 %x) nounwind {
; X32-LABEL: test5:
; X32:       ## %bb.0:
; X32-NEXT:    movb {{[0-9]+}}(%esp), %al
; X32-NEXT:    andb $1, %al
; X32-NEXT:    retl
;
; X64-LABEL: test5:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %z = trunc i8 %x to i1
  %u = zext i1 %z to i8
  ret i8 %u
}

define i16 @test6(i16 %x) nounwind {
; X32-LABEL: test6:
; X32:       ## %bb.0:
; X32-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    andb $1, %al
; X32-NEXT:    movzbl %al, %eax
; X32-NEXT:    ## kill: def $ax killed $ax killed $eax
; X32-NEXT:    retl
;
; X64-LABEL: test6:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    movzbl %dil, %eax
; X64-NEXT:    ## kill: def $ax killed $ax killed $eax
; X64-NEXT:    retq
  %z = trunc i16 %x to i1
  %u = zext i1 %z to i16
  ret i16 %u
}

define i32 @test7(i32 %x) nounwind {
; X32-LABEL: test7:
; X32:       ## %bb.0:
; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    andb $1, %al
; X32-NEXT:    movzbl %al, %eax
; X32-NEXT:    retl
;
; X64-LABEL: test7:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    movzbl %dil, %eax
; X64-NEXT:    retq
  %z = trunc i32 %x to i1
  %u = zext i1 %z to i32
  ret i32 %u
}

define i32 @test8(i32 %x) nounwind {
; X32-LABEL: test8:
; X32:       ## %bb.0:
; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    andb $1, %al
; X32-NEXT:    movzbl %al, %eax
; X32-NEXT:    retl
;
; X64-LABEL: test8:
; X64:       ## %bb.0:
; X64-NEXT:    andb $1, %dil
; X64-NEXT:    movzbl %dil, %eax
; X64-NEXT:    retq
  %z = trunc i32 %x to i1
  %u = zext i1 %z to i32
  ret i32 %u
}

define i16 @test9(i8 %x) nounwind {
; X32-LABEL: test9:
; X32:       ## %bb.0:
; X32-NEXT:    movsbl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    ## kill: def $ax killed $ax killed $eax
; X32-NEXT:    retl
;
; X64-LABEL: test9:
; X64:       ## %bb.0:
; X64-NEXT:    movsbl %dil, %eax
; X64-NEXT:    ## kill: def $ax killed $ax killed $eax
; X64-NEXT:    retq
  %u = sext i8 %x to i16
  ret i16 %u
}

define i32 @test10(i8 %x) nounwind {
; X32-LABEL: test10:
; X32:       ## %bb.0:
; X32-NEXT:    movsbl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    retl
;
; X64-LABEL: test10:
; X64:       ## %bb.0:
; X64-NEXT:    movsbl %dil, %eax
; X64-NEXT:    retq
  %u = sext i8 %x to i32
  ret i32 %u
}

define i64 @test11(i8 %x) nounwind {
; X32-LABEL: test11:
; X32:       ## %bb.0:
; X32-NEXT:    movsbl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    movl %eax, %edx
; X32-NEXT:    sarl $31, %edx
; X32-NEXT:    retl
;
; X64-LABEL: test11:
; X64:       ## %bb.0:
; X64-NEXT:    movsbq %dil, %rax
; X64-NEXT:    retq
  %u = sext i8 %x to i64
  ret i64 %u
}

define i16 @test12(i8 %x) nounwind {
; X32-LABEL: test12:
; X32:       ## %bb.0:
; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    ## kill: def $ax killed $ax killed $eax
; X32-NEXT:    retl
;
; X64-LABEL: test12:
; X64:       ## %bb.0:
; X64-NEXT:    movzbl %dil, %eax
; X64-NEXT:    ## kill: def $ax killed $ax killed $eax
; X64-NEXT:    retq
  %u = zext i8 %x to i16
  ret i16 %u
}

define i32 @test13(i8 %x) nounwind {
; X32-LABEL: test13:
; X32:       ## %bb.0:
; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    retl
;
; X64-LABEL: test13:
; X64:       ## %bb.0:
; X64-NEXT:    movzbl %dil, %eax
; X64-NEXT:    retq
  %u = zext i8 %x to i32
  ret i32 %u
}

define i64 @test14(i8 %x) nounwind {
; X32-LABEL: test14:
; X32:       ## %bb.0:
; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    xorl %edx, %edx
; X32-NEXT:    retl
;
; X64-LABEL: test14:
; X64:       ## %bb.0:
; X64-NEXT:    movzbl %dil, %eax
; X64-NEXT:    retq
  %u = zext i8 %x to i64
  ret i64 %u
}

define i32 @test15(i16 %x) nounwind {
; X32-LABEL: test15:
; X32:       ## %bb.0:
; X32-NEXT:    movswl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    retl
;
; X64-LABEL: test15:
; X64:       ## %bb.0:
; X64-NEXT:    movswl %di, %eax
; X64-NEXT:    retq
  %u = sext i16 %x to i32
  ret i32 %u
}

define i64 @test16(i16 %x) nounwind {
; X32-LABEL: test16:
; X32:       ## %bb.0:
; X32-NEXT:    movswl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    movl %eax, %edx
; X32-NEXT:    sarl $31, %edx
; X32-NEXT:    retl
;
; X64-LABEL: test16:
; X64:       ## %bb.0:
; X64-NEXT:    movswq %di, %rax
; X64-NEXT:    retq
  %u = sext i16 %x to i64
  ret i64 %u
}

define i32 @test17(i16 %x) nounwind {
; X32-LABEL: test17:
; X32:       ## %bb.0:
; X32-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    retl
;
; X64-LABEL: test17:
; X64:       ## %bb.0:
; X64-NEXT:    movzwl %di, %eax
; X64-NEXT:    retq
  %u = zext i16 %x to i32
  ret i32 %u
}

define i64 @test18(i16 %x) nounwind {
; X32-LABEL: test18:
; X32:       ## %bb.0:
; X32-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    xorl %edx, %edx
; X32-NEXT:    retl
;
; X64-LABEL: test18:
; X64:       ## %bb.0:
; X64-NEXT:    movzwl %di, %eax
; X64-NEXT:    retq
  %u = zext i16 %x to i64
  ret i64 %u
}

define i64 @test19(i32 %x) nounwind {
; X32-LABEL: test19:
; X32:       ## %bb.0:
; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    movl %eax, %edx
; X32-NEXT:    sarl $31, %edx
; X32-NEXT:    retl
;
; X64-LABEL: test19:
; X64:       ## %bb.0:
; X64-NEXT:    movslq %edi, %rax
; X64-NEXT:    retq
  %u = sext i32 %x to i64
  ret i64 %u
}

define i64 @test20(i32 %x) nounwind {
; X32-LABEL: test20:
; X32:       ## %bb.0:
; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
; X32-NEXT:    xorl %edx, %edx
; X32-NEXT:    retl
;
; X64-LABEL: test20:
; X64:       ## %bb.0:
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %u = zext i32 %x to i64
  ret i64 %u
}
