1 # RUN: llc %s -mtriple=loongarch64 -start-after=prologepilog -O0 -filetype=obj -o - \
2 # RUN: | extract-section .text \
3 # RUN: | FileCheck %s -check-prefix=CHECK-ENC
4 # RUN: llc %s -mtriple=loongarch64 -start-after=prologepilog -O0 -filetype=asm -o - \
5 # RUN: | FileCheck %s -check-prefix=CHECK-ASM
7 # -------------------------------------------------------------------------------------------------
8 # Encoding format: 1RI20
9 # -------------------------------------------------------------------------------------------------
10 # ---------------------+-----------------------------------------------------------+---------------
11 # 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
12 # ---------------------+-----------------------------------------------------------+---------------
14 # ---------------------+-----------------------------------------------------------+---------------
17 # CHECK-LABEL: test_LU12I_W:
18 # CHECK-ENC: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0
19 # CHECK-ASM: lu12i.w $a0, 49
26 # CHECK-LABEL: test_LU32I_D:
27 # CHECK-ENC: 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0
28 # CHECK-ASM: lu32i.d $a0, 196
32 $r4 = LU32I_D $r4, 196
35 # CHECK-LABEL: test_PCADDI:
36 # CHECK-ENC: 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0
37 # CHECK-ASM: pcaddi $a0, 187
44 # CHECK-LABEL: test_PCALAU12I:
45 # CHECK-ENC: 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0
46 # CHECK-ASM: pcalau12i $a0, 89
53 # CHECK-LABEL: test_PCADDU12I:
54 # CHECK-ENC: 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0
55 # CHECK-ASM: pcaddu12i $a0, 37
62 # CHECK-LABEL: test_PCADDU18I:
63 # CHECK-ENC: 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0
64 # CHECK-ASM: pcaddu18i $a0, 26
71 # -------------------------------------------------------------------------------------------------
72 # Encoding format: 1RI21
73 # -------------------------------------------------------------------------------------------------
74 # ------------------+-----------------------------------------------+--------------+---------------
75 # 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
76 # ------------------+-----------------------------------------------+--------------+---------------
77 # opcode | imm21{15-0} | rj | imm21{20-16}
78 # ------------------+-----------------------------------------------+--------------+---------------
81 # CHECK-LABEL: test_BEQZ:
82 # CHECK-ENC: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0
83 # CHECK-ASM: beqz $a0, 92
90 # CHECK-LABEL: test_BNEZ:
91 # CHECK-ENC: 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0
92 # CHECK-ASM: bnez $a0, 84