xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/compare-branch.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -verify-machineinstrs -o - %s -mtriple=aarch64-linux-gnu | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@var32 = global i32 0
4*9880d681SAndroid Build Coastguard Worker@var64 = global i64 0
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine void @foo() {
7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: foo:
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker  %val1 = load volatile i32, i32* @var32
10*9880d681SAndroid Build Coastguard Worker  %tst1 = icmp eq i32 %val1, 0
11*9880d681SAndroid Build Coastguard Worker  br i1 %tst1, label %end, label %test2
12*9880d681SAndroid Build Coastguard Worker; CHECK: cbz {{w[0-9]+}}, .LBB
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workertest2:
15*9880d681SAndroid Build Coastguard Worker  %val2 = load volatile i32, i32* @var32
16*9880d681SAndroid Build Coastguard Worker  %tst2 = icmp ne i32 %val2, 0
17*9880d681SAndroid Build Coastguard Worker  br i1 %tst2, label %end, label %test3
18*9880d681SAndroid Build Coastguard Worker; CHECK: cbnz {{w[0-9]+}}, .LBB
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workertest3:
21*9880d681SAndroid Build Coastguard Worker  %val3 = load volatile i64, i64* @var64
22*9880d681SAndroid Build Coastguard Worker  %tst3 = icmp eq i64 %val3, 0
23*9880d681SAndroid Build Coastguard Worker  br i1 %tst3, label %end, label %test4
24*9880d681SAndroid Build Coastguard Worker; CHECK: cbz {{x[0-9]+}}, .LBB
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workertest4:
27*9880d681SAndroid Build Coastguard Worker  %val4 = load volatile i64, i64* @var64
28*9880d681SAndroid Build Coastguard Worker  %tst4 = icmp ne i64 %val4, 0
29*9880d681SAndroid Build Coastguard Worker  br i1 %tst4, label %end, label %test5
30*9880d681SAndroid Build Coastguard Worker; CHECK: cbnz {{x[0-9]+}}, .LBB
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workertest5:
33*9880d681SAndroid Build Coastguard Worker  store volatile i64 %val4, i64* @var64
34*9880d681SAndroid Build Coastguard Worker  ret void
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerend:
37*9880d681SAndroid Build Coastguard Worker  ret void
38*9880d681SAndroid Build Coastguard Worker}
39