1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; rdar://12081007 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: and_1: 6*9880d681SAndroid Build Coastguard Worker; CHECK: andb 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovnel 8*9880d681SAndroid Build Coastguard Worker; CHECK: ret 9*9880d681SAndroid Build Coastguard Workerdefine i32 @and_1(i8 zeroext %a, i8 zeroext %b, i32 %x) { 10*9880d681SAndroid Build Coastguard Worker %1 = and i8 %b, %a 11*9880d681SAndroid Build Coastguard Worker %2 = icmp ne i8 %1, 0 12*9880d681SAndroid Build Coastguard Worker %3 = select i1 %2, i32 %x, i32 0 13*9880d681SAndroid Build Coastguard Worker ret i32 %3 14*9880d681SAndroid Build Coastguard Worker} 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: and_2: 17*9880d681SAndroid Build Coastguard Worker; CHECK: andb 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: setne 19*9880d681SAndroid Build Coastguard Worker; CHECK: ret 20*9880d681SAndroid Build Coastguard Workerdefine zeroext i1 @and_2(i8 zeroext %a, i8 zeroext %b) { 21*9880d681SAndroid Build Coastguard Worker %1 = and i8 %b, %a 22*9880d681SAndroid Build Coastguard Worker %2 = icmp ne i8 %1, 0 23*9880d681SAndroid Build Coastguard Worker ret i1 %2 24*9880d681SAndroid Build Coastguard Worker} 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: xor_1: 27*9880d681SAndroid Build Coastguard Worker; CHECK: xorb 28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovnel 29*9880d681SAndroid Build Coastguard Worker; CHECK: ret 30*9880d681SAndroid Build Coastguard Workerdefine i32 @xor_1(i8 zeroext %a, i8 zeroext %b, i32 %x) { 31*9880d681SAndroid Build Coastguard Worker %1 = xor i8 %b, %a 32*9880d681SAndroid Build Coastguard Worker %2 = icmp ne i8 %1, 0 33*9880d681SAndroid Build Coastguard Worker %3 = select i1 %2, i32 %x, i32 0 34*9880d681SAndroid Build Coastguard Worker ret i32 %3 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: xor_2: 38*9880d681SAndroid Build Coastguard Worker; CHECK: xorb 39*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: setne 40*9880d681SAndroid Build Coastguard Worker; CHECK: ret 41*9880d681SAndroid Build Coastguard Workerdefine zeroext i1 @xor_2(i8 zeroext %a, i8 zeroext %b) { 42*9880d681SAndroid Build Coastguard Worker %1 = xor i8 %b, %a 43*9880d681SAndroid Build Coastguard Worker %2 = icmp ne i8 %1, 0 44*9880d681SAndroid Build Coastguard Worker ret i1 %2 45*9880d681SAndroid Build Coastguard Worker} 46