xref: /llvm-project/llvm/test/MC/LoongArch/Basic/Integer/branch.s (revision 7898587e948cc24af6e22f86c921949169f4f87b)
1## Test valid branch instructions.
2
3# RUN: llvm-mc %s --triple=loongarch32 --show-encoding \
4# RUN:     | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
5# RUN: llvm-mc %s --triple=loongarch64 --show-encoding \
6# RUN:     | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
7# RUN: llvm-mc %s --triple=loongarch32 --filetype=obj | llvm-objdump -d - \
8# RUN:     | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s
9# RUN: llvm-mc %s --triple=loongarch64 --filetype=obj | llvm-objdump -d - \
10# RUN:     | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s
11
12# CHECK-ASM-AND-OBJ: beq $a6, $a3, 176
13# CHECK-ASM: encoding: [0x47,0xb1,0x00,0x58]
14beq $a6, $a3, 176
15
16# CHECK-ASM-AND-OBJ: bne $s2, $ra, 136
17# CHECK-ASM: encoding: [0x21,0x8b,0x00,0x5c]
18bne $s2, $ra, 136
19
20# CHECK-ASM-AND-OBJ: blt $t3, $s7, 168
21# CHECK-ASM: encoding: [0xfe,0xa9,0x00,0x60]
22blt $t3, $s7, 168
23
24# CHECK-ASM-AND-OBJ: bge $t0, $t3, 148
25# CHECK-ASM: encoding: [0x8f,0x95,0x00,0x64]
26bge $t0, $t3, 148
27
28# CHECK-ASM-AND-OBJ: bltu $t5, $a1, 4
29# CHECK-ASM: encoding: [0x25,0x06,0x00,0x68]
30bltu $t5, $a1, 4
31
32# CHECK-ASM-AND-OBJ: bgeu $a2, $s0, 140
33# CHECK-ASM: encoding: [0xd7,0x8c,0x00,0x6c]
34bgeu $a2, $s0, 140
35
36# CHECK-ASM-AND-OBJ: beqz $a5, 96
37# CHECK-ASM: encoding: [0x20,0x61,0x00,0x40]
38beqz $a5, 96
39
40# CHECK-ASM-AND-OBJ: bnez $sp, 212
41# CHECK-ASM: encoding: [0x60,0xd4,0x00,0x44]
42bnez $sp, 212
43
44# CHECK-ASM-AND-OBJ: b 248
45# CHECK-ASM: encoding: [0x00,0xf8,0x00,0x50]
46b 248
47
48# CHECK-ASM-AND-OBJ: bl 236
49# CHECK-ASM: encoding: [0x00,0xec,0x00,0x54]
50bl 236
51
52# CHECK-ASM-AND-OBJ: jirl $ra, $a0, 4
53# CHECK-ASM: encoding: [0x81,0x04,0x00,0x4c]
54jirl $ra, $a0, 4
55
56