xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/andc.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=powerpc64-apple-darwin | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; TODO: These could use 'andc'.
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine i1 @and_cmp1(i32 %x, i32 %y) {
6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: and_cmp1:
7*9880d681SAndroid Build Coastguard Worker; CHECK:       ; BB#0:
8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    and r2, r3, r4
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    li r3, 1
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    cmpw cr0, r2, r4
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    bclr 12, 2, 0
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  ; BB#1:
13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    li r3, 0
14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    blr
15*9880d681SAndroid Build Coastguard Worker;
16*9880d681SAndroid Build Coastguard Worker  %and = and i32 %x, %y
17*9880d681SAndroid Build Coastguard Worker  %cmp = icmp eq i32 %and, %y
18*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine i1 @and_cmp_const(i32 %x) {
22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: and_cmp_const:
23*9880d681SAndroid Build Coastguard Worker; CHECK:       ; BB#0:
24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    andi. r2, r3, 43
25*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    li r3, 1
26*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    cmpwi r2, 43
27*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    bclr 12, 2, 0
28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  ; BB#1:
29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    li r3, 0
30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    blr
31*9880d681SAndroid Build Coastguard Worker;
32*9880d681SAndroid Build Coastguard Worker  %and = and i32 %x, 43
33*9880d681SAndroid Build Coastguard Worker  %cmp = icmp eq i32 %and, 43
34*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
35*9880d681SAndroid Build Coastguard Worker}
36*9880d681SAndroid Build Coastguard Worker
37