This patch fixes issue with the LU32I_D instruction, which did not have an input register operand. Differential Revision: https://reviews.llvm.org/D122970
97 lines
3.3 KiB
YAML
97 lines
3.3 KiB
YAML
# RUN: llc %s -mtriple=loongarch64 -start-after=prologepilog -O0 -filetype=obj -o - \
|
|
# RUN: | extract-section .text \
|
|
# RUN: | FileCheck %s -check-prefix=CHECK-ENC
|
|
# RUN: llc %s -mtriple=loongarch64 -start-after=prologepilog -O0 -filetype=asm -o - \
|
|
# RUN: | FileCheck %s -check-prefix=CHECK-ASM
|
|
|
|
# -------------------------------------------------------------------------------------------------
|
|
# Encoding format: 1RI20
|
|
# -------------------------------------------------------------------------------------------------
|
|
# ---------------------+-----------------------------------------------------------+---------------
|
|
# 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
|
|
# ---------------------+-----------------------------------------------------------+---------------
|
|
# opcode | imm20 | rd
|
|
# ---------------------+-----------------------------------------------------------+---------------
|
|
|
|
---
|
|
# CHECK-LABEL: test_LU12I_W:
|
|
# 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
|
|
# CHECK-ASM: lu12i.w $a0, 49
|
|
name: test_LU12I_W
|
|
body: |
|
|
bb.0:
|
|
$r4 = LU12I_W 49
|
|
...
|
|
---
|
|
# CHECK-LABEL: test_LU32I_D:
|
|
# 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
|
|
# CHECK-ASM: lu32i.d $a0, 196
|
|
name: test_LU32I_D
|
|
body: |
|
|
bb.0:
|
|
$r4 = LU32I_D $r4, 196
|
|
...
|
|
---
|
|
# CHECK-LABEL: test_PCADDI:
|
|
# 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
|
|
# CHECK-ASM: pcaddi $a0, 187
|
|
name: test_PCADDI
|
|
body: |
|
|
bb.0:
|
|
$r4 = PCADDI 187
|
|
...
|
|
---
|
|
# CHECK-LABEL: test_PCALAU12I:
|
|
# 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
|
|
# CHECK-ASM: pcalau12i $a0, 89
|
|
name: test_PCALAU12I
|
|
body: |
|
|
bb.0:
|
|
$r4 = PCALAU12I 89
|
|
...
|
|
---
|
|
# CHECK-LABEL: test_PCADDU12I:
|
|
# 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
|
|
# CHECK-ASM: pcaddu12i $a0, 37
|
|
name: test_PCADDU12I
|
|
body: |
|
|
bb.0:
|
|
$r4 = PCADDU12I 37
|
|
...
|
|
---
|
|
# CHECK-LABEL: test_PCADDU18I:
|
|
# 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
|
|
# CHECK-ASM: pcaddu18i $a0, 26
|
|
name: test_PCADDU18I
|
|
body: |
|
|
bb.0:
|
|
$r4 = PCADDU18I 26
|
|
...
|
|
|
|
# -------------------------------------------------------------------------------------------------
|
|
# Encoding format: 1RI21
|
|
# -------------------------------------------------------------------------------------------------
|
|
# ------------------+-----------------------------------------------+--------------+---------------
|
|
# 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
|
|
# ------------------+-----------------------------------------------+--------------+---------------
|
|
# opcode | imm21{15-0} | rj | imm21{20-16}
|
|
# ------------------+-----------------------------------------------+--------------+---------------
|
|
|
|
---
|
|
# CHECK-LABEL: test_BEQZ:
|
|
# 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
|
|
# CHECK-ASM: beqz $a0, 92
|
|
name: test_BEQZ
|
|
body: |
|
|
bb.0:
|
|
BEQZ $r4, 92
|
|
...
|
|
---
|
|
# CHECK-LABEL: test_BNEZ:
|
|
# 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
|
|
# CHECK-ASM: bnez $a0, 84
|
|
name: test_BNEZ
|
|
body: |
|
|
bb.0:
|
|
BNEZ $r4, 84
|