Compiler projects using llvm
# 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: 3RI2
# -------------------------------------------------------------------------------------------------
# ---------------------------------------------+-----+--------------+--------------+---------------
#  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                      |imm2 |      rk      |      rj      |      rd
# ---------------------------------------------+-----+--------------+--------------+---------------

---
# CHECK-LABEL: test_ALSL_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: alsl.w	$a0, $a1, $a2, 4
name: test_ALSL_W
body: |
  bb.0:
    $r4 = ALSL_W $r5, $r6, 4
...
---
# CHECK-LABEL: test_ALSL_WU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: alsl.wu	$a0, $a1, $a2, 2
name: test_ALSL_WU
body: |
  bb.0:
    $r4 = ALSL_WU $r5, $r6, 2
...
---
# CHECK-LABEL: test_ALSL_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: alsl.d	$a0, $a1, $a2, 4
name: test_ALSL_D
body: |
  bb.0:
    $r4 = ALSL_D $r5, $r6, 4
...
---
# CHECK-LABEL: test_BYTEPICK_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: bytepick.w	$a0, $a1, $a2, 0
name: test_BYTEPICK_W
body: |
  bb.0:
    $r4 = BYTEPICK_W $r5, $r6, 0
...

# -------------------------------------------------------------------------------------------------
#                                           Encoding format: 3RI3
# -------------------------------------------------------------------------------------------------
# ------------------------------------------+--------+--------------+--------------+---------------
#  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                     |  imm3  |      rk      |      rj      |      rd
# ------------------------------------------+--------+--------------+--------------+---------------

---
# CHECK-LABEL: test_BYTEPICK_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: bytepick.d	$a0, $a1, $a2, 4
name: test_BYTEPICK_D
body: |
  bb.0:
    $r4 = BYTEPICK_D $r5, $r6, 4