Home | History | Annotate | Download | only in X86
      1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
      2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s
      3 
      4 ; rdar://12081007
      5 
      6 define i32 @and_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
      7 ; CHECK-LABEL: and_1:
      8 ; CHECK:       # %bb.0:
      9 ; CHECK-NEXT:    xorl %eax, %eax
     10 ; CHECK-NEXT:    testb %dil, %sil
     11 ; CHECK-NEXT:    cmovnel %edx, %eax
     12 ; CHECK-NEXT:    retq
     13   %1 = and i8 %b, %a
     14   %2 = icmp ne i8 %1, 0
     15   %3 = select i1 %2, i32 %x, i32 0
     16   ret i32 %3
     17 }
     18 
     19 define zeroext i1 @and_2(i8 zeroext %a, i8 zeroext %b) {
     20 ; CHECK-LABEL: and_2:
     21 ; CHECK:       # %bb.0:
     22 ; CHECK-NEXT:    testb %dil, %sil
     23 ; CHECK-NEXT:    setne %al
     24 ; CHECK-NEXT:    retq
     25   %1 = and i8 %b, %a
     26   %2 = icmp ne i8 %1, 0
     27   ret i1 %2
     28 }
     29 
     30 define i32 @xor_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
     31 ; CHECK-LABEL: xor_1:
     32 ; CHECK:       # %bb.0:
     33 ; CHECK-NEXT:    xorl %eax, %eax
     34 ; CHECK-NEXT:    xorb %dil, %sil
     35 ; CHECK-NEXT:    cmovnel %edx, %eax
     36 ; CHECK-NEXT:    retq
     37   %1 = xor i8 %b, %a
     38   %2 = icmp ne i8 %1, 0
     39   %3 = select i1 %2, i32 %x, i32 0
     40   ret i32 %3
     41 }
     42 
     43 define zeroext i1 @xor_2(i8 zeroext %a, i8 zeroext %b) {
     44 ; CHECK-LABEL: xor_2:
     45 ; CHECK:       # %bb.0:
     46 ; CHECK-NEXT:    xorb %dil, %sil
     47 ; CHECK-NEXT:    setne %al
     48 ; CHECK-NEXT:    retq
     49   %1 = xor i8 %b, %a
     50   %2 = icmp ne i8 %1, 0
     51   ret i1 %2
     52 }
     53 
     54