xref: /aosp_15_r20/external/llvm/test/CodeGen/Thumb/bic_imm.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=thumbv7-linux-gnueabi -mcpu=cortex-m0 -verify-machineinstrs | FileCheck --check-prefix CHECK-T1 %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=thumbv7-linux-gnueabi -mcpu=cortex-m3 -verify-machineinstrs | FileCheck --check-prefix CHECK-T2 %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; CHECK-T1-LABEL: @i
5*9880d681SAndroid Build Coastguard Worker; CHECK-T2-LABEL: @i
6*9880d681SAndroid Build Coastguard Worker; CHECK-T1: movs r1, #255
7*9880d681SAndroid Build Coastguard Worker; CHECK-T1: adds r1, #20
8*9880d681SAndroid Build Coastguard Worker; CHECK-T1: bics r0, r1
9*9880d681SAndroid Build Coastguard Worker; CHECK-T2: movw r1, #275
10*9880d681SAndroid Build Coastguard Worker; CHECK-T2: bics r0, r1
11*9880d681SAndroid Build Coastguard Workerdefine i32 @i(i32 %a) {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker  %and = and i32 %a, -276
14*9880d681SAndroid Build Coastguard Worker  ret i32 %and
15*9880d681SAndroid Build Coastguard Worker}
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker; CHECK-T1-LABEL: @j
18*9880d681SAndroid Build Coastguard Worker; CHECK-T2-LABEL: @j
19*9880d681SAndroid Build Coastguard Worker; CHECK-T1: movs r1, #128
20*9880d681SAndroid Build Coastguard Worker; CHECK-T1: bics r0, r1
21*9880d681SAndroid Build Coastguard Worker; CHECK-T2: bic r0, r0, #128
22*9880d681SAndroid Build Coastguard Workerdefine i32 @j(i32 %a) {
23*9880d681SAndroid Build Coastguard Workerentry:
24*9880d681SAndroid Build Coastguard Worker  %and = and i32 %a, -129
25*9880d681SAndroid Build Coastguard Worker  ret i32 %and
26*9880d681SAndroid Build Coastguard Worker}
27