# 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: 3R
# -------------------------------------------------------------------------------------------------
# ---------------------------------------------------+--------------+--------------+---------------
# 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 | rk | rj | rd
# ---------------------------------------------------+--------------+--------------+---------------
---
# CHECK-LABEL: test_ADD_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: add.w $a0, $a1, $a0
name: test_ADD_W
body: |
bb.0:
$r4 = ADD_W $r5, $r4
...
---
# CHECK-LABEL: test_ADD_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: add.d $a0, $a1, $a0
name: test_ADD_D
body: |
bb.0:
$r4 = ADD_D $r5, $r4
...
---
# CHECK-LABEL: test_SUB_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sub.w $a0, $a1, $a0
name: test_SUB_W
body: |
bb.0:
$r4 = SUB_W $r5, $r4
...
---
# CHECK-LABEL: test_SUB_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sub.d $a0, $a1, $a0
name: test_SUB_D
body: |
bb.0:
$r4 = SUB_D $r5, $r4
...
---
# CHECK-LABEL: test_SLT:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: slt $a0, $a1, $a0
name: test_SLT
body: |
bb.0:
$r4 = SLT $r5, $r4
...
---
# CHECK-LABEL: test_SLTU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sltu $a0, $a1, $a0
name: test_SLTU
body: |
bb.0:
$r4 = SLTU $r5, $r4
...
---
# CHECK-LABEL: test_MASKEQZ:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: maskeqz $a0, $a1, $a0
name: test_MASKEQZ
body: |
bb.0:
$r4 = MASKEQZ $r5, $r4
...
---
# CHECK-LABEL: test_MASKNEZ:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: masknez $a0, $a1, $a0
name: test_MASKNEZ
body: |
bb.0:
$r4 = MASKNEZ $r5, $r4
...
---
# CHECK-LABEL: test_NOR:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: nor $a0, $a1, $a0
name: test_NOR
body: |
bb.0:
$r4 = NOR $r5, $r4
...
---
# CHECK-LABEL: test_AND:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: and $a0, $a1, $a0
name: test_AND
body: |
bb.0:
$r4 = AND $r5, $r4
...
---
# CHECK-LABEL: test_OR:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: or $a0, $a1, $a0
name: test_OR
body: |
bb.0:
$r4 = OR $r5, $r4
...
---
# CHECK-LABEL: test_XOR:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: xor $a0, $a1, $a0
name: test_XOR
body: |
bb.0:
$r4 = XOR $r5, $r4
...
---
# CHECK-LABEL: test_ORN:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: orn $a0, $a1, $a0
name: test_ORN
body: |
bb.0:
$r4 = ORN $r5, $r4
...
---
# CHECK-LABEL: test_ANDN:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: andn $a0, $a1, $a0
name: test_ANDN
body: |
bb.0:
$r4 = ANDN $r5, $r4
...
---
# CHECK-LABEL: test_SLL_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sll.w $a0, $a1, $a0
name: test_SLL_W
body: |
bb.0:
$r4 = SLL_W $r5, $r4
...
---
# CHECK-LABEL: test_SRL_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: srl.w $a0, $a1, $a0
name: test_SRL_W
body: |
bb.0:
$r4 = SRL_W $r5, $r4
...
---
# CHECK-LABEL: test_SRA_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sra.w $a0, $a1, $a0
name: test_SRA_W
body: |
bb.0:
$r4 = SRA_W $r5, $r4
...
---
# CHECK-LABEL: test_SLL_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sll.d $a0, $a1, $a0
name: test_SLL_D
body: |
bb.0:
$r4 = SLL_D $r5, $r4
...
---
# CHECK-LABEL: test_SRL_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: srl.d $a0, $a1, $a0
name: test_SRL_D
body: |
bb.0:
$r4 = SRL_D $r5, $r4
...
---
# CHECK-LABEL: test_SRA_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: sra.d $a0, $a1, $a0
name: test_SRA_D
body: |
bb.0:
$r4 = SRA_D $r5, $r4
...
---
# CHECK-LABEL: test_ROTR_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: rotr.w $a0, $a1, $a0
name: test_ROTR_W
body: |
bb.0:
$r4 = ROTR_W $r5, $r4
...
---
# CHECK-LABEL: test_ROTR_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: rotr.d $a0, $a1, $a0
name: test_ROTR_D
body: |
bb.0:
$r4 = ROTR_D $r5, $r4
...
---
# CHECK-LABEL: test_MUL_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mul.w $a0, $a1, $a0
name: test_MUL_W
body: |
bb.0:
$r4 = MUL_W $r5, $r4
...
---
# CHECK-LABEL: test_MULH_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mulh.w $a0, $a1, $a0
name: test_MULH_W
body: |
bb.0:
$r4 = MULH_W $r5, $r4
...
---
# CHECK-LABEL: test_MULH_WU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mulh.wu $a0, $a1, $a0
name: test_MULH_WU
body: |
bb.0:
$r4 = MULH_WU $r5, $r4
...
---
# CHECK-LABEL: test_MUL_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mul.d $a0, $a1, $a0
name: test_MUL_D
body: |
bb.0:
$r4 = MUL_D $r5, $r4
...
---
# CHECK-LABEL: test_MULH_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mulh.d $a0, $a1, $a0
name: test_MULH_D
body: |
bb.0:
$r4 = MULH_D $r5, $r4
...
---
# CHECK-LABEL: test_MULH_DU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mulh.du $a0, $a1, $a0
name: test_MULH_DU
body: |
bb.0:
$r4 = MULH_DU $r5, $r4
...
---
# CHECK-LABEL: test_MULW_D_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mulw.d.w $a0, $a1, $a0
name: test_MULW_D_W
body: |
bb.0:
$r4 = MULW_D_W $r5, $r4
...
---
# CHECK-LABEL: test_MULW_D_WU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mulw.d.wu $a0, $a1, $a0
name: test_MULW_D_WU
body: |
bb.0:
$r4 = MULW_D_WU $r5, $r4
...
---
# CHECK-LABEL: test_DIV_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: div.w $a0, $a1, $a0
name: test_DIV_W
body: |
bb.0:
$r4 = DIV_W $r5, $r4
...
---
# CHECK-LABEL: test_MOD_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mod.w $a0, $a1, $a0
name: test_MOD_W
body: |
bb.0:
$r4 = MOD_W $r5, $r4
...
---
# CHECK-LABEL: test_DIV_WU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: div.wu $a0, $a1, $a0
name: test_DIV_WU
body: |
bb.0:
$r4 = DIV_WU $r5, $r4
...
---
# CHECK-LABEL: test_MOD_WU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mod.wu $a0, $a1, $a0
name: test_MOD_WU
body: |
bb.0:
$r4 = MOD_WU $r5, $r4
...
---
# CHECK-LABEL: test_DIV_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: div.d $a0, $a1, $a0
name: test_DIV_D
body: |
bb.0:
$r4 = DIV_D $r5, $r4
...
---
# CHECK-LABEL: test_MOD_D:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mod.d $a0, $a1, $a0
name: test_MOD_D
body: |
bb.0:
$r4 = MOD_D $r5, $r4
...
---
# CHECK-LABEL: test_DIV_DU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: div.du $a0, $a1, $a0
name: test_DIV_DU
body: |
bb.0:
$r4 = DIV_DU $r5, $r4
...
---
# CHECK-LABEL: test_MOD_DU:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: mod.du $a0, $a1, $a0
name: test_MOD_DU
body: |
bb.0:
$r4 = MOD_DU $r5, $r4
...
---
# CHECK-LABEL: test_CRC_W_B_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crc.w.b.w $a0, $a1, $a0
name: test_CRC_W_B_W
body: |
bb.0:
$r4 = CRC_W_B_W $r5, $r4
...
---
# CHECK-LABEL: test_CRC_W_H_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crc.w.h.w $a0, $a1, $a0
name: test_CRC_W_H_W
body: |
bb.0:
$r4 = CRC_W_H_W $r5, $r4
...
---
# CHECK-LABEL: test_CRC_W_W_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crc.w.w.w $a0, $a1, $a0
name: test_CRC_W_W_W
body: |
bb.0:
$r4 = CRC_W_W_W $r5, $r4
...
---
# CHECK-LABEL: test_CRC_W_D_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crc.w.d.w $a0, $a1, $a0
name: test_CRC_W_D_W
body: |
bb.0:
$r4 = CRC_W_D_W $r5, $r4
...
---
# CHECK-LABEL: test_CRCC_W_B_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crcc.w.b.w $a0, $a1, $a0
name: test_CRCC_W_B_W
body: |
bb.0:
$r4 = CRCC_W_B_W $r5, $r4
...
---
# CHECK-LABEL: test_CRCC_W_H_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crcc.w.h.w $a0, $a1, $a0
name: test_CRCC_W_H_W
body: |
bb.0:
$r4 = CRCC_W_H_W $r5, $r4
...
---
# CHECK-LABEL: test_CRCC_W_W_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crcc.w.w.w $a0, $a1, $a0
name: test_CRCC_W_W_W
body: |
bb.0:
$r4 = CRCC_W_W_W $r5, $r4
...
---
# CHECK-LABEL: test_CRCC_W_D_W:
# CHECK-ENC: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: crcc.w.d.w $a0, $a1, $a0
name: test_CRCC_W_D_W
body: |
bb.0:
$r4 = CRCC_W_D_W $r5, $r4
...
---
# CHECK-LABEL: test_AMSWAP_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amswap_db.w $a0, $a1, $a2
name: test_AMSWAP_DB_W
body: |
bb.0:
$r4 = AMSWAP_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMSWAP_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amswap_db.d $a0, $a1, $a2
name: test_AMSWAP_DB_D
body: |
bb.0:
$r4 = AMSWAP_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMADD_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amadd_db.w $a0, $a1, $a2
name: test_AMADD_DB_W
body: |
bb.0:
$r4 = AMADD_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMADD_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amadd_db.d $a0, $a1, $a2
name: test_AMADD_DB_D
body: |
bb.0:
$r4 = AMADD_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMAND_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amand_db.w $a0, $a1, $a2
name: test_AMAND_DB_W
body: |
bb.0:
$r4 = AMAND_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMAND_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amand_db.d $a0, $a1, $a2
name: test_AMAND_DB_D
body: |
bb.0:
$r4 = AMAND_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMOR_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amor_db.w $a0, $a1, $a2
name: test_AMOR_DB_W
body: |
bb.0:
$r4 = AMOR_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMOR_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amor_db.d $a0, $a1, $a2
name: test_AMOR_DB_D
body: |
bb.0:
$r4 = AMOR_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMXOR_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amxor_db.w $a0, $a1, $a2
name: test_AMXOR_DB_W
body: |
bb.0:
$r4 = AMXOR_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMXOR_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amxor_db.d $a0, $a1, $a2
name: test_AMXOR_DB_D
body: |
bb.0:
$r4 = AMXOR_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax_db.w $a0, $a1, $a2
name: test_AMMAX_DB_W
body: |
bb.0:
$r4 = AMMAX_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax_db.d $a0, $a1, $a2
name: test_AMMAX_DB_D
body: |
bb.0:
$r4 = AMMAX_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_DB_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin_db.w $a0, $a1, $a2
name: test_AMMIN_DB_W
body: |
bb.0:
$r4 = AMMIN_DB_W $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_DB_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin_db.d $a0, $a1, $a2
name: test_AMMIN_DB_D
body: |
bb.0:
$r4 = AMMIN_DB_D $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_DB_WU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax_db.wu $a0, $a1, $a2
name: test_AMMAX_DB_WU
body: |
bb.0:
$r4 = AMMAX_DB_WU $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_DB_DU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax_db.du $a0, $a1, $a2
name: test_AMMAX_DB_DU
body: |
bb.0:
$r4 = AMMAX_DB_DU $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_DB_WU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin_db.wu $a0, $a1, $a2
name: test_AMMIN_DB_WU
body: |
bb.0:
$r4 = AMMIN_DB_WU $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_DB_DU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin_db.du $a0, $a1, $a2
name: test_AMMIN_DB_DU
body: |
bb.0:
$r4 = AMMIN_DB_DU $r5, $r6
...
---
# CHECK-LABEL: test_AMSWAP_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amswap.w $a0, $a1, $a2
name: test_AMSWAP_W
body: |
bb.0:
$r4 = AMSWAP_W $r5, $r6
...
---
# CHECK-LABEL: test_AMSWAP_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amswap.d $a0, $a1, $a2
name: test_AMSWAP_D
body: |
bb.0:
$r4 = AMSWAP_D $r5, $r6
...
---
# CHECK-LABEL: test_AMADD_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amadd.w $a0, $a1, $a2
name: test_AMADD_W
body: |
bb.0:
$r4 = AMADD_W $r5, $r6
...
---
# CHECK-LABEL: test_AMADD_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amadd.d $a0, $a1, $a2
name: test_AMADD_D
body: |
bb.0:
$r4 = AMADD_D $r5, $r6
...
---
# CHECK-LABEL: test_AMAND_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amand.w $a0, $a1, $a2
name: test_AMAND_W
body: |
bb.0:
$r4 = AMAND_W $r5, $r6
...
---
# CHECK-LABEL: test_AMAND_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amand.d $a0, $a1, $a2
name: test_AMAND_D
body: |
bb.0:
$r4 = AMAND_D $r5, $r6
...
---
# CHECK-LABEL: test_AMOR_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amor.w $a0, $a1, $a2
name: test_AMOR_W
body: |
bb.0:
$r4 = AMOR_W $r5, $r6
...
---
# CHECK-LABEL: test_AMOR_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amor.d $a0, $a1, $a2
name: test_AMOR_D
body: |
bb.0:
$r4 = AMOR_D $r5, $r6
...
---
# CHECK-LABEL: test_AMXOR_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amxor.w $a0, $a1, $a2
name: test_AMXOR_W
body: |
bb.0:
$r4 = AMXOR_W $r5, $r6
...
---
# CHECK-LABEL: test_AMXOR_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: amxor.d $a0, $a1, $a2
name: test_AMXOR_D
body: |
bb.0:
$r4 = AMXOR_D $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax.w $a0, $a1, $a2
name: test_AMMAX_W
body: |
bb.0:
$r4 = AMMAX_W $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax.d $a0, $a1, $a2
name: test_AMMAX_D
body: |
bb.0:
$r4 = AMMAX_D $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin.w $a0, $a1, $a2
name: test_AMMIN_W
body: |
bb.0:
$r4 = AMMIN_W $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin.d $a0, $a1, $a2
name: test_AMMIN_D
body: |
bb.0:
$r4 = AMMIN_D $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_WU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax.wu $a0, $a1, $a2
name: test_AMMAX_WU
body: |
bb.0:
$r4 = AMMAX_WU $r5, $r6
...
---
# CHECK-LABEL: test_AMMAX_DU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammax.du $a0, $a1, $a2
name: test_AMMAX_DU
body: |
bb.0:
$r4 = AMMAX_DU $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_WU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin.wu $a0, $a1, $a2
name: test_AMMIN_WU
body: |
bb.0:
$r4 = AMMIN_WU $r5, $r6
...
---
# CHECK-LABEL: test_AMMIN_DU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0
# CHECK-ASM: ammin.du $a0, $a1, $a2
name: test_AMMIN_DU
body: |
bb.0:
$r4 = AMMIN_DU $r5, $r6
...
---
# CHECK-LABEL: test_LDX_B:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldx.b $a0, $a1, $a2
name: test_LDX_B
body: |
bb.0:
$r4 = LDX_B $r5, $r6
...
---
# CHECK-LABEL: test_LDX_H:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldx.h $a0, $a1, $a2
name: test_LDX_H
body: |
bb.0:
$r4 = LDX_H $r5, $r6
...
---
# CHECK-LABEL: test_LDX_W:
# CHECK-ENC: 0 0 1 1 1 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: ldx.w $a0, $a1, $a2
name: test_LDX_W
body: |
bb.0:
$r4 = LDX_W $r5, $r6
...
---
# CHECK-LABEL: test_LDX_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldx.d $a0, $a1, $a2
name: test_LDX_D
body: |
bb.0:
$r4 = LDX_D $r5, $r6
...
---
# CHECK-LABEL: test_LDX_BU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldx.bu $a0, $a1, $a2
name: test_LDX_BU
body: |
bb.0:
$r4 = LDX_BU $r5, $r6
...
---
# CHECK-LABEL: test_LDX_HU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldx.hu $a0, $a1, $a2
name: test_LDX_HU
body: |
bb.0:
$r4 = LDX_HU $r5, $r6
...
---
# CHECK-LABEL: test_LDX_WU:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldx.wu $a0, $a1, $a2
name: test_LDX_WU
body: |
bb.0:
$r4 = LDX_WU $r5, $r6
...
---
# CHECK-LABEL: test_LDGT_B:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldgt.b $a0, $a1, $a2
name: test_LDGT_B
body: |
bb.0:
$r4 = LDGT_B $r5, $r6
...
---
# CHECK-LABEL: test_LDGT_H:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldgt.h $a0, $a1, $a2
name: test_LDGT_H
body: |
bb.0:
$r4 = LDGT_H $r5, $r6
...
---
# CHECK-LABEL: test_LDGT_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldgt.w $a0, $a1, $a2
name: test_LDGT_W
body: |
bb.0:
$r4 = LDGT_W $r5, $r6
...
---
# CHECK-LABEL: test_LDGT_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldgt.d $a0, $a1, $a2
name: test_LDGT_D
body: |
bb.0:
$r4 = LDGT_D $r5, $r6
...
---
# CHECK-LABEL: test_LDLE_B:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldle.b $a0, $a1, $a2
name: test_LDLE_B
body: |
bb.0:
$r4 = LDLE_B $r5, $r6
...
---
# CHECK-LABEL: test_LDLE_H:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldle.h $a0, $a1, $a2
name: test_LDLE_H
body: |
bb.0:
$r4 = LDLE_H $r5, $r6
...
---
# CHECK-LABEL: test_LDLE_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldle.w $a0, $a1, $a2
name: test_LDLE_W
body: |
bb.0:
$r4 = LDLE_W $r5, $r6
...
---
# CHECK-LABEL: test_LDLE_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: ldle.d $a0, $a1, $a2
name: test_LDLE_D
body: |
bb.0:
$r4 = LDLE_D $r5, $r6
...
---
# CHECK-LABEL: test_STX_B:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stx.b $a0, $a1, $a2
name: test_STX_B
body: |
bb.0:
STX_B $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STX_H:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stx.h $a0, $a1, $a2
name: test_STX_H
body: |
bb.0:
STX_H $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STX_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stx.w $a0, $a1, $a2
name: test_STX_W
body: |
bb.0:
STX_W $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STX_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stx.d $a0, $a1, $a2
name: test_STX_D
body: |
bb.0:
STX_D $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STGT_B:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stgt.b $a0, $a1, $a2
name: test_STGT_B
body: |
bb.0:
STGT_B $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STGT_H:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stgt.h $a0, $a1, $a2
name: test_STGT_H
body: |
bb.0:
STGT_H $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STGT_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stgt.w $a0, $a1, $a2
name: test_STGT_W
body: |
bb.0:
STGT_W $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STGT_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stgt.d $a0, $a1, $a2
name: test_STGT_D
body: |
bb.0:
STGT_D $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STLE_B:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stle.b $a0, $a1, $a2
name: test_STLE_B
body: |
bb.0:
STLE_B $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STLE_H:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stle.h $a0, $a1, $a2
name: test_STLE_H
body: |
bb.0:
STLE_H $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STLE_W:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stle.w $a0, $a1, $a2
name: test_STLE_W
body: |
bb.0:
STLE_W $r4, $r5, $r6
...
---
# CHECK-LABEL: test_STLE_D:
# CHECK-ENC: 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0
# CHECK-ASM: stle.d $a0, $a1, $a2
name: test_STLE_D
body: |
bb.0:
STLE_D $r4, $r5, $r6