[llvm] [RISCV] Fix the disassembler's handling of C.LUI when imm=0 (PR #133450)

Paul Bowen-Huggett via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 28 09:56:24 PDT 2025


https://github.com/paulhuggett updated https://github.com/llvm/llvm-project/pull/133450

>From 29e4fcc2e898e0581ba0d9ea1a52dc6fdafd06fe Mon Sep 17 00:00:00 2001
From: Paul Bowen-Huggett <paulhuggett at mac.com>
Date: Fri, 28 Mar 2025 15:34:20 +0100
Subject: [PATCH 1/3] [riscv] Fix the disassembler's handling of C.LUI when
 imm=0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

According to the RISC-V spec: "C.LUI is valid only when rd≠{x0,x2},
and when the immediate is not equal to zero. The code points with
imm=0 are reserved".

This change makes the disassembler consider code
points with imm=0 as illegal. It introduces a test which exercises
every C.LUI opcode including the illegal ones but excluding those
assigned to C.ADDI16SP). Output for +c, +c +Zcmop, and +c
+no-rvc-hints is checked.
---
 .../RISCV/Disassembler/RISCVDisassembler.cpp  |    3 +
 llvm/test/MC/RISCV/c_lui_disasm.s             | 2073 +++++++++++++++++
 2 files changed, 2076 insertions(+)
 create mode 100644 llvm/test/MC/RISCV/c_lui_disasm.s

diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index 15f9ea0bb86bd..048f8e4edd44f 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -453,6 +453,9 @@ static DecodeStatus decodeCLUIImmOperand(MCInst &Inst, uint32_t Imm,
                                          int64_t Address,
                                          const MCDisassembler *Decoder) {
   assert(isUInt<6>(Imm) && "Invalid immediate");
+  if (Imm == 0) {
+    return MCDisassembler::Fail;
+  }
   if (Imm > 31) {
     Imm = (SignExtend64<6>(Imm) & 0xfffff);
   }
diff --git a/llvm/test/MC/RISCV/c_lui_disasm.s b/llvm/test/MC/RISCV/c_lui_disasm.s
new file mode 100644
index 0000000000000..e0002acd5ac6f
--- /dev/null
+++ b/llvm/test/MC/RISCV/c_lui_disasm.s
@@ -0,0 +1,2073 @@
+# This test verifies the disassembler's behavior for all C.LUI opcodes with the
+# exception of those assigned to C.ADDI16SP
+#
+# RUN: llvm-mc --disassemble -triple=riscv32 -mattr=+c -M no-aliases \
+# RUN:     --show-encoding < %s | FileCheck --check-prefix=GOOD %s
+#
+# RUN: llvm-mc --disassemble -triple=riscv32 -mattr=+c -M no-aliases \
+# RUN:     --show-encoding < %s 2>&1 | FileCheck --check-prefix=BAD %s
+#
+# RUN: llvm-mc --disassemble -triple=riscv32  -mattr=+c -mattr=+Zcmop \
+# RUN:     -M no-aliases --show-encoding < %s | \
+# RUN:   FileCheck --check-prefixes=GOOD,MOP %s
+#
+# RUN: llvm-mc --disassemble -triple=riscv32  -mattr=+c -mattr=+no-rvc-hints \
+# RUN:     -M no-aliases --show-encoding < %s 2>&1 | \
+# RUN:   FileCheck --check-prefix=NOHINTS %s
+
+0x01 0x60 # BAD: invalid instruction encoding
+0x01 0x60 # NOHINTS: invalid instruction encoding
+0x05 0x60 # GOOD: c.lui zero, 1
+0x05 0x60 # NOHINTS: invalid instruction encoding
+0x09 0x60 # GOOD: c.lui zero, 2
+0x09 0x60 # NOHINTS: invalid instruction encoding
+0x0D 0x60 # GOOD: c.lui zero, 3
+0x0D 0x60 # NOHINTS: invalid instruction encoding
+0x11 0x60 # GOOD: c.lui zero, 4
+0x11 0x60 # NOHINTS: invalid instruction encoding
+0x15 0x60 # GOOD: c.lui zero, 5
+0x15 0x60 # NOHINTS: invalid instruction encoding
+0x19 0x60 # GOOD: c.lui zero, 6
+0x19 0x60 # NOHINTS: invalid instruction encoding
+0x1D 0x60 # GOOD: c.lui zero, 7
+0x1D 0x60 # NOHINTS: invalid instruction encoding
+0x21 0x60 # GOOD: c.lui zero, 8
+0x21 0x60 # NOHINTS: invalid instruction encoding
+0x25 0x60 # GOOD: c.lui zero, 9
+0x25 0x60 # NOHINTS: invalid instruction encoding
+0x29 0x60 # GOOD: c.lui zero, 10
+0x29 0x60 # NOHINTS: invalid instruction encoding
+0x2D 0x60 # GOOD: c.lui zero, 11
+0x2D 0x60 # NOHINTS: invalid instruction encoding
+0x31 0x60 # GOOD: c.lui zero, 12
+0x31 0x60 # NOHINTS: invalid instruction encoding
+0x35 0x60 # GOOD: c.lui zero, 13
+0x35 0x60 # NOHINTS: invalid instruction encoding
+0x39 0x60 # GOOD: c.lui zero, 14
+0x39 0x60 # NOHINTS: invalid instruction encoding
+0x3D 0x60 # GOOD: c.lui zero, 15
+0x3D 0x60 # NOHINTS: invalid instruction encoding
+0x41 0x60 # GOOD: c.lui zero, 16
+0x41 0x60 # NOHINTS: invalid instruction encoding
+0x45 0x60 # GOOD: c.lui zero, 17
+0x45 0x60 # NOHINTS: invalid instruction encoding
+0x49 0x60 # GOOD: c.lui zero, 18
+0x49 0x60 # NOHINTS: invalid instruction encoding
+0x4D 0x60 # GOOD: c.lui zero, 19
+0x4D 0x60 # NOHINTS: invalid instruction encoding
+0x51 0x60 # GOOD: c.lui zero, 20
+0x51 0x60 # NOHINTS: invalid instruction encoding
+0x55 0x60 # GOOD: c.lui zero, 21
+0x55 0x60 # NOHINTS: invalid instruction encoding
+0x59 0x60 # GOOD: c.lui zero, 22
+0x59 0x60 # NOHINTS: invalid instruction encoding
+0x5D 0x60 # GOOD: c.lui zero, 23
+0x5D 0x60 # NOHINTS: invalid instruction encoding
+0x61 0x60 # GOOD: c.lui zero, 24
+0x61 0x60 # NOHINTS: invalid instruction encoding
+0x65 0x60 # GOOD: c.lui zero, 25
+0x65 0x60 # NOHINTS: invalid instruction encoding
+0x69 0x60 # GOOD: c.lui zero, 26
+0x69 0x60 # NOHINTS: invalid instruction encoding
+0x6D 0x60 # GOOD: c.lui zero, 27
+0x6D 0x60 # NOHINTS: invalid instruction encoding
+0x71 0x60 # GOOD: c.lui zero, 28
+0x71 0x60 # NOHINTS: invalid instruction encoding
+0x75 0x60 # GOOD: c.lui zero, 29
+0x75 0x60 # NOHINTS: invalid instruction encoding
+0x79 0x60 # GOOD: c.lui zero, 30
+0x79 0x60 # NOHINTS: invalid instruction encoding
+0x7D 0x60 # GOOD: c.lui zero, 31
+0x7D 0x60 # NOHINTS: invalid instruction encoding
+0x01 0x70 # GOOD: c.lui zero, -32
+0x01 0x70 # NOHINTS: invalid instruction encoding
+0x05 0x70 # GOOD: c.lui zero, -31
+0x05 0x70 # NOHINTS: invalid instruction encoding
+0x09 0x70 # GOOD: c.lui zero, -30
+0x09 0x70 # NOHINTS: invalid instruction encoding
+0x0D 0x70 # GOOD: c.lui zero, -29
+0x0D 0x70 # NOHINTS: invalid instruction encoding
+0x11 0x70 # GOOD: c.lui zero, -28
+0x11 0x70 # NOHINTS: invalid instruction encoding
+0x15 0x70 # GOOD: c.lui zero, -27
+0x15 0x70 # NOHINTS: invalid instruction encoding
+0x19 0x70 # GOOD: c.lui zero, -26
+0x19 0x70 # NOHINTS: invalid instruction encoding
+0x1D 0x70 # GOOD: c.lui zero, -25
+0x1D 0x70 # NOHINTS: invalid instruction encoding
+0x21 0x70 # GOOD: c.lui zero, -24
+0x21 0x70 # NOHINTS: invalid instruction encoding
+0x25 0x70 # GOOD: c.lui zero, -23
+0x25 0x70 # NOHINTS: invalid instruction encoding
+0x29 0x70 # GOOD: c.lui zero, -22
+0x29 0x70 # NOHINTS: invalid instruction encoding
+0x2D 0x70 # GOOD: c.lui zero, -21
+0x2D 0x70 # NOHINTS: invalid instruction encoding
+0x31 0x70 # GOOD: c.lui zero, -20
+0x31 0x70 # NOHINTS: invalid instruction encoding
+0x35 0x70 # GOOD: c.lui zero, -19
+0x35 0x70 # NOHINTS: invalid instruction encoding
+0x39 0x70 # GOOD: c.lui zero, -18
+0x39 0x70 # NOHINTS: invalid instruction encoding
+0x3D 0x70 # GOOD: c.lui zero, -17
+0x3D 0x70 # NOHINTS: invalid instruction encoding
+0x41 0x70 # GOOD: c.lui zero, -16
+0x41 0x70 # NOHINTS: invalid instruction encoding
+0x45 0x70 # GOOD: c.lui zero, -15
+0x45 0x70 # NOHINTS: invalid instruction encoding
+0x49 0x70 # GOOD: c.lui zero, -14
+0x49 0x70 # NOHINTS: invalid instruction encoding
+0x4D 0x70 # GOOD: c.lui zero, -13
+0x4D 0x70 # NOHINTS: invalid instruction encoding
+0x51 0x70 # GOOD: c.lui zero, -12
+0x51 0x70 # NOHINTS: invalid instruction encoding
+0x55 0x70 # GOOD: c.lui zero, -11
+0x55 0x70 # NOHINTS: invalid instruction encoding
+0x59 0x70 # GOOD: c.lui zero, -10
+0x59 0x70 # NOHINTS: invalid instruction encoding
+0x5D 0x70 # GOOD: c.lui zero, -9
+0x5D 0x70 # NOHINTS: invalid instruction encoding
+0x61 0x70 # GOOD: c.lui zero, -8
+0x61 0x70 # NOHINTS: invalid instruction encoding
+0x65 0x70 # GOOD: c.lui zero, -7
+0x65 0x70 # NOHINTS: invalid instruction encoding
+0x69 0x70 # GOOD: c.lui zero, -6
+0x69 0x70 # NOHINTS: invalid instruction encoding
+0x6D 0x70 # GOOD: c.lui zero, -5
+0x6D 0x70 # NOHINTS: invalid instruction encoding
+0x71 0x70 # GOOD: c.lui zero, -4
+0x71 0x70 # NOHINTS: invalid instruction encoding
+0x75 0x70 # GOOD: c.lui zero, -3
+0x75 0x70 # NOHINTS: invalid instruction encoding
+0x79 0x70 # GOOD: c.lui zero, -2
+0x79 0x70 # NOHINTS: invalid instruction encoding
+0x7D 0x70 # GOOD: c.lui zero, -1
+0x7D 0x70 # NOHINTS: invalid instruction encoding
+0x81 0x60 # BAD: invalid instruction encoding
+0x81 0x60 # MOP: c.mop.1
+0x85 0x60 # GOOD: c.lui ra, 1
+0x89 0x60 # GOOD: c.lui ra, 2
+0x8D 0x60 # GOOD: c.lui ra, 3
+0x91 0x60 # GOOD: c.lui ra, 4
+0x95 0x60 # GOOD: c.lui ra, 5
+0x99 0x60 # GOOD: c.lui ra, 6
+0x9D 0x60 # GOOD: c.lui ra, 7
+0xA1 0x60 # GOOD: c.lui ra, 8
+0xA5 0x60 # GOOD: c.lui ra, 9
+0xA9 0x60 # GOOD: c.lui ra, 10
+0xAD 0x60 # GOOD: c.lui ra, 11
+0xB1 0x60 # GOOD: c.lui ra, 12
+0xB5 0x60 # GOOD: c.lui ra, 13
+0xB9 0x60 # GOOD: c.lui ra, 14
+0xBD 0x60 # GOOD: c.lui ra, 15
+0xC1 0x60 # GOOD: c.lui ra, 16
+0xC5 0x60 # GOOD: c.lui ra, 17
+0xC9 0x60 # GOOD: c.lui ra, 18
+0xCD 0x60 # GOOD: c.lui ra, 19
+0xD1 0x60 # GOOD: c.lui ra, 20
+0xD5 0x60 # GOOD: c.lui ra, 21
+0xD9 0x60 # GOOD: c.lui ra, 22
+0xDD 0x60 # GOOD: c.lui ra, 23
+0xE1 0x60 # GOOD: c.lui ra, 24
+0xE5 0x60 # GOOD: c.lui ra, 25
+0xE9 0x60 # GOOD: c.lui ra, 26
+0xED 0x60 # GOOD: c.lui ra, 27
+0xF1 0x60 # GOOD: c.lui ra, 28
+0xF5 0x60 # GOOD: c.lui ra, 29
+0xF9 0x60 # GOOD: c.lui ra, 30
+0xFD 0x60 # GOOD: c.lui ra, 31
+0x81 0x70 # GOOD: c.lui ra, 1048544
+0x85 0x70 # GOOD: c.lui ra, 1048545
+0x89 0x70 # GOOD: c.lui ra, 1048546
+0x8D 0x70 # GOOD: c.lui ra, 1048547
+0x91 0x70 # GOOD: c.lui ra, 1048548
+0x95 0x70 # GOOD: c.lui ra, 1048549
+0x99 0x70 # GOOD: c.lui ra, 1048550
+0x9D 0x70 # GOOD: c.lui ra, 1048551
+0xA1 0x70 # GOOD: c.lui ra, 1048552
+0xA5 0x70 # GOOD: c.lui ra, 1048553
+0xA9 0x70 # GOOD: c.lui ra, 1048554
+0xAD 0x70 # GOOD: c.lui ra, 1048555
+0xB1 0x70 # GOOD: c.lui ra, 1048556
+0xB5 0x70 # GOOD: c.lui ra, 1048557
+0xB9 0x70 # GOOD: c.lui ra, 1048558
+0xBD 0x70 # GOOD: c.lui ra, 1048559
+0xC1 0x70 # GOOD: c.lui ra, 1048560
+0xC5 0x70 # GOOD: c.lui ra, 1048561
+0xC9 0x70 # GOOD: c.lui ra, 1048562
+0xCD 0x70 # GOOD: c.lui ra, 1048563
+0xD1 0x70 # GOOD: c.lui ra, 1048564
+0xD5 0x70 # GOOD: c.lui ra, 1048565
+0xD9 0x70 # GOOD: c.lui ra, 1048566
+0xDD 0x70 # GOOD: c.lui ra, 1048567
+0xE1 0x70 # GOOD: c.lui ra, 1048568
+0xE5 0x70 # GOOD: c.lui ra, 1048569
+0xE9 0x70 # GOOD: c.lui ra, 1048570
+0xED 0x70 # GOOD: c.lui ra, 1048571
+0xF1 0x70 # GOOD: c.lui ra, 1048572
+0xF5 0x70 # GOOD: c.lui ra, 1048573
+0xF9 0x70 # GOOD: c.lui ra, 1048574
+0xFD 0x70 # GOOD: c.lui ra, 1048575
+0x81 0x61 # BAD: invalid instruction encoding
+0x81 0x61 # MOP: c.mop.3
+0x85 0x61 # GOOD: c.lui gp, 1
+0x89 0x61 # GOOD: c.lui gp, 2
+0x8D 0x61 # GOOD: c.lui gp, 3
+0x91 0x61 # GOOD: c.lui gp, 4
+0x95 0x61 # GOOD: c.lui gp, 5
+0x99 0x61 # GOOD: c.lui gp, 6
+0x9D 0x61 # GOOD: c.lui gp, 7
+0xA1 0x61 # GOOD: c.lui gp, 8
+0xA5 0x61 # GOOD: c.lui gp, 9
+0xA9 0x61 # GOOD: c.lui gp, 10
+0xAD 0x61 # GOOD: c.lui gp, 11
+0xB1 0x61 # GOOD: c.lui gp, 12
+0xB5 0x61 # GOOD: c.lui gp, 13
+0xB9 0x61 # GOOD: c.lui gp, 14
+0xBD 0x61 # GOOD: c.lui gp, 15
+0xC1 0x61 # GOOD: c.lui gp, 16
+0xC5 0x61 # GOOD: c.lui gp, 17
+0xC9 0x61 # GOOD: c.lui gp, 18
+0xCD 0x61 # GOOD: c.lui gp, 19
+0xD1 0x61 # GOOD: c.lui gp, 20
+0xD5 0x61 # GOOD: c.lui gp, 21
+0xD9 0x61 # GOOD: c.lui gp, 22
+0xDD 0x61 # GOOD: c.lui gp, 23
+0xE1 0x61 # GOOD: c.lui gp, 24
+0xE5 0x61 # GOOD: c.lui gp, 25
+0xE9 0x61 # GOOD: c.lui gp, 26
+0xED 0x61 # GOOD: c.lui gp, 27
+0xF1 0x61 # GOOD: c.lui gp, 28
+0xF5 0x61 # GOOD: c.lui gp, 29
+0xF9 0x61 # GOOD: c.lui gp, 30
+0xFD 0x61 # GOOD: c.lui gp, 31
+0x81 0x71 # GOOD: c.lui gp, 1048544
+0x85 0x71 # GOOD: c.lui gp, 1048545
+0x89 0x71 # GOOD: c.lui gp, 1048546
+0x8D 0x71 # GOOD: c.lui gp, 1048547
+0x91 0x71 # GOOD: c.lui gp, 1048548
+0x95 0x71 # GOOD: c.lui gp, 1048549
+0x99 0x71 # GOOD: c.lui gp, 1048550
+0x9D 0x71 # GOOD: c.lui gp, 1048551
+0xA1 0x71 # GOOD: c.lui gp, 1048552
+0xA5 0x71 # GOOD: c.lui gp, 1048553
+0xA9 0x71 # GOOD: c.lui gp, 1048554
+0xAD 0x71 # GOOD: c.lui gp, 1048555
+0xB1 0x71 # GOOD: c.lui gp, 1048556
+0xB5 0x71 # GOOD: c.lui gp, 1048557
+0xB9 0x71 # GOOD: c.lui gp, 1048558
+0xBD 0x71 # GOOD: c.lui gp, 1048559
+0xC1 0x71 # GOOD: c.lui gp, 1048560
+0xC5 0x71 # GOOD: c.lui gp, 1048561
+0xC9 0x71 # GOOD: c.lui gp, 1048562
+0xCD 0x71 # GOOD: c.lui gp, 1048563
+0xD1 0x71 # GOOD: c.lui gp, 1048564
+0xD5 0x71 # GOOD: c.lui gp, 1048565
+0xD9 0x71 # GOOD: c.lui gp, 1048566
+0xDD 0x71 # GOOD: c.lui gp, 1048567
+0xE1 0x71 # GOOD: c.lui gp, 1048568
+0xE5 0x71 # GOOD: c.lui gp, 1048569
+0xE9 0x71 # GOOD: c.lui gp, 1048570
+0xED 0x71 # GOOD: c.lui gp, 1048571
+0xF1 0x71 # GOOD: c.lui gp, 1048572
+0xF5 0x71 # GOOD: c.lui gp, 1048573
+0xF9 0x71 # GOOD: c.lui gp, 1048574
+0xFD 0x71 # GOOD: c.lui gp, 1048575
+0x01 0x62 # BAD: invalid instruction encoding
+0x05 0x62 # GOOD: c.lui tp, 1
+0x09 0x62 # GOOD: c.lui tp, 2
+0x0D 0x62 # GOOD: c.lui tp, 3
+0x11 0x62 # GOOD: c.lui tp, 4
+0x15 0x62 # GOOD: c.lui tp, 5
+0x19 0x62 # GOOD: c.lui tp, 6
+0x1D 0x62 # GOOD: c.lui tp, 7
+0x21 0x62 # GOOD: c.lui tp, 8
+0x25 0x62 # GOOD: c.lui tp, 9
+0x29 0x62 # GOOD: c.lui tp, 10
+0x2D 0x62 # GOOD: c.lui tp, 11
+0x31 0x62 # GOOD: c.lui tp, 12
+0x35 0x62 # GOOD: c.lui tp, 13
+0x39 0x62 # GOOD: c.lui tp, 14
+0x3D 0x62 # GOOD: c.lui tp, 15
+0x41 0x62 # GOOD: c.lui tp, 16
+0x45 0x62 # GOOD: c.lui tp, 17
+0x49 0x62 # GOOD: c.lui tp, 18
+0x4D 0x62 # GOOD: c.lui tp, 19
+0x51 0x62 # GOOD: c.lui tp, 20
+0x55 0x62 # GOOD: c.lui tp, 21
+0x59 0x62 # GOOD: c.lui tp, 22
+0x5D 0x62 # GOOD: c.lui tp, 23
+0x61 0x62 # GOOD: c.lui tp, 24
+0x65 0x62 # GOOD: c.lui tp, 25
+0x69 0x62 # GOOD: c.lui tp, 26
+0x6D 0x62 # GOOD: c.lui tp, 27
+0x71 0x62 # GOOD: c.lui tp, 28
+0x75 0x62 # GOOD: c.lui tp, 29
+0x79 0x62 # GOOD: c.lui tp, 30
+0x7D 0x62 # GOOD: c.lui tp, 31
+0x01 0x72 # GOOD: c.lui tp, 1048544
+0x05 0x72 # GOOD: c.lui tp, 1048545
+0x09 0x72 # GOOD: c.lui tp, 1048546
+0x0D 0x72 # GOOD: c.lui tp, 1048547
+0x11 0x72 # GOOD: c.lui tp, 1048548
+0x15 0x72 # GOOD: c.lui tp, 1048549
+0x19 0x72 # GOOD: c.lui tp, 1048550
+0x1D 0x72 # GOOD: c.lui tp, 1048551
+0x21 0x72 # GOOD: c.lui tp, 1048552
+0x25 0x72 # GOOD: c.lui tp, 1048553
+0x29 0x72 # GOOD: c.lui tp, 1048554
+0x2D 0x72 # GOOD: c.lui tp, 1048555
+0x31 0x72 # GOOD: c.lui tp, 1048556
+0x35 0x72 # GOOD: c.lui tp, 1048557
+0x39 0x72 # GOOD: c.lui tp, 1048558
+0x3D 0x72 # GOOD: c.lui tp, 1048559
+0x41 0x72 # GOOD: c.lui tp, 1048560
+0x45 0x72 # GOOD: c.lui tp, 1048561
+0x49 0x72 # GOOD: c.lui tp, 1048562
+0x4D 0x72 # GOOD: c.lui tp, 1048563
+0x51 0x72 # GOOD: c.lui tp, 1048564
+0x55 0x72 # GOOD: c.lui tp, 1048565
+0x59 0x72 # GOOD: c.lui tp, 1048566
+0x5D 0x72 # GOOD: c.lui tp, 1048567
+0x61 0x72 # GOOD: c.lui tp, 1048568
+0x65 0x72 # GOOD: c.lui tp, 1048569
+0x69 0x72 # GOOD: c.lui tp, 1048570
+0x6D 0x72 # GOOD: c.lui tp, 1048571
+0x71 0x72 # GOOD: c.lui tp, 1048572
+0x75 0x72 # GOOD: c.lui tp, 1048573
+0x79 0x72 # GOOD: c.lui tp, 1048574
+0x7D 0x72 # GOOD: c.lui tp, 1048575
+0x81 0x62 # BAD: invalid instruction encoding
+0x81 0x62 # MOP: c.mop.5
+0x85 0x62 # GOOD: c.lui t0, 1
+0x89 0x62 # GOOD: c.lui t0, 2
+0x8D 0x62 # GOOD: c.lui t0, 3
+0x91 0x62 # GOOD: c.lui t0, 4
+0x95 0x62 # GOOD: c.lui t0, 5
+0x99 0x62 # GOOD: c.lui t0, 6
+0x9D 0x62 # GOOD: c.lui t0, 7
+0xA1 0x62 # GOOD: c.lui t0, 8
+0xA5 0x62 # GOOD: c.lui t0, 9
+0xA9 0x62 # GOOD: c.lui t0, 10
+0xAD 0x62 # GOOD: c.lui t0, 11
+0xB1 0x62 # GOOD: c.lui t0, 12
+0xB5 0x62 # GOOD: c.lui t0, 13
+0xB9 0x62 # GOOD: c.lui t0, 14
+0xBD 0x62 # GOOD: c.lui t0, 15
+0xC1 0x62 # GOOD: c.lui t0, 16
+0xC5 0x62 # GOOD: c.lui t0, 17
+0xC9 0x62 # GOOD: c.lui t0, 18
+0xCD 0x62 # GOOD: c.lui t0, 19
+0xD1 0x62 # GOOD: c.lui t0, 20
+0xD5 0x62 # GOOD: c.lui t0, 21
+0xD9 0x62 # GOOD: c.lui t0, 22
+0xDD 0x62 # GOOD: c.lui t0, 23
+0xE1 0x62 # GOOD: c.lui t0, 24
+0xE5 0x62 # GOOD: c.lui t0, 25
+0xE9 0x62 # GOOD: c.lui t0, 26
+0xED 0x62 # GOOD: c.lui t0, 27
+0xF1 0x62 # GOOD: c.lui t0, 28
+0xF5 0x62 # GOOD: c.lui t0, 29
+0xF9 0x62 # GOOD: c.lui t0, 30
+0xFD 0x62 # GOOD: c.lui t0, 31
+0x81 0x72 # GOOD: c.lui t0, 1048544
+0x85 0x72 # GOOD: c.lui t0, 1048545
+0x89 0x72 # GOOD: c.lui t0, 1048546
+0x8D 0x72 # GOOD: c.lui t0, 1048547
+0x91 0x72 # GOOD: c.lui t0, 1048548
+0x95 0x72 # GOOD: c.lui t0, 1048549
+0x99 0x72 # GOOD: c.lui t0, 1048550
+0x9D 0x72 # GOOD: c.lui t0, 1048551
+0xA1 0x72 # GOOD: c.lui t0, 1048552
+0xA5 0x72 # GOOD: c.lui t0, 1048553
+0xA9 0x72 # GOOD: c.lui t0, 1048554
+0xAD 0x72 # GOOD: c.lui t0, 1048555
+0xB1 0x72 # GOOD: c.lui t0, 1048556
+0xB5 0x72 # GOOD: c.lui t0, 1048557
+0xB9 0x72 # GOOD: c.lui t0, 1048558
+0xBD 0x72 # GOOD: c.lui t0, 1048559
+0xC1 0x72 # GOOD: c.lui t0, 1048560
+0xC5 0x72 # GOOD: c.lui t0, 1048561
+0xC9 0x72 # GOOD: c.lui t0, 1048562
+0xCD 0x72 # GOOD: c.lui t0, 1048563
+0xD1 0x72 # GOOD: c.lui t0, 1048564
+0xD5 0x72 # GOOD: c.lui t0, 1048565
+0xD9 0x72 # GOOD: c.lui t0, 1048566
+0xDD 0x72 # GOOD: c.lui t0, 1048567
+0xE1 0x72 # GOOD: c.lui t0, 1048568
+0xE5 0x72 # GOOD: c.lui t0, 1048569
+0xE9 0x72 # GOOD: c.lui t0, 1048570
+0xED 0x72 # GOOD: c.lui t0, 1048571
+0xF1 0x72 # GOOD: c.lui t0, 1048572
+0xF5 0x72 # GOOD: c.lui t0, 1048573
+0xF9 0x72 # GOOD: c.lui t0, 1048574
+0xFD 0x72 # GOOD: c.lui t0, 1048575
+0x01 0x63 # BAD: invalid instruction encoding
+0x05 0x63 # GOOD: c.lui t1, 1
+0x09 0x63 # GOOD: c.lui t1, 2
+0x0D 0x63 # GOOD: c.lui t1, 3
+0x11 0x63 # GOOD: c.lui t1, 4
+0x15 0x63 # GOOD: c.lui t1, 5
+0x19 0x63 # GOOD: c.lui t1, 6
+0x1D 0x63 # GOOD: c.lui t1, 7
+0x21 0x63 # GOOD: c.lui t1, 8
+0x25 0x63 # GOOD: c.lui t1, 9
+0x29 0x63 # GOOD: c.lui t1, 10
+0x2D 0x63 # GOOD: c.lui t1, 11
+0x31 0x63 # GOOD: c.lui t1, 12
+0x35 0x63 # GOOD: c.lui t1, 13
+0x39 0x63 # GOOD: c.lui t1, 14
+0x3D 0x63 # GOOD: c.lui t1, 15
+0x41 0x63 # GOOD: c.lui t1, 16
+0x45 0x63 # GOOD: c.lui t1, 17
+0x49 0x63 # GOOD: c.lui t1, 18
+0x4D 0x63 # GOOD: c.lui t1, 19
+0x51 0x63 # GOOD: c.lui t1, 20
+0x55 0x63 # GOOD: c.lui t1, 21
+0x59 0x63 # GOOD: c.lui t1, 22
+0x5D 0x63 # GOOD: c.lui t1, 23
+0x61 0x63 # GOOD: c.lui t1, 24
+0x65 0x63 # GOOD: c.lui t1, 25
+0x69 0x63 # GOOD: c.lui t1, 26
+0x6D 0x63 # GOOD: c.lui t1, 27
+0x71 0x63 # GOOD: c.lui t1, 28
+0x75 0x63 # GOOD: c.lui t1, 29
+0x79 0x63 # GOOD: c.lui t1, 30
+0x7D 0x63 # GOOD: c.lui t1, 31
+0x01 0x73 # GOOD: c.lui t1, 1048544
+0x05 0x73 # GOOD: c.lui t1, 1048545
+0x09 0x73 # GOOD: c.lui t1, 1048546
+0x0D 0x73 # GOOD: c.lui t1, 1048547
+0x11 0x73 # GOOD: c.lui t1, 1048548
+0x15 0x73 # GOOD: c.lui t1, 1048549
+0x19 0x73 # GOOD: c.lui t1, 1048550
+0x1D 0x73 # GOOD: c.lui t1, 1048551
+0x21 0x73 # GOOD: c.lui t1, 1048552
+0x25 0x73 # GOOD: c.lui t1, 1048553
+0x29 0x73 # GOOD: c.lui t1, 1048554
+0x2D 0x73 # GOOD: c.lui t1, 1048555
+0x31 0x73 # GOOD: c.lui t1, 1048556
+0x35 0x73 # GOOD: c.lui t1, 1048557
+0x39 0x73 # GOOD: c.lui t1, 1048558
+0x3D 0x73 # GOOD: c.lui t1, 1048559
+0x41 0x73 # GOOD: c.lui t1, 1048560
+0x45 0x73 # GOOD: c.lui t1, 1048561
+0x49 0x73 # GOOD: c.lui t1, 1048562
+0x4D 0x73 # GOOD: c.lui t1, 1048563
+0x51 0x73 # GOOD: c.lui t1, 1048564
+0x55 0x73 # GOOD: c.lui t1, 1048565
+0x59 0x73 # GOOD: c.lui t1, 1048566
+0x5D 0x73 # GOOD: c.lui t1, 1048567
+0x61 0x73 # GOOD: c.lui t1, 1048568
+0x65 0x73 # GOOD: c.lui t1, 1048569
+0x69 0x73 # GOOD: c.lui t1, 1048570
+0x6D 0x73 # GOOD: c.lui t1, 1048571
+0x71 0x73 # GOOD: c.lui t1, 1048572
+0x75 0x73 # GOOD: c.lui t1, 1048573
+0x79 0x73 # GOOD: c.lui t1, 1048574
+0x7D 0x73 # GOOD: c.lui t1, 1048575
+0x81 0x63 # BAD: invalid instruction encoding
+0x81 0x63 # MOP: c.mop.7
+0x85 0x63 # GOOD: c.lui t2, 1
+0x89 0x63 # GOOD: c.lui t2, 2
+0x8D 0x63 # GOOD: c.lui t2, 3
+0x91 0x63 # GOOD: c.lui t2, 4
+0x95 0x63 # GOOD: c.lui t2, 5
+0x99 0x63 # GOOD: c.lui t2, 6
+0x9D 0x63 # GOOD: c.lui t2, 7
+0xA1 0x63 # GOOD: c.lui t2, 8
+0xA5 0x63 # GOOD: c.lui t2, 9
+0xA9 0x63 # GOOD: c.lui t2, 10
+0xAD 0x63 # GOOD: c.lui t2, 11
+0xB1 0x63 # GOOD: c.lui t2, 12
+0xB5 0x63 # GOOD: c.lui t2, 13
+0xB9 0x63 # GOOD: c.lui t2, 14
+0xBD 0x63 # GOOD: c.lui t2, 15
+0xC1 0x63 # GOOD: c.lui t2, 16
+0xC5 0x63 # GOOD: c.lui t2, 17
+0xC9 0x63 # GOOD: c.lui t2, 18
+0xCD 0x63 # GOOD: c.lui t2, 19
+0xD1 0x63 # GOOD: c.lui t2, 20
+0xD5 0x63 # GOOD: c.lui t2, 21
+0xD9 0x63 # GOOD: c.lui t2, 22
+0xDD 0x63 # GOOD: c.lui t2, 23
+0xE1 0x63 # GOOD: c.lui t2, 24
+0xE5 0x63 # GOOD: c.lui t2, 25
+0xE9 0x63 # GOOD: c.lui t2, 26
+0xED 0x63 # GOOD: c.lui t2, 27
+0xF1 0x63 # GOOD: c.lui t2, 28
+0xF5 0x63 # GOOD: c.lui t2, 29
+0xF9 0x63 # GOOD: c.lui t2, 30
+0xFD 0x63 # GOOD: c.lui t2, 31
+0x81 0x73 # GOOD: c.lui t2, 1048544
+0x85 0x73 # GOOD: c.lui t2, 1048545
+0x89 0x73 # GOOD: c.lui t2, 1048546
+0x8D 0x73 # GOOD: c.lui t2, 1048547
+0x91 0x73 # GOOD: c.lui t2, 1048548
+0x95 0x73 # GOOD: c.lui t2, 1048549
+0x99 0x73 # GOOD: c.lui t2, 1048550
+0x9D 0x73 # GOOD: c.lui t2, 1048551
+0xA1 0x73 # GOOD: c.lui t2, 1048552
+0xA5 0x73 # GOOD: c.lui t2, 1048553
+0xA9 0x73 # GOOD: c.lui t2, 1048554
+0xAD 0x73 # GOOD: c.lui t2, 1048555
+0xB1 0x73 # GOOD: c.lui t2, 1048556
+0xB5 0x73 # GOOD: c.lui t2, 1048557
+0xB9 0x73 # GOOD: c.lui t2, 1048558
+0xBD 0x73 # GOOD: c.lui t2, 1048559
+0xC1 0x73 # GOOD: c.lui t2, 1048560
+0xC5 0x73 # GOOD: c.lui t2, 1048561
+0xC9 0x73 # GOOD: c.lui t2, 1048562
+0xCD 0x73 # GOOD: c.lui t2, 1048563
+0xD1 0x73 # GOOD: c.lui t2, 1048564
+0xD5 0x73 # GOOD: c.lui t2, 1048565
+0xD9 0x73 # GOOD: c.lui t2, 1048566
+0xDD 0x73 # GOOD: c.lui t2, 1048567
+0xE1 0x73 # GOOD: c.lui t2, 1048568
+0xE5 0x73 # GOOD: c.lui t2, 1048569
+0xE9 0x73 # GOOD: c.lui t2, 1048570
+0xED 0x73 # GOOD: c.lui t2, 1048571
+0xF1 0x73 # GOOD: c.lui t2, 1048572
+0xF5 0x73 # GOOD: c.lui t2, 1048573
+0xF9 0x73 # GOOD: c.lui t2, 1048574
+0xFD 0x73 # GOOD: c.lui t2, 1048575
+0x01 0x64 # BAD: invalid instruction encoding
+0x05 0x64 # GOOD: c.lui s0, 1
+0x09 0x64 # GOOD: c.lui s0, 2
+0x0D 0x64 # GOOD: c.lui s0, 3
+0x11 0x64 # GOOD: c.lui s0, 4
+0x15 0x64 # GOOD: c.lui s0, 5
+0x19 0x64 # GOOD: c.lui s0, 6
+0x1D 0x64 # GOOD: c.lui s0, 7
+0x21 0x64 # GOOD: c.lui s0, 8
+0x25 0x64 # GOOD: c.lui s0, 9
+0x29 0x64 # GOOD: c.lui s0, 10
+0x2D 0x64 # GOOD: c.lui s0, 11
+0x31 0x64 # GOOD: c.lui s0, 12
+0x35 0x64 # GOOD: c.lui s0, 13
+0x39 0x64 # GOOD: c.lui s0, 14
+0x3D 0x64 # GOOD: c.lui s0, 15
+0x41 0x64 # GOOD: c.lui s0, 16
+0x45 0x64 # GOOD: c.lui s0, 17
+0x49 0x64 # GOOD: c.lui s0, 18
+0x4D 0x64 # GOOD: c.lui s0, 19
+0x51 0x64 # GOOD: c.lui s0, 20
+0x55 0x64 # GOOD: c.lui s0, 21
+0x59 0x64 # GOOD: c.lui s0, 22
+0x5D 0x64 # GOOD: c.lui s0, 23
+0x61 0x64 # GOOD: c.lui s0, 24
+0x65 0x64 # GOOD: c.lui s0, 25
+0x69 0x64 # GOOD: c.lui s0, 26
+0x6D 0x64 # GOOD: c.lui s0, 27
+0x71 0x64 # GOOD: c.lui s0, 28
+0x75 0x64 # GOOD: c.lui s0, 29
+0x79 0x64 # GOOD: c.lui s0, 30
+0x7D 0x64 # GOOD: c.lui s0, 31
+0x01 0x74 # GOOD: c.lui s0, 1048544
+0x05 0x74 # GOOD: c.lui s0, 1048545
+0x09 0x74 # GOOD: c.lui s0, 1048546
+0x0D 0x74 # GOOD: c.lui s0, 1048547
+0x11 0x74 # GOOD: c.lui s0, 1048548
+0x15 0x74 # GOOD: c.lui s0, 1048549
+0x19 0x74 # GOOD: c.lui s0, 1048550
+0x1D 0x74 # GOOD: c.lui s0, 1048551
+0x21 0x74 # GOOD: c.lui s0, 1048552
+0x25 0x74 # GOOD: c.lui s0, 1048553
+0x29 0x74 # GOOD: c.lui s0, 1048554
+0x2D 0x74 # GOOD: c.lui s0, 1048555
+0x31 0x74 # GOOD: c.lui s0, 1048556
+0x35 0x74 # GOOD: c.lui s0, 1048557
+0x39 0x74 # GOOD: c.lui s0, 1048558
+0x3D 0x74 # GOOD: c.lui s0, 1048559
+0x41 0x74 # GOOD: c.lui s0, 1048560
+0x45 0x74 # GOOD: c.lui s0, 1048561
+0x49 0x74 # GOOD: c.lui s0, 1048562
+0x4D 0x74 # GOOD: c.lui s0, 1048563
+0x51 0x74 # GOOD: c.lui s0, 1048564
+0x55 0x74 # GOOD: c.lui s0, 1048565
+0x59 0x74 # GOOD: c.lui s0, 1048566
+0x5D 0x74 # GOOD: c.lui s0, 1048567
+0x61 0x74 # GOOD: c.lui s0, 1048568
+0x65 0x74 # GOOD: c.lui s0, 1048569
+0x69 0x74 # GOOD: c.lui s0, 1048570
+0x6D 0x74 # GOOD: c.lui s0, 1048571
+0x71 0x74 # GOOD: c.lui s0, 1048572
+0x75 0x74 # GOOD: c.lui s0, 1048573
+0x79 0x74 # GOOD: c.lui s0, 1048574
+0x7D 0x74 # GOOD: c.lui s0, 1048575
+0x81 0x64 # BAD: invalid instruction encoding
+0x81 0x64 # MOP: c.mop.9
+0x85 0x64 # GOOD: c.lui s1, 1
+0x89 0x64 # GOOD: c.lui s1, 2
+0x8D 0x64 # GOOD: c.lui s1, 3
+0x91 0x64 # GOOD: c.lui s1, 4
+0x95 0x64 # GOOD: c.lui s1, 5
+0x99 0x64 # GOOD: c.lui s1, 6
+0x9D 0x64 # GOOD: c.lui s1, 7
+0xA1 0x64 # GOOD: c.lui s1, 8
+0xA5 0x64 # GOOD: c.lui s1, 9
+0xA9 0x64 # GOOD: c.lui s1, 10
+0xAD 0x64 # GOOD: c.lui s1, 11
+0xB1 0x64 # GOOD: c.lui s1, 12
+0xB5 0x64 # GOOD: c.lui s1, 13
+0xB9 0x64 # GOOD: c.lui s1, 14
+0xBD 0x64 # GOOD: c.lui s1, 15
+0xC1 0x64 # GOOD: c.lui s1, 16
+0xC5 0x64 # GOOD: c.lui s1, 17
+0xC9 0x64 # GOOD: c.lui s1, 18
+0xCD 0x64 # GOOD: c.lui s1, 19
+0xD1 0x64 # GOOD: c.lui s1, 20
+0xD5 0x64 # GOOD: c.lui s1, 21
+0xD9 0x64 # GOOD: c.lui s1, 22
+0xDD 0x64 # GOOD: c.lui s1, 23
+0xE1 0x64 # GOOD: c.lui s1, 24
+0xE5 0x64 # GOOD: c.lui s1, 25
+0xE9 0x64 # GOOD: c.lui s1, 26
+0xED 0x64 # GOOD: c.lui s1, 27
+0xF1 0x64 # GOOD: c.lui s1, 28
+0xF5 0x64 # GOOD: c.lui s1, 29
+0xF9 0x64 # GOOD: c.lui s1, 30
+0xFD 0x64 # GOOD: c.lui s1, 31
+0x81 0x74 # GOOD: c.lui s1, 1048544
+0x85 0x74 # GOOD: c.lui s1, 1048545
+0x89 0x74 # GOOD: c.lui s1, 1048546
+0x8D 0x74 # GOOD: c.lui s1, 1048547
+0x91 0x74 # GOOD: c.lui s1, 1048548
+0x95 0x74 # GOOD: c.lui s1, 1048549
+0x99 0x74 # GOOD: c.lui s1, 1048550
+0x9D 0x74 # GOOD: c.lui s1, 1048551
+0xA1 0x74 # GOOD: c.lui s1, 1048552
+0xA5 0x74 # GOOD: c.lui s1, 1048553
+0xA9 0x74 # GOOD: c.lui s1, 1048554
+0xAD 0x74 # GOOD: c.lui s1, 1048555
+0xB1 0x74 # GOOD: c.lui s1, 1048556
+0xB5 0x74 # GOOD: c.lui s1, 1048557
+0xB9 0x74 # GOOD: c.lui s1, 1048558
+0xBD 0x74 # GOOD: c.lui s1, 1048559
+0xC1 0x74 # GOOD: c.lui s1, 1048560
+0xC5 0x74 # GOOD: c.lui s1, 1048561
+0xC9 0x74 # GOOD: c.lui s1, 1048562
+0xCD 0x74 # GOOD: c.lui s1, 1048563
+0xD1 0x74 # GOOD: c.lui s1, 1048564
+0xD5 0x74 # GOOD: c.lui s1, 1048565
+0xD9 0x74 # GOOD: c.lui s1, 1048566
+0xDD 0x74 # GOOD: c.lui s1, 1048567
+0xE1 0x74 # GOOD: c.lui s1, 1048568
+0xE5 0x74 # GOOD: c.lui s1, 1048569
+0xE9 0x74 # GOOD: c.lui s1, 1048570
+0xED 0x74 # GOOD: c.lui s1, 1048571
+0xF1 0x74 # GOOD: c.lui s1, 1048572
+0xF5 0x74 # GOOD: c.lui s1, 1048573
+0xF9 0x74 # GOOD: c.lui s1, 1048574
+0xFD 0x74 # GOOD: c.lui s1, 1048575
+0x01 0x65 # BAD: invalid instruction encoding
+0x05 0x65 # GOOD: c.lui a0, 1
+0x09 0x65 # GOOD: c.lui a0, 2
+0x0D 0x65 # GOOD: c.lui a0, 3
+0x11 0x65 # GOOD: c.lui a0, 4
+0x15 0x65 # GOOD: c.lui a0, 5
+0x19 0x65 # GOOD: c.lui a0, 6
+0x1D 0x65 # GOOD: c.lui a0, 7
+0x21 0x65 # GOOD: c.lui a0, 8
+0x25 0x65 # GOOD: c.lui a0, 9
+0x29 0x65 # GOOD: c.lui a0, 10
+0x2D 0x65 # GOOD: c.lui a0, 11
+0x31 0x65 # GOOD: c.lui a0, 12
+0x35 0x65 # GOOD: c.lui a0, 13
+0x39 0x65 # GOOD: c.lui a0, 14
+0x3D 0x65 # GOOD: c.lui a0, 15
+0x41 0x65 # GOOD: c.lui a0, 16
+0x45 0x65 # GOOD: c.lui a0, 17
+0x49 0x65 # GOOD: c.lui a0, 18
+0x4D 0x65 # GOOD: c.lui a0, 19
+0x51 0x65 # GOOD: c.lui a0, 20
+0x55 0x65 # GOOD: c.lui a0, 21
+0x59 0x65 # GOOD: c.lui a0, 22
+0x5D 0x65 # GOOD: c.lui a0, 23
+0x61 0x65 # GOOD: c.lui a0, 24
+0x65 0x65 # GOOD: c.lui a0, 25
+0x69 0x65 # GOOD: c.lui a0, 26
+0x6D 0x65 # GOOD: c.lui a0, 27
+0x71 0x65 # GOOD: c.lui a0, 28
+0x75 0x65 # GOOD: c.lui a0, 29
+0x79 0x65 # GOOD: c.lui a0, 30
+0x7D 0x65 # GOOD: c.lui a0, 31
+0x01 0x75 # GOOD: c.lui a0, 1048544
+0x05 0x75 # GOOD: c.lui a0, 1048545
+0x09 0x75 # GOOD: c.lui a0, 1048546
+0x0D 0x75 # GOOD: c.lui a0, 1048547
+0x11 0x75 # GOOD: c.lui a0, 1048548
+0x15 0x75 # GOOD: c.lui a0, 1048549
+0x19 0x75 # GOOD: c.lui a0, 1048550
+0x1D 0x75 # GOOD: c.lui a0, 1048551
+0x21 0x75 # GOOD: c.lui a0, 1048552
+0x25 0x75 # GOOD: c.lui a0, 1048553
+0x29 0x75 # GOOD: c.lui a0, 1048554
+0x2D 0x75 # GOOD: c.lui a0, 1048555
+0x31 0x75 # GOOD: c.lui a0, 1048556
+0x35 0x75 # GOOD: c.lui a0, 1048557
+0x39 0x75 # GOOD: c.lui a0, 1048558
+0x3D 0x75 # GOOD: c.lui a0, 1048559
+0x41 0x75 # GOOD: c.lui a0, 1048560
+0x45 0x75 # GOOD: c.lui a0, 1048561
+0x49 0x75 # GOOD: c.lui a0, 1048562
+0x4D 0x75 # GOOD: c.lui a0, 1048563
+0x51 0x75 # GOOD: c.lui a0, 1048564
+0x55 0x75 # GOOD: c.lui a0, 1048565
+0x59 0x75 # GOOD: c.lui a0, 1048566
+0x5D 0x75 # GOOD: c.lui a0, 1048567
+0x61 0x75 # GOOD: c.lui a0, 1048568
+0x65 0x75 # GOOD: c.lui a0, 1048569
+0x69 0x75 # GOOD: c.lui a0, 1048570
+0x6D 0x75 # GOOD: c.lui a0, 1048571
+0x71 0x75 # GOOD: c.lui a0, 1048572
+0x75 0x75 # GOOD: c.lui a0, 1048573
+0x79 0x75 # GOOD: c.lui a0, 1048574
+0x7D 0x75 # GOOD: c.lui a0, 1048575
+0x81 0x65 # BAD: invalid instruction encoding
+0x81 0x65 # MOP: c.mop.11
+0x85 0x65 # GOOD: c.lui a1, 1
+0x89 0x65 # GOOD: c.lui a1, 2
+0x8D 0x65 # GOOD: c.lui a1, 3
+0x91 0x65 # GOOD: c.lui a1, 4
+0x95 0x65 # GOOD: c.lui a1, 5
+0x99 0x65 # GOOD: c.lui a1, 6
+0x9D 0x65 # GOOD: c.lui a1, 7
+0xA1 0x65 # GOOD: c.lui a1, 8
+0xA5 0x65 # GOOD: c.lui a1, 9
+0xA9 0x65 # GOOD: c.lui a1, 10
+0xAD 0x65 # GOOD: c.lui a1, 11
+0xB1 0x65 # GOOD: c.lui a1, 12
+0xB5 0x65 # GOOD: c.lui a1, 13
+0xB9 0x65 # GOOD: c.lui a1, 14
+0xBD 0x65 # GOOD: c.lui a1, 15
+0xC1 0x65 # GOOD: c.lui a1, 16
+0xC5 0x65 # GOOD: c.lui a1, 17
+0xC9 0x65 # GOOD: c.lui a1, 18
+0xCD 0x65 # GOOD: c.lui a1, 19
+0xD1 0x65 # GOOD: c.lui a1, 20
+0xD5 0x65 # GOOD: c.lui a1, 21
+0xD9 0x65 # GOOD: c.lui a1, 22
+0xDD 0x65 # GOOD: c.lui a1, 23
+0xE1 0x65 # GOOD: c.lui a1, 24
+0xE5 0x65 # GOOD: c.lui a1, 25
+0xE9 0x65 # GOOD: c.lui a1, 26
+0xED 0x65 # GOOD: c.lui a1, 27
+0xF1 0x65 # GOOD: c.lui a1, 28
+0xF5 0x65 # GOOD: c.lui a1, 29
+0xF9 0x65 # GOOD: c.lui a1, 30
+0xFD 0x65 # GOOD: c.lui a1, 31
+0x81 0x75 # GOOD: c.lui a1, 1048544
+0x85 0x75 # GOOD: c.lui a1, 1048545
+0x89 0x75 # GOOD: c.lui a1, 1048546
+0x8D 0x75 # GOOD: c.lui a1, 1048547
+0x91 0x75 # GOOD: c.lui a1, 1048548
+0x95 0x75 # GOOD: c.lui a1, 1048549
+0x99 0x75 # GOOD: c.lui a1, 1048550
+0x9D 0x75 # GOOD: c.lui a1, 1048551
+0xA1 0x75 # GOOD: c.lui a1, 1048552
+0xA5 0x75 # GOOD: c.lui a1, 1048553
+0xA9 0x75 # GOOD: c.lui a1, 1048554
+0xAD 0x75 # GOOD: c.lui a1, 1048555
+0xB1 0x75 # GOOD: c.lui a1, 1048556
+0xB5 0x75 # GOOD: c.lui a1, 1048557
+0xB9 0x75 # GOOD: c.lui a1, 1048558
+0xBD 0x75 # GOOD: c.lui a1, 1048559
+0xC1 0x75 # GOOD: c.lui a1, 1048560
+0xC5 0x75 # GOOD: c.lui a1, 1048561
+0xC9 0x75 # GOOD: c.lui a1, 1048562
+0xCD 0x75 # GOOD: c.lui a1, 1048563
+0xD1 0x75 # GOOD: c.lui a1, 1048564
+0xD5 0x75 # GOOD: c.lui a1, 1048565
+0xD9 0x75 # GOOD: c.lui a1, 1048566
+0xDD 0x75 # GOOD: c.lui a1, 1048567
+0xE1 0x75 # GOOD: c.lui a1, 1048568
+0xE5 0x75 # GOOD: c.lui a1, 1048569
+0xE9 0x75 # GOOD: c.lui a1, 1048570
+0xED 0x75 # GOOD: c.lui a1, 1048571
+0xF1 0x75 # GOOD: c.lui a1, 1048572
+0xF5 0x75 # GOOD: c.lui a1, 1048573
+0xF9 0x75 # GOOD: c.lui a1, 1048574
+0xFD 0x75 # GOOD: c.lui a1, 1048575
+0x01 0x66 # BAD: invalid instruction encoding
+0x05 0x66 # GOOD: c.lui a2, 1
+0x09 0x66 # GOOD: c.lui a2, 2
+0x0D 0x66 # GOOD: c.lui a2, 3
+0x11 0x66 # GOOD: c.lui a2, 4
+0x15 0x66 # GOOD: c.lui a2, 5
+0x19 0x66 # GOOD: c.lui a2, 6
+0x1D 0x66 # GOOD: c.lui a2, 7
+0x21 0x66 # GOOD: c.lui a2, 8
+0x25 0x66 # GOOD: c.lui a2, 9
+0x29 0x66 # GOOD: c.lui a2, 10
+0x2D 0x66 # GOOD: c.lui a2, 11
+0x31 0x66 # GOOD: c.lui a2, 12
+0x35 0x66 # GOOD: c.lui a2, 13
+0x39 0x66 # GOOD: c.lui a2, 14
+0x3D 0x66 # GOOD: c.lui a2, 15
+0x41 0x66 # GOOD: c.lui a2, 16
+0x45 0x66 # GOOD: c.lui a2, 17
+0x49 0x66 # GOOD: c.lui a2, 18
+0x4D 0x66 # GOOD: c.lui a2, 19
+0x51 0x66 # GOOD: c.lui a2, 20
+0x55 0x66 # GOOD: c.lui a2, 21
+0x59 0x66 # GOOD: c.lui a2, 22
+0x5D 0x66 # GOOD: c.lui a2, 23
+0x61 0x66 # GOOD: c.lui a2, 24
+0x65 0x66 # GOOD: c.lui a2, 25
+0x69 0x66 # GOOD: c.lui a2, 26
+0x6D 0x66 # GOOD: c.lui a2, 27
+0x71 0x66 # GOOD: c.lui a2, 28
+0x75 0x66 # GOOD: c.lui a2, 29
+0x79 0x66 # GOOD: c.lui a2, 30
+0x7D 0x66 # GOOD: c.lui a2, 31
+0x01 0x76 # GOOD: c.lui a2, 1048544
+0x05 0x76 # GOOD: c.lui a2, 1048545
+0x09 0x76 # GOOD: c.lui a2, 1048546
+0x0D 0x76 # GOOD: c.lui a2, 1048547
+0x11 0x76 # GOOD: c.lui a2, 1048548
+0x15 0x76 # GOOD: c.lui a2, 1048549
+0x19 0x76 # GOOD: c.lui a2, 1048550
+0x1D 0x76 # GOOD: c.lui a2, 1048551
+0x21 0x76 # GOOD: c.lui a2, 1048552
+0x25 0x76 # GOOD: c.lui a2, 1048553
+0x29 0x76 # GOOD: c.lui a2, 1048554
+0x2D 0x76 # GOOD: c.lui a2, 1048555
+0x31 0x76 # GOOD: c.lui a2, 1048556
+0x35 0x76 # GOOD: c.lui a2, 1048557
+0x39 0x76 # GOOD: c.lui a2, 1048558
+0x3D 0x76 # GOOD: c.lui a2, 1048559
+0x41 0x76 # GOOD: c.lui a2, 1048560
+0x45 0x76 # GOOD: c.lui a2, 1048561
+0x49 0x76 # GOOD: c.lui a2, 1048562
+0x4D 0x76 # GOOD: c.lui a2, 1048563
+0x51 0x76 # GOOD: c.lui a2, 1048564
+0x55 0x76 # GOOD: c.lui a2, 1048565
+0x59 0x76 # GOOD: c.lui a2, 1048566
+0x5D 0x76 # GOOD: c.lui a2, 1048567
+0x61 0x76 # GOOD: c.lui a2, 1048568
+0x65 0x76 # GOOD: c.lui a2, 1048569
+0x69 0x76 # GOOD: c.lui a2, 1048570
+0x6D 0x76 # GOOD: c.lui a2, 1048571
+0x71 0x76 # GOOD: c.lui a2, 1048572
+0x75 0x76 # GOOD: c.lui a2, 1048573
+0x79 0x76 # GOOD: c.lui a2, 1048574
+0x7D 0x76 # GOOD: c.lui a2, 1048575
+0x81 0x66 # BAD: invalid instruction encoding
+0x81 0x66 # MOP: c.mop.13
+0x85 0x66 # GOOD: c.lui a3, 1
+0x89 0x66 # GOOD: c.lui a3, 2
+0x8D 0x66 # GOOD: c.lui a3, 3
+0x91 0x66 # GOOD: c.lui a3, 4
+0x95 0x66 # GOOD: c.lui a3, 5
+0x99 0x66 # GOOD: c.lui a3, 6
+0x9D 0x66 # GOOD: c.lui a3, 7
+0xA1 0x66 # GOOD: c.lui a3, 8
+0xA5 0x66 # GOOD: c.lui a3, 9
+0xA9 0x66 # GOOD: c.lui a3, 10
+0xAD 0x66 # GOOD: c.lui a3, 11
+0xB1 0x66 # GOOD: c.lui a3, 12
+0xB5 0x66 # GOOD: c.lui a3, 13
+0xB9 0x66 # GOOD: c.lui a3, 14
+0xBD 0x66 # GOOD: c.lui a3, 15
+0xC1 0x66 # GOOD: c.lui a3, 16
+0xC5 0x66 # GOOD: c.lui a3, 17
+0xC9 0x66 # GOOD: c.lui a3, 18
+0xCD 0x66 # GOOD: c.lui a3, 19
+0xD1 0x66 # GOOD: c.lui a3, 20
+0xD5 0x66 # GOOD: c.lui a3, 21
+0xD9 0x66 # GOOD: c.lui a3, 22
+0xDD 0x66 # GOOD: c.lui a3, 23
+0xE1 0x66 # GOOD: c.lui a3, 24
+0xE5 0x66 # GOOD: c.lui a3, 25
+0xE9 0x66 # GOOD: c.lui a3, 26
+0xED 0x66 # GOOD: c.lui a3, 27
+0xF1 0x66 # GOOD: c.lui a3, 28
+0xF5 0x66 # GOOD: c.lui a3, 29
+0xF9 0x66 # GOOD: c.lui a3, 30
+0xFD 0x66 # GOOD: c.lui a3, 31
+0x81 0x76 # GOOD: c.lui a3, 1048544
+0x85 0x76 # GOOD: c.lui a3, 1048545
+0x89 0x76 # GOOD: c.lui a3, 1048546
+0x8D 0x76 # GOOD: c.lui a3, 1048547
+0x91 0x76 # GOOD: c.lui a3, 1048548
+0x95 0x76 # GOOD: c.lui a3, 1048549
+0x99 0x76 # GOOD: c.lui a3, 1048550
+0x9D 0x76 # GOOD: c.lui a3, 1048551
+0xA1 0x76 # GOOD: c.lui a3, 1048552
+0xA5 0x76 # GOOD: c.lui a3, 1048553
+0xA9 0x76 # GOOD: c.lui a3, 1048554
+0xAD 0x76 # GOOD: c.lui a3, 1048555
+0xB1 0x76 # GOOD: c.lui a3, 1048556
+0xB5 0x76 # GOOD: c.lui a3, 1048557
+0xB9 0x76 # GOOD: c.lui a3, 1048558
+0xBD 0x76 # GOOD: c.lui a3, 1048559
+0xC1 0x76 # GOOD: c.lui a3, 1048560
+0xC5 0x76 # GOOD: c.lui a3, 1048561
+0xC9 0x76 # GOOD: c.lui a3, 1048562
+0xCD 0x76 # GOOD: c.lui a3, 1048563
+0xD1 0x76 # GOOD: c.lui a3, 1048564
+0xD5 0x76 # GOOD: c.lui a3, 1048565
+0xD9 0x76 # GOOD: c.lui a3, 1048566
+0xDD 0x76 # GOOD: c.lui a3, 1048567
+0xE1 0x76 # GOOD: c.lui a3, 1048568
+0xE5 0x76 # GOOD: c.lui a3, 1048569
+0xE9 0x76 # GOOD: c.lui a3, 1048570
+0xED 0x76 # GOOD: c.lui a3, 1048571
+0xF1 0x76 # GOOD: c.lui a3, 1048572
+0xF5 0x76 # GOOD: c.lui a3, 1048573
+0xF9 0x76 # GOOD: c.lui a3, 1048574
+0xFD 0x76 # GOOD: c.lui a3, 1048575
+0x01 0x67 # BAD: invalid instruction encoding
+0x05 0x67 # GOOD: c.lui a4, 1
+0x09 0x67 # GOOD: c.lui a4, 2
+0x0D 0x67 # GOOD: c.lui a4, 3
+0x11 0x67 # GOOD: c.lui a4, 4
+0x15 0x67 # GOOD: c.lui a4, 5
+0x19 0x67 # GOOD: c.lui a4, 6
+0x1D 0x67 # GOOD: c.lui a4, 7
+0x21 0x67 # GOOD: c.lui a4, 8
+0x25 0x67 # GOOD: c.lui a4, 9
+0x29 0x67 # GOOD: c.lui a4, 10
+0x2D 0x67 # GOOD: c.lui a4, 11
+0x31 0x67 # GOOD: c.lui a4, 12
+0x35 0x67 # GOOD: c.lui a4, 13
+0x39 0x67 # GOOD: c.lui a4, 14
+0x3D 0x67 # GOOD: c.lui a4, 15
+0x41 0x67 # GOOD: c.lui a4, 16
+0x45 0x67 # GOOD: c.lui a4, 17
+0x49 0x67 # GOOD: c.lui a4, 18
+0x4D 0x67 # GOOD: c.lui a4, 19
+0x51 0x67 # GOOD: c.lui a4, 20
+0x55 0x67 # GOOD: c.lui a4, 21
+0x59 0x67 # GOOD: c.lui a4, 22
+0x5D 0x67 # GOOD: c.lui a4, 23
+0x61 0x67 # GOOD: c.lui a4, 24
+0x65 0x67 # GOOD: c.lui a4, 25
+0x69 0x67 # GOOD: c.lui a4, 26
+0x6D 0x67 # GOOD: c.lui a4, 27
+0x71 0x67 # GOOD: c.lui a4, 28
+0x75 0x67 # GOOD: c.lui a4, 29
+0x79 0x67 # GOOD: c.lui a4, 30
+0x7D 0x67 # GOOD: c.lui a4, 31
+0x01 0x77 # GOOD: c.lui a4, 1048544
+0x05 0x77 # GOOD: c.lui a4, 1048545
+0x09 0x77 # GOOD: c.lui a4, 1048546
+0x0D 0x77 # GOOD: c.lui a4, 1048547
+0x11 0x77 # GOOD: c.lui a4, 1048548
+0x15 0x77 # GOOD: c.lui a4, 1048549
+0x19 0x77 # GOOD: c.lui a4, 1048550
+0x1D 0x77 # GOOD: c.lui a4, 1048551
+0x21 0x77 # GOOD: c.lui a4, 1048552
+0x25 0x77 # GOOD: c.lui a4, 1048553
+0x29 0x77 # GOOD: c.lui a4, 1048554
+0x2D 0x77 # GOOD: c.lui a4, 1048555
+0x31 0x77 # GOOD: c.lui a4, 1048556
+0x35 0x77 # GOOD: c.lui a4, 1048557
+0x39 0x77 # GOOD: c.lui a4, 1048558
+0x3D 0x77 # GOOD: c.lui a4, 1048559
+0x41 0x77 # GOOD: c.lui a4, 1048560
+0x45 0x77 # GOOD: c.lui a4, 1048561
+0x49 0x77 # GOOD: c.lui a4, 1048562
+0x4D 0x77 # GOOD: c.lui a4, 1048563
+0x51 0x77 # GOOD: c.lui a4, 1048564
+0x55 0x77 # GOOD: c.lui a4, 1048565
+0x59 0x77 # GOOD: c.lui a4, 1048566
+0x5D 0x77 # GOOD: c.lui a4, 1048567
+0x61 0x77 # GOOD: c.lui a4, 1048568
+0x65 0x77 # GOOD: c.lui a4, 1048569
+0x69 0x77 # GOOD: c.lui a4, 1048570
+0x6D 0x77 # GOOD: c.lui a4, 1048571
+0x71 0x77 # GOOD: c.lui a4, 1048572
+0x75 0x77 # GOOD: c.lui a4, 1048573
+0x79 0x77 # GOOD: c.lui a4, 1048574
+0x7D 0x77 # GOOD: c.lui a4, 1048575
+0x81 0x67 # BAD: invalid instruction encoding
+0x81 0x67 # MOP: c.mop.15
+0x85 0x67 # GOOD: c.lui a5, 1
+0x89 0x67 # GOOD: c.lui a5, 2
+0x8D 0x67 # GOOD: c.lui a5, 3
+0x91 0x67 # GOOD: c.lui a5, 4
+0x95 0x67 # GOOD: c.lui a5, 5
+0x99 0x67 # GOOD: c.lui a5, 6
+0x9D 0x67 # GOOD: c.lui a5, 7
+0xA1 0x67 # GOOD: c.lui a5, 8
+0xA5 0x67 # GOOD: c.lui a5, 9
+0xA9 0x67 # GOOD: c.lui a5, 10
+0xAD 0x67 # GOOD: c.lui a5, 11
+0xB1 0x67 # GOOD: c.lui a5, 12
+0xB5 0x67 # GOOD: c.lui a5, 13
+0xB9 0x67 # GOOD: c.lui a5, 14
+0xBD 0x67 # GOOD: c.lui a5, 15
+0xC1 0x67 # GOOD: c.lui a5, 16
+0xC5 0x67 # GOOD: c.lui a5, 17
+0xC9 0x67 # GOOD: c.lui a5, 18
+0xCD 0x67 # GOOD: c.lui a5, 19
+0xD1 0x67 # GOOD: c.lui a5, 20
+0xD5 0x67 # GOOD: c.lui a5, 21
+0xD9 0x67 # GOOD: c.lui a5, 22
+0xDD 0x67 # GOOD: c.lui a5, 23
+0xE1 0x67 # GOOD: c.lui a5, 24
+0xE5 0x67 # GOOD: c.lui a5, 25
+0xE9 0x67 # GOOD: c.lui a5, 26
+0xED 0x67 # GOOD: c.lui a5, 27
+0xF1 0x67 # GOOD: c.lui a5, 28
+0xF5 0x67 # GOOD: c.lui a5, 29
+0xF9 0x67 # GOOD: c.lui a5, 30
+0xFD 0x67 # GOOD: c.lui a5, 31
+0x81 0x77 # GOOD: c.lui a5, 1048544
+0x85 0x77 # GOOD: c.lui a5, 1048545
+0x89 0x77 # GOOD: c.lui a5, 1048546
+0x8D 0x77 # GOOD: c.lui a5, 1048547
+0x91 0x77 # GOOD: c.lui a5, 1048548
+0x95 0x77 # GOOD: c.lui a5, 1048549
+0x99 0x77 # GOOD: c.lui a5, 1048550
+0x9D 0x77 # GOOD: c.lui a5, 1048551
+0xA1 0x77 # GOOD: c.lui a5, 1048552
+0xA5 0x77 # GOOD: c.lui a5, 1048553
+0xA9 0x77 # GOOD: c.lui a5, 1048554
+0xAD 0x77 # GOOD: c.lui a5, 1048555
+0xB1 0x77 # GOOD: c.lui a5, 1048556
+0xB5 0x77 # GOOD: c.lui a5, 1048557
+0xB9 0x77 # GOOD: c.lui a5, 1048558
+0xBD 0x77 # GOOD: c.lui a5, 1048559
+0xC1 0x77 # GOOD: c.lui a5, 1048560
+0xC5 0x77 # GOOD: c.lui a5, 1048561
+0xC9 0x77 # GOOD: c.lui a5, 1048562
+0xCD 0x77 # GOOD: c.lui a5, 1048563
+0xD1 0x77 # GOOD: c.lui a5, 1048564
+0xD5 0x77 # GOOD: c.lui a5, 1048565
+0xD9 0x77 # GOOD: c.lui a5, 1048566
+0xDD 0x77 # GOOD: c.lui a5, 1048567
+0xE1 0x77 # GOOD: c.lui a5, 1048568
+0xE5 0x77 # GOOD: c.lui a5, 1048569
+0xE9 0x77 # GOOD: c.lui a5, 1048570
+0xED 0x77 # GOOD: c.lui a5, 1048571
+0xF1 0x77 # GOOD: c.lui a5, 1048572
+0xF5 0x77 # GOOD: c.lui a5, 1048573
+0xF9 0x77 # GOOD: c.lui a5, 1048574
+0xFD 0x77 # GOOD: c.lui a5, 1048575
+0x01 0x68 # BAD: invalid instruction encoding
+0x05 0x68 # GOOD: c.lui a6, 1
+0x09 0x68 # GOOD: c.lui a6, 2
+0x0D 0x68 # GOOD: c.lui a6, 3
+0x11 0x68 # GOOD: c.lui a6, 4
+0x15 0x68 # GOOD: c.lui a6, 5
+0x19 0x68 # GOOD: c.lui a6, 6
+0x1D 0x68 # GOOD: c.lui a6, 7
+0x21 0x68 # GOOD: c.lui a6, 8
+0x25 0x68 # GOOD: c.lui a6, 9
+0x29 0x68 # GOOD: c.lui a6, 10
+0x2D 0x68 # GOOD: c.lui a6, 11
+0x31 0x68 # GOOD: c.lui a6, 12
+0x35 0x68 # GOOD: c.lui a6, 13
+0x39 0x68 # GOOD: c.lui a6, 14
+0x3D 0x68 # GOOD: c.lui a6, 15
+0x41 0x68 # GOOD: c.lui a6, 16
+0x45 0x68 # GOOD: c.lui a6, 17
+0x49 0x68 # GOOD: c.lui a6, 18
+0x4D 0x68 # GOOD: c.lui a6, 19
+0x51 0x68 # GOOD: c.lui a6, 20
+0x55 0x68 # GOOD: c.lui a6, 21
+0x59 0x68 # GOOD: c.lui a6, 22
+0x5D 0x68 # GOOD: c.lui a6, 23
+0x61 0x68 # GOOD: c.lui a6, 24
+0x65 0x68 # GOOD: c.lui a6, 25
+0x69 0x68 # GOOD: c.lui a6, 26
+0x6D 0x68 # GOOD: c.lui a6, 27
+0x71 0x68 # GOOD: c.lui a6, 28
+0x75 0x68 # GOOD: c.lui a6, 29
+0x79 0x68 # GOOD: c.lui a6, 30
+0x7D 0x68 # GOOD: c.lui a6, 31
+0x01 0x78 # GOOD: c.lui a6, 1048544
+0x05 0x78 # GOOD: c.lui a6, 1048545
+0x09 0x78 # GOOD: c.lui a6, 1048546
+0x0D 0x78 # GOOD: c.lui a6, 1048547
+0x11 0x78 # GOOD: c.lui a6, 1048548
+0x15 0x78 # GOOD: c.lui a6, 1048549
+0x19 0x78 # GOOD: c.lui a6, 1048550
+0x1D 0x78 # GOOD: c.lui a6, 1048551
+0x21 0x78 # GOOD: c.lui a6, 1048552
+0x25 0x78 # GOOD: c.lui a6, 1048553
+0x29 0x78 # GOOD: c.lui a6, 1048554
+0x2D 0x78 # GOOD: c.lui a6, 1048555
+0x31 0x78 # GOOD: c.lui a6, 1048556
+0x35 0x78 # GOOD: c.lui a6, 1048557
+0x39 0x78 # GOOD: c.lui a6, 1048558
+0x3D 0x78 # GOOD: c.lui a6, 1048559
+0x41 0x78 # GOOD: c.lui a6, 1048560
+0x45 0x78 # GOOD: c.lui a6, 1048561
+0x49 0x78 # GOOD: c.lui a6, 1048562
+0x4D 0x78 # GOOD: c.lui a6, 1048563
+0x51 0x78 # GOOD: c.lui a6, 1048564
+0x55 0x78 # GOOD: c.lui a6, 1048565
+0x59 0x78 # GOOD: c.lui a6, 1048566
+0x5D 0x78 # GOOD: c.lui a6, 1048567
+0x61 0x78 # GOOD: c.lui a6, 1048568
+0x65 0x78 # GOOD: c.lui a6, 1048569
+0x69 0x78 # GOOD: c.lui a6, 1048570
+0x6D 0x78 # GOOD: c.lui a6, 1048571
+0x71 0x78 # GOOD: c.lui a6, 1048572
+0x75 0x78 # GOOD: c.lui a6, 1048573
+0x79 0x78 # GOOD: c.lui a6, 1048574
+0x7D 0x78 # GOOD: c.lui a6, 1048575
+0x81 0x68 # BAD: invalid instruction encoding
+0x85 0x68 # GOOD: c.lui a7, 1
+0x89 0x68 # GOOD: c.lui a7, 2
+0x8D 0x68 # GOOD: c.lui a7, 3
+0x91 0x68 # GOOD: c.lui a7, 4
+0x95 0x68 # GOOD: c.lui a7, 5
+0x99 0x68 # GOOD: c.lui a7, 6
+0x9D 0x68 # GOOD: c.lui a7, 7
+0xA1 0x68 # GOOD: c.lui a7, 8
+0xA5 0x68 # GOOD: c.lui a7, 9
+0xA9 0x68 # GOOD: c.lui a7, 10
+0xAD 0x68 # GOOD: c.lui a7, 11
+0xB1 0x68 # GOOD: c.lui a7, 12
+0xB5 0x68 # GOOD: c.lui a7, 13
+0xB9 0x68 # GOOD: c.lui a7, 14
+0xBD 0x68 # GOOD: c.lui a7, 15
+0xC1 0x68 # GOOD: c.lui a7, 16
+0xC5 0x68 # GOOD: c.lui a7, 17
+0xC9 0x68 # GOOD: c.lui a7, 18
+0xCD 0x68 # GOOD: c.lui a7, 19
+0xD1 0x68 # GOOD: c.lui a7, 20
+0xD5 0x68 # GOOD: c.lui a7, 21
+0xD9 0x68 # GOOD: c.lui a7, 22
+0xDD 0x68 # GOOD: c.lui a7, 23
+0xE1 0x68 # GOOD: c.lui a7, 24
+0xE5 0x68 # GOOD: c.lui a7, 25
+0xE9 0x68 # GOOD: c.lui a7, 26
+0xED 0x68 # GOOD: c.lui a7, 27
+0xF1 0x68 # GOOD: c.lui a7, 28
+0xF5 0x68 # GOOD: c.lui a7, 29
+0xF9 0x68 # GOOD: c.lui a7, 30
+0xFD 0x68 # GOOD: c.lui a7, 31
+0x81 0x78 # GOOD: c.lui a7, 1048544
+0x85 0x78 # GOOD: c.lui a7, 1048545
+0x89 0x78 # GOOD: c.lui a7, 1048546
+0x8D 0x78 # GOOD: c.lui a7, 1048547
+0x91 0x78 # GOOD: c.lui a7, 1048548
+0x95 0x78 # GOOD: c.lui a7, 1048549
+0x99 0x78 # GOOD: c.lui a7, 1048550
+0x9D 0x78 # GOOD: c.lui a7, 1048551
+0xA1 0x78 # GOOD: c.lui a7, 1048552
+0xA5 0x78 # GOOD: c.lui a7, 1048553
+0xA9 0x78 # GOOD: c.lui a7, 1048554
+0xAD 0x78 # GOOD: c.lui a7, 1048555
+0xB1 0x78 # GOOD: c.lui a7, 1048556
+0xB5 0x78 # GOOD: c.lui a7, 1048557
+0xB9 0x78 # GOOD: c.lui a7, 1048558
+0xBD 0x78 # GOOD: c.lui a7, 1048559
+0xC1 0x78 # GOOD: c.lui a7, 1048560
+0xC5 0x78 # GOOD: c.lui a7, 1048561
+0xC9 0x78 # GOOD: c.lui a7, 1048562
+0xCD 0x78 # GOOD: c.lui a7, 1048563
+0xD1 0x78 # GOOD: c.lui a7, 1048564
+0xD5 0x78 # GOOD: c.lui a7, 1048565
+0xD9 0x78 # GOOD: c.lui a7, 1048566
+0xDD 0x78 # GOOD: c.lui a7, 1048567
+0xE1 0x78 # GOOD: c.lui a7, 1048568
+0xE5 0x78 # GOOD: c.lui a7, 1048569
+0xE9 0x78 # GOOD: c.lui a7, 1048570
+0xED 0x78 # GOOD: c.lui a7, 1048571
+0xF1 0x78 # GOOD: c.lui a7, 1048572
+0xF5 0x78 # GOOD: c.lui a7, 1048573
+0xF9 0x78 # GOOD: c.lui a7, 1048574
+0xFD 0x78 # GOOD: c.lui a7, 1048575
+0x01 0x69 # BAD: invalid instruction encoding
+0x05 0x69 # GOOD: c.lui s2, 1
+0x09 0x69 # GOOD: c.lui s2, 2
+0x0D 0x69 # GOOD: c.lui s2, 3
+0x11 0x69 # GOOD: c.lui s2, 4
+0x15 0x69 # GOOD: c.lui s2, 5
+0x19 0x69 # GOOD: c.lui s2, 6
+0x1D 0x69 # GOOD: c.lui s2, 7
+0x21 0x69 # GOOD: c.lui s2, 8
+0x25 0x69 # GOOD: c.lui s2, 9
+0x29 0x69 # GOOD: c.lui s2, 10
+0x2D 0x69 # GOOD: c.lui s2, 11
+0x31 0x69 # GOOD: c.lui s2, 12
+0x35 0x69 # GOOD: c.lui s2, 13
+0x39 0x69 # GOOD: c.lui s2, 14
+0x3D 0x69 # GOOD: c.lui s2, 15
+0x41 0x69 # GOOD: c.lui s2, 16
+0x45 0x69 # GOOD: c.lui s2, 17
+0x49 0x69 # GOOD: c.lui s2, 18
+0x4D 0x69 # GOOD: c.lui s2, 19
+0x51 0x69 # GOOD: c.lui s2, 20
+0x55 0x69 # GOOD: c.lui s2, 21
+0x59 0x69 # GOOD: c.lui s2, 22
+0x5D 0x69 # GOOD: c.lui s2, 23
+0x61 0x69 # GOOD: c.lui s2, 24
+0x65 0x69 # GOOD: c.lui s2, 25
+0x69 0x69 # GOOD: c.lui s2, 26
+0x6D 0x69 # GOOD: c.lui s2, 27
+0x71 0x69 # GOOD: c.lui s2, 28
+0x75 0x69 # GOOD: c.lui s2, 29
+0x79 0x69 # GOOD: c.lui s2, 30
+0x7D 0x69 # GOOD: c.lui s2, 31
+0x01 0x79 # GOOD: c.lui s2, 1048544
+0x05 0x79 # GOOD: c.lui s2, 1048545
+0x09 0x79 # GOOD: c.lui s2, 1048546
+0x0D 0x79 # GOOD: c.lui s2, 1048547
+0x11 0x79 # GOOD: c.lui s2, 1048548
+0x15 0x79 # GOOD: c.lui s2, 1048549
+0x19 0x79 # GOOD: c.lui s2, 1048550
+0x1D 0x79 # GOOD: c.lui s2, 1048551
+0x21 0x79 # GOOD: c.lui s2, 1048552
+0x25 0x79 # GOOD: c.lui s2, 1048553
+0x29 0x79 # GOOD: c.lui s2, 1048554
+0x2D 0x79 # GOOD: c.lui s2, 1048555
+0x31 0x79 # GOOD: c.lui s2, 1048556
+0x35 0x79 # GOOD: c.lui s2, 1048557
+0x39 0x79 # GOOD: c.lui s2, 1048558
+0x3D 0x79 # GOOD: c.lui s2, 1048559
+0x41 0x79 # GOOD: c.lui s2, 1048560
+0x45 0x79 # GOOD: c.lui s2, 1048561
+0x49 0x79 # GOOD: c.lui s2, 1048562
+0x4D 0x79 # GOOD: c.lui s2, 1048563
+0x51 0x79 # GOOD: c.lui s2, 1048564
+0x55 0x79 # GOOD: c.lui s2, 1048565
+0x59 0x79 # GOOD: c.lui s2, 1048566
+0x5D 0x79 # GOOD: c.lui s2, 1048567
+0x61 0x79 # GOOD: c.lui s2, 1048568
+0x65 0x79 # GOOD: c.lui s2, 1048569
+0x69 0x79 # GOOD: c.lui s2, 1048570
+0x6D 0x79 # GOOD: c.lui s2, 1048571
+0x71 0x79 # GOOD: c.lui s2, 1048572
+0x75 0x79 # GOOD: c.lui s2, 1048573
+0x79 0x79 # GOOD: c.lui s2, 1048574
+0x7D 0x79 # GOOD: c.lui s2, 1048575
+0x81 0x69 # BAD: invalid instruction encoding
+0x85 0x69 # GOOD: c.lui s3, 1
+0x89 0x69 # GOOD: c.lui s3, 2
+0x8D 0x69 # GOOD: c.lui s3, 3
+0x91 0x69 # GOOD: c.lui s3, 4
+0x95 0x69 # GOOD: c.lui s3, 5
+0x99 0x69 # GOOD: c.lui s3, 6
+0x9D 0x69 # GOOD: c.lui s3, 7
+0xA1 0x69 # GOOD: c.lui s3, 8
+0xA5 0x69 # GOOD: c.lui s3, 9
+0xA9 0x69 # GOOD: c.lui s3, 10
+0xAD 0x69 # GOOD: c.lui s3, 11
+0xB1 0x69 # GOOD: c.lui s3, 12
+0xB5 0x69 # GOOD: c.lui s3, 13
+0xB9 0x69 # GOOD: c.lui s3, 14
+0xBD 0x69 # GOOD: c.lui s3, 15
+0xC1 0x69 # GOOD: c.lui s3, 16
+0xC5 0x69 # GOOD: c.lui s3, 17
+0xC9 0x69 # GOOD: c.lui s3, 18
+0xCD 0x69 # GOOD: c.lui s3, 19
+0xD1 0x69 # GOOD: c.lui s3, 20
+0xD5 0x69 # GOOD: c.lui s3, 21
+0xD9 0x69 # GOOD: c.lui s3, 22
+0xDD 0x69 # GOOD: c.lui s3, 23
+0xE1 0x69 # GOOD: c.lui s3, 24
+0xE5 0x69 # GOOD: c.lui s3, 25
+0xE9 0x69 # GOOD: c.lui s3, 26
+0xED 0x69 # GOOD: c.lui s3, 27
+0xF1 0x69 # GOOD: c.lui s3, 28
+0xF5 0x69 # GOOD: c.lui s3, 29
+0xF9 0x69 # GOOD: c.lui s3, 30
+0xFD 0x69 # GOOD: c.lui s3, 31
+0x81 0x79 # GOOD: c.lui s3, 1048544
+0x85 0x79 # GOOD: c.lui s3, 1048545
+0x89 0x79 # GOOD: c.lui s3, 1048546
+0x8D 0x79 # GOOD: c.lui s3, 1048547
+0x91 0x79 # GOOD: c.lui s3, 1048548
+0x95 0x79 # GOOD: c.lui s3, 1048549
+0x99 0x79 # GOOD: c.lui s3, 1048550
+0x9D 0x79 # GOOD: c.lui s3, 1048551
+0xA1 0x79 # GOOD: c.lui s3, 1048552
+0xA5 0x79 # GOOD: c.lui s3, 1048553
+0xA9 0x79 # GOOD: c.lui s3, 1048554
+0xAD 0x79 # GOOD: c.lui s3, 1048555
+0xB1 0x79 # GOOD: c.lui s3, 1048556
+0xB5 0x79 # GOOD: c.lui s3, 1048557
+0xB9 0x79 # GOOD: c.lui s3, 1048558
+0xBD 0x79 # GOOD: c.lui s3, 1048559
+0xC1 0x79 # GOOD: c.lui s3, 1048560
+0xC5 0x79 # GOOD: c.lui s3, 1048561
+0xC9 0x79 # GOOD: c.lui s3, 1048562
+0xCD 0x79 # GOOD: c.lui s3, 1048563
+0xD1 0x79 # GOOD: c.lui s3, 1048564
+0xD5 0x79 # GOOD: c.lui s3, 1048565
+0xD9 0x79 # GOOD: c.lui s3, 1048566
+0xDD 0x79 # GOOD: c.lui s3, 1048567
+0xE1 0x79 # GOOD: c.lui s3, 1048568
+0xE5 0x79 # GOOD: c.lui s3, 1048569
+0xE9 0x79 # GOOD: c.lui s3, 1048570
+0xED 0x79 # GOOD: c.lui s3, 1048571
+0xF1 0x79 # GOOD: c.lui s3, 1048572
+0xF5 0x79 # GOOD: c.lui s3, 1048573
+0xF9 0x79 # GOOD: c.lui s3, 1048574
+0xFD 0x79 # GOOD: c.lui s3, 1048575
+0x01 0x6A # BAD: invalid instruction encoding
+0x05 0x6A # GOOD: c.lui s4, 1
+0x09 0x6A # GOOD: c.lui s4, 2
+0x0D 0x6A # GOOD: c.lui s4, 3
+0x11 0x6A # GOOD: c.lui s4, 4
+0x15 0x6A # GOOD: c.lui s4, 5
+0x19 0x6A # GOOD: c.lui s4, 6
+0x1D 0x6A # GOOD: c.lui s4, 7
+0x21 0x6A # GOOD: c.lui s4, 8
+0x25 0x6A # GOOD: c.lui s4, 9
+0x29 0x6A # GOOD: c.lui s4, 10
+0x2D 0x6A # GOOD: c.lui s4, 11
+0x31 0x6A # GOOD: c.lui s4, 12
+0x35 0x6A # GOOD: c.lui s4, 13
+0x39 0x6A # GOOD: c.lui s4, 14
+0x3D 0x6A # GOOD: c.lui s4, 15
+0x41 0x6A # GOOD: c.lui s4, 16
+0x45 0x6A # GOOD: c.lui s4, 17
+0x49 0x6A # GOOD: c.lui s4, 18
+0x4D 0x6A # GOOD: c.lui s4, 19
+0x51 0x6A # GOOD: c.lui s4, 20
+0x55 0x6A # GOOD: c.lui s4, 21
+0x59 0x6A # GOOD: c.lui s4, 22
+0x5D 0x6A # GOOD: c.lui s4, 23
+0x61 0x6A # GOOD: c.lui s4, 24
+0x65 0x6A # GOOD: c.lui s4, 25
+0x69 0x6A # GOOD: c.lui s4, 26
+0x6D 0x6A # GOOD: c.lui s4, 27
+0x71 0x6A # GOOD: c.lui s4, 28
+0x75 0x6A # GOOD: c.lui s4, 29
+0x79 0x6A # GOOD: c.lui s4, 30
+0x7D 0x6A # GOOD: c.lui s4, 31
+0x01 0x7A # GOOD: c.lui s4, 1048544
+0x05 0x7A # GOOD: c.lui s4, 1048545
+0x09 0x7A # GOOD: c.lui s4, 1048546
+0x0D 0x7A # GOOD: c.lui s4, 1048547
+0x11 0x7A # GOOD: c.lui s4, 1048548
+0x15 0x7A # GOOD: c.lui s4, 1048549
+0x19 0x7A # GOOD: c.lui s4, 1048550
+0x1D 0x7A # GOOD: c.lui s4, 1048551
+0x21 0x7A # GOOD: c.lui s4, 1048552
+0x25 0x7A # GOOD: c.lui s4, 1048553
+0x29 0x7A # GOOD: c.lui s4, 1048554
+0x2D 0x7A # GOOD: c.lui s4, 1048555
+0x31 0x7A # GOOD: c.lui s4, 1048556
+0x35 0x7A # GOOD: c.lui s4, 1048557
+0x39 0x7A # GOOD: c.lui s4, 1048558
+0x3D 0x7A # GOOD: c.lui s4, 1048559
+0x41 0x7A # GOOD: c.lui s4, 1048560
+0x45 0x7A # GOOD: c.lui s4, 1048561
+0x49 0x7A # GOOD: c.lui s4, 1048562
+0x4D 0x7A # GOOD: c.lui s4, 1048563
+0x51 0x7A # GOOD: c.lui s4, 1048564
+0x55 0x7A # GOOD: c.lui s4, 1048565
+0x59 0x7A # GOOD: c.lui s4, 1048566
+0x5D 0x7A # GOOD: c.lui s4, 1048567
+0x61 0x7A # GOOD: c.lui s4, 1048568
+0x65 0x7A # GOOD: c.lui s4, 1048569
+0x69 0x7A # GOOD: c.lui s4, 1048570
+0x6D 0x7A # GOOD: c.lui s4, 1048571
+0x71 0x7A # GOOD: c.lui s4, 1048572
+0x75 0x7A # GOOD: c.lui s4, 1048573
+0x79 0x7A # GOOD: c.lui s4, 1048574
+0x7D 0x7A # GOOD: c.lui s4, 1048575
+0x81 0x6A # BAD: invalid instruction encoding
+0x85 0x6A # GOOD: c.lui s5, 1
+0x89 0x6A # GOOD: c.lui s5, 2
+0x8D 0x6A # GOOD: c.lui s5, 3
+0x91 0x6A # GOOD: c.lui s5, 4
+0x95 0x6A # GOOD: c.lui s5, 5
+0x99 0x6A # GOOD: c.lui s5, 6
+0x9D 0x6A # GOOD: c.lui s5, 7
+0xA1 0x6A # GOOD: c.lui s5, 8
+0xA5 0x6A # GOOD: c.lui s5, 9
+0xA9 0x6A # GOOD: c.lui s5, 10
+0xAD 0x6A # GOOD: c.lui s5, 11
+0xB1 0x6A # GOOD: c.lui s5, 12
+0xB5 0x6A # GOOD: c.lui s5, 13
+0xB9 0x6A # GOOD: c.lui s5, 14
+0xBD 0x6A # GOOD: c.lui s5, 15
+0xC1 0x6A # GOOD: c.lui s5, 16
+0xC5 0x6A # GOOD: c.lui s5, 17
+0xC9 0x6A # GOOD: c.lui s5, 18
+0xCD 0x6A # GOOD: c.lui s5, 19
+0xD1 0x6A # GOOD: c.lui s5, 20
+0xD5 0x6A # GOOD: c.lui s5, 21
+0xD9 0x6A # GOOD: c.lui s5, 22
+0xDD 0x6A # GOOD: c.lui s5, 23
+0xE1 0x6A # GOOD: c.lui s5, 24
+0xE5 0x6A # GOOD: c.lui s5, 25
+0xE9 0x6A # GOOD: c.lui s5, 26
+0xED 0x6A # GOOD: c.lui s5, 27
+0xF1 0x6A # GOOD: c.lui s5, 28
+0xF5 0x6A # GOOD: c.lui s5, 29
+0xF9 0x6A # GOOD: c.lui s5, 30
+0xFD 0x6A # GOOD: c.lui s5, 31
+0x81 0x7A # GOOD: c.lui s5, 1048544
+0x85 0x7A # GOOD: c.lui s5, 1048545
+0x89 0x7A # GOOD: c.lui s5, 1048546
+0x8D 0x7A # GOOD: c.lui s5, 1048547
+0x91 0x7A # GOOD: c.lui s5, 1048548
+0x95 0x7A # GOOD: c.lui s5, 1048549
+0x99 0x7A # GOOD: c.lui s5, 1048550
+0x9D 0x7A # GOOD: c.lui s5, 1048551
+0xA1 0x7A # GOOD: c.lui s5, 1048552
+0xA5 0x7A # GOOD: c.lui s5, 1048553
+0xA9 0x7A # GOOD: c.lui s5, 1048554
+0xAD 0x7A # GOOD: c.lui s5, 1048555
+0xB1 0x7A # GOOD: c.lui s5, 1048556
+0xB5 0x7A # GOOD: c.lui s5, 1048557
+0xB9 0x7A # GOOD: c.lui s5, 1048558
+0xBD 0x7A # GOOD: c.lui s5, 1048559
+0xC1 0x7A # GOOD: c.lui s5, 1048560
+0xC5 0x7A # GOOD: c.lui s5, 1048561
+0xC9 0x7A # GOOD: c.lui s5, 1048562
+0xCD 0x7A # GOOD: c.lui s5, 1048563
+0xD1 0x7A # GOOD: c.lui s5, 1048564
+0xD5 0x7A # GOOD: c.lui s5, 1048565
+0xD9 0x7A # GOOD: c.lui s5, 1048566
+0xDD 0x7A # GOOD: c.lui s5, 1048567
+0xE1 0x7A # GOOD: c.lui s5, 1048568
+0xE5 0x7A # GOOD: c.lui s5, 1048569
+0xE9 0x7A # GOOD: c.lui s5, 1048570
+0xED 0x7A # GOOD: c.lui s5, 1048571
+0xF1 0x7A # GOOD: c.lui s5, 1048572
+0xF5 0x7A # GOOD: c.lui s5, 1048573
+0xF9 0x7A # GOOD: c.lui s5, 1048574
+0xFD 0x7A # GOOD: c.lui s5, 1048575
+0x01 0x6B # BAD: invalid instruction encoding
+0x05 0x6B # GOOD: c.lui s6, 1
+0x09 0x6B # GOOD: c.lui s6, 2
+0x0D 0x6B # GOOD: c.lui s6, 3
+0x11 0x6B # GOOD: c.lui s6, 4
+0x15 0x6B # GOOD: c.lui s6, 5
+0x19 0x6B # GOOD: c.lui s6, 6
+0x1D 0x6B # GOOD: c.lui s6, 7
+0x21 0x6B # GOOD: c.lui s6, 8
+0x25 0x6B # GOOD: c.lui s6, 9
+0x29 0x6B # GOOD: c.lui s6, 10
+0x2D 0x6B # GOOD: c.lui s6, 11
+0x31 0x6B # GOOD: c.lui s6, 12
+0x35 0x6B # GOOD: c.lui s6, 13
+0x39 0x6B # GOOD: c.lui s6, 14
+0x3D 0x6B # GOOD: c.lui s6, 15
+0x41 0x6B # GOOD: c.lui s6, 16
+0x45 0x6B # GOOD: c.lui s6, 17
+0x49 0x6B # GOOD: c.lui s6, 18
+0x4D 0x6B # GOOD: c.lui s6, 19
+0x51 0x6B # GOOD: c.lui s6, 20
+0x55 0x6B # GOOD: c.lui s6, 21
+0x59 0x6B # GOOD: c.lui s6, 22
+0x5D 0x6B # GOOD: c.lui s6, 23
+0x61 0x6B # GOOD: c.lui s6, 24
+0x65 0x6B # GOOD: c.lui s6, 25
+0x69 0x6B # GOOD: c.lui s6, 26
+0x6D 0x6B # GOOD: c.lui s6, 27
+0x71 0x6B # GOOD: c.lui s6, 28
+0x75 0x6B # GOOD: c.lui s6, 29
+0x79 0x6B # GOOD: c.lui s6, 30
+0x7D 0x6B # GOOD: c.lui s6, 31
+0x01 0x7B # GOOD: c.lui s6, 1048544
+0x05 0x7B # GOOD: c.lui s6, 1048545
+0x09 0x7B # GOOD: c.lui s6, 1048546
+0x0D 0x7B # GOOD: c.lui s6, 1048547
+0x11 0x7B # GOOD: c.lui s6, 1048548
+0x15 0x7B # GOOD: c.lui s6, 1048549
+0x19 0x7B # GOOD: c.lui s6, 1048550
+0x1D 0x7B # GOOD: c.lui s6, 1048551
+0x21 0x7B # GOOD: c.lui s6, 1048552
+0x25 0x7B # GOOD: c.lui s6, 1048553
+0x29 0x7B # GOOD: c.lui s6, 1048554
+0x2D 0x7B # GOOD: c.lui s6, 1048555
+0x31 0x7B # GOOD: c.lui s6, 1048556
+0x35 0x7B # GOOD: c.lui s6, 1048557
+0x39 0x7B # GOOD: c.lui s6, 1048558
+0x3D 0x7B # GOOD: c.lui s6, 1048559
+0x41 0x7B # GOOD: c.lui s6, 1048560
+0x45 0x7B # GOOD: c.lui s6, 1048561
+0x49 0x7B # GOOD: c.lui s6, 1048562
+0x4D 0x7B # GOOD: c.lui s6, 1048563
+0x51 0x7B # GOOD: c.lui s6, 1048564
+0x55 0x7B # GOOD: c.lui s6, 1048565
+0x59 0x7B # GOOD: c.lui s6, 1048566
+0x5D 0x7B # GOOD: c.lui s6, 1048567
+0x61 0x7B # GOOD: c.lui s6, 1048568
+0x65 0x7B # GOOD: c.lui s6, 1048569
+0x69 0x7B # GOOD: c.lui s6, 1048570
+0x6D 0x7B # GOOD: c.lui s6, 1048571
+0x71 0x7B # GOOD: c.lui s6, 1048572
+0x75 0x7B # GOOD: c.lui s6, 1048573
+0x79 0x7B # GOOD: c.lui s6, 1048574
+0x7D 0x7B # GOOD: c.lui s6, 1048575
+0x81 0x6B # BAD: invalid instruction encoding
+0x85 0x6B # GOOD: c.lui s7, 1
+0x89 0x6B # GOOD: c.lui s7, 2
+0x8D 0x6B # GOOD: c.lui s7, 3
+0x91 0x6B # GOOD: c.lui s7, 4
+0x95 0x6B # GOOD: c.lui s7, 5
+0x99 0x6B # GOOD: c.lui s7, 6
+0x9D 0x6B # GOOD: c.lui s7, 7
+0xA1 0x6B # GOOD: c.lui s7, 8
+0xA5 0x6B # GOOD: c.lui s7, 9
+0xA9 0x6B # GOOD: c.lui s7, 10
+0xAD 0x6B # GOOD: c.lui s7, 11
+0xB1 0x6B # GOOD: c.lui s7, 12
+0xB5 0x6B # GOOD: c.lui s7, 13
+0xB9 0x6B # GOOD: c.lui s7, 14
+0xBD 0x6B # GOOD: c.lui s7, 15
+0xC1 0x6B # GOOD: c.lui s7, 16
+0xC5 0x6B # GOOD: c.lui s7, 17
+0xC9 0x6B # GOOD: c.lui s7, 18
+0xCD 0x6B # GOOD: c.lui s7, 19
+0xD1 0x6B # GOOD: c.lui s7, 20
+0xD5 0x6B # GOOD: c.lui s7, 21
+0xD9 0x6B # GOOD: c.lui s7, 22
+0xDD 0x6B # GOOD: c.lui s7, 23
+0xE1 0x6B # GOOD: c.lui s7, 24
+0xE5 0x6B # GOOD: c.lui s7, 25
+0xE9 0x6B # GOOD: c.lui s7, 26
+0xED 0x6B # GOOD: c.lui s7, 27
+0xF1 0x6B # GOOD: c.lui s7, 28
+0xF5 0x6B # GOOD: c.lui s7, 29
+0xF9 0x6B # GOOD: c.lui s7, 30
+0xFD 0x6B # GOOD: c.lui s7, 31
+0x81 0x7B # GOOD: c.lui s7, 1048544
+0x85 0x7B # GOOD: c.lui s7, 1048545
+0x89 0x7B # GOOD: c.lui s7, 1048546
+0x8D 0x7B # GOOD: c.lui s7, 1048547
+0x91 0x7B # GOOD: c.lui s7, 1048548
+0x95 0x7B # GOOD: c.lui s7, 1048549
+0x99 0x7B # GOOD: c.lui s7, 1048550
+0x9D 0x7B # GOOD: c.lui s7, 1048551
+0xA1 0x7B # GOOD: c.lui s7, 1048552
+0xA5 0x7B # GOOD: c.lui s7, 1048553
+0xA9 0x7B # GOOD: c.lui s7, 1048554
+0xAD 0x7B # GOOD: c.lui s7, 1048555
+0xB1 0x7B # GOOD: c.lui s7, 1048556
+0xB5 0x7B # GOOD: c.lui s7, 1048557
+0xB9 0x7B # GOOD: c.lui s7, 1048558
+0xBD 0x7B # GOOD: c.lui s7, 1048559
+0xC1 0x7B # GOOD: c.lui s7, 1048560
+0xC5 0x7B # GOOD: c.lui s7, 1048561
+0xC9 0x7B # GOOD: c.lui s7, 1048562
+0xCD 0x7B # GOOD: c.lui s7, 1048563
+0xD1 0x7B # GOOD: c.lui s7, 1048564
+0xD5 0x7B # GOOD: c.lui s7, 1048565
+0xD9 0x7B # GOOD: c.lui s7, 1048566
+0xDD 0x7B # GOOD: c.lui s7, 1048567
+0xE1 0x7B # GOOD: c.lui s7, 1048568
+0xE5 0x7B # GOOD: c.lui s7, 1048569
+0xE9 0x7B # GOOD: c.lui s7, 1048570
+0xED 0x7B # GOOD: c.lui s7, 1048571
+0xF1 0x7B # GOOD: c.lui s7, 1048572
+0xF5 0x7B # GOOD: c.lui s7, 1048573
+0xF9 0x7B # GOOD: c.lui s7, 1048574
+0xFD 0x7B # GOOD: c.lui s7, 1048575
+0x01 0x6C # BAD: invalid instruction encoding
+0x05 0x6C # GOOD: c.lui s8, 1
+0x09 0x6C # GOOD: c.lui s8, 2
+0x0D 0x6C # GOOD: c.lui s8, 3
+0x11 0x6C # GOOD: c.lui s8, 4
+0x15 0x6C # GOOD: c.lui s8, 5
+0x19 0x6C # GOOD: c.lui s8, 6
+0x1D 0x6C # GOOD: c.lui s8, 7
+0x21 0x6C # GOOD: c.lui s8, 8
+0x25 0x6C # GOOD: c.lui s8, 9
+0x29 0x6C # GOOD: c.lui s8, 10
+0x2D 0x6C # GOOD: c.lui s8, 11
+0x31 0x6C # GOOD: c.lui s8, 12
+0x35 0x6C # GOOD: c.lui s8, 13
+0x39 0x6C # GOOD: c.lui s8, 14
+0x3D 0x6C # GOOD: c.lui s8, 15
+0x41 0x6C # GOOD: c.lui s8, 16
+0x45 0x6C # GOOD: c.lui s8, 17
+0x49 0x6C # GOOD: c.lui s8, 18
+0x4D 0x6C # GOOD: c.lui s8, 19
+0x51 0x6C # GOOD: c.lui s8, 20
+0x55 0x6C # GOOD: c.lui s8, 21
+0x59 0x6C # GOOD: c.lui s8, 22
+0x5D 0x6C # GOOD: c.lui s8, 23
+0x61 0x6C # GOOD: c.lui s8, 24
+0x65 0x6C # GOOD: c.lui s8, 25
+0x69 0x6C # GOOD: c.lui s8, 26
+0x6D 0x6C # GOOD: c.lui s8, 27
+0x71 0x6C # GOOD: c.lui s8, 28
+0x75 0x6C # GOOD: c.lui s8, 29
+0x79 0x6C # GOOD: c.lui s8, 30
+0x7D 0x6C # GOOD: c.lui s8, 31
+0x01 0x7C # GOOD: c.lui s8, 1048544
+0x05 0x7C # GOOD: c.lui s8, 1048545
+0x09 0x7C # GOOD: c.lui s8, 1048546
+0x0D 0x7C # GOOD: c.lui s8, 1048547
+0x11 0x7C # GOOD: c.lui s8, 1048548
+0x15 0x7C # GOOD: c.lui s8, 1048549
+0x19 0x7C # GOOD: c.lui s8, 1048550
+0x1D 0x7C # GOOD: c.lui s8, 1048551
+0x21 0x7C # GOOD: c.lui s8, 1048552
+0x25 0x7C # GOOD: c.lui s8, 1048553
+0x29 0x7C # GOOD: c.lui s8, 1048554
+0x2D 0x7C # GOOD: c.lui s8, 1048555
+0x31 0x7C # GOOD: c.lui s8, 1048556
+0x35 0x7C # GOOD: c.lui s8, 1048557
+0x39 0x7C # GOOD: c.lui s8, 1048558
+0x3D 0x7C # GOOD: c.lui s8, 1048559
+0x41 0x7C # GOOD: c.lui s8, 1048560
+0x45 0x7C # GOOD: c.lui s8, 1048561
+0x49 0x7C # GOOD: c.lui s8, 1048562
+0x4D 0x7C # GOOD: c.lui s8, 1048563
+0x51 0x7C # GOOD: c.lui s8, 1048564
+0x55 0x7C # GOOD: c.lui s8, 1048565
+0x59 0x7C # GOOD: c.lui s8, 1048566
+0x5D 0x7C # GOOD: c.lui s8, 1048567
+0x61 0x7C # GOOD: c.lui s8, 1048568
+0x65 0x7C # GOOD: c.lui s8, 1048569
+0x69 0x7C # GOOD: c.lui s8, 1048570
+0x6D 0x7C # GOOD: c.lui s8, 1048571
+0x71 0x7C # GOOD: c.lui s8, 1048572
+0x75 0x7C # GOOD: c.lui s8, 1048573
+0x79 0x7C # GOOD: c.lui s8, 1048574
+0x7D 0x7C # GOOD: c.lui s8, 1048575
+0x81 0x6C # BAD: invalid instruction encoding
+0x85 0x6C # GOOD: c.lui s9, 1
+0x89 0x6C # GOOD: c.lui s9, 2
+0x8D 0x6C # GOOD: c.lui s9, 3
+0x91 0x6C # GOOD: c.lui s9, 4
+0x95 0x6C # GOOD: c.lui s9, 5
+0x99 0x6C # GOOD: c.lui s9, 6
+0x9D 0x6C # GOOD: c.lui s9, 7
+0xA1 0x6C # GOOD: c.lui s9, 8
+0xA5 0x6C # GOOD: c.lui s9, 9
+0xA9 0x6C # GOOD: c.lui s9, 10
+0xAD 0x6C # GOOD: c.lui s9, 11
+0xB1 0x6C # GOOD: c.lui s9, 12
+0xB5 0x6C # GOOD: c.lui s9, 13
+0xB9 0x6C # GOOD: c.lui s9, 14
+0xBD 0x6C # GOOD: c.lui s9, 15
+0xC1 0x6C # GOOD: c.lui s9, 16
+0xC5 0x6C # GOOD: c.lui s9, 17
+0xC9 0x6C # GOOD: c.lui s9, 18
+0xCD 0x6C # GOOD: c.lui s9, 19
+0xD1 0x6C # GOOD: c.lui s9, 20
+0xD5 0x6C # GOOD: c.lui s9, 21
+0xD9 0x6C # GOOD: c.lui s9, 22
+0xDD 0x6C # GOOD: c.lui s9, 23
+0xE1 0x6C # GOOD: c.lui s9, 24
+0xE5 0x6C # GOOD: c.lui s9, 25
+0xE9 0x6C # GOOD: c.lui s9, 26
+0xED 0x6C # GOOD: c.lui s9, 27
+0xF1 0x6C # GOOD: c.lui s9, 28
+0xF5 0x6C # GOOD: c.lui s9, 29
+0xF9 0x6C # GOOD: c.lui s9, 30
+0xFD 0x6C # GOOD: c.lui s9, 31
+0x81 0x7C # GOOD: c.lui s9, 1048544
+0x85 0x7C # GOOD: c.lui s9, 1048545
+0x89 0x7C # GOOD: c.lui s9, 1048546
+0x8D 0x7C # GOOD: c.lui s9, 1048547
+0x91 0x7C # GOOD: c.lui s9, 1048548
+0x95 0x7C # GOOD: c.lui s9, 1048549
+0x99 0x7C # GOOD: c.lui s9, 1048550
+0x9D 0x7C # GOOD: c.lui s9, 1048551
+0xA1 0x7C # GOOD: c.lui s9, 1048552
+0xA5 0x7C # GOOD: c.lui s9, 1048553
+0xA9 0x7C # GOOD: c.lui s9, 1048554
+0xAD 0x7C # GOOD: c.lui s9, 1048555
+0xB1 0x7C # GOOD: c.lui s9, 1048556
+0xB5 0x7C # GOOD: c.lui s9, 1048557
+0xB9 0x7C # GOOD: c.lui s9, 1048558
+0xBD 0x7C # GOOD: c.lui s9, 1048559
+0xC1 0x7C # GOOD: c.lui s9, 1048560
+0xC5 0x7C # GOOD: c.lui s9, 1048561
+0xC9 0x7C # GOOD: c.lui s9, 1048562
+0xCD 0x7C # GOOD: c.lui s9, 1048563
+0xD1 0x7C # GOOD: c.lui s9, 1048564
+0xD5 0x7C # GOOD: c.lui s9, 1048565
+0xD9 0x7C # GOOD: c.lui s9, 1048566
+0xDD 0x7C # GOOD: c.lui s9, 1048567
+0xE1 0x7C # GOOD: c.lui s9, 1048568
+0xE5 0x7C # GOOD: c.lui s9, 1048569
+0xE9 0x7C # GOOD: c.lui s9, 1048570
+0xED 0x7C # GOOD: c.lui s9, 1048571
+0xF1 0x7C # GOOD: c.lui s9, 1048572
+0xF5 0x7C # GOOD: c.lui s9, 1048573
+0xF9 0x7C # GOOD: c.lui s9, 1048574
+0xFD 0x7C # GOOD: c.lui s9, 1048575
+0x01 0x6D # BAD: invalid instruction encoding
+0x05 0x6D # GOOD: c.lui s10, 1
+0x09 0x6D # GOOD: c.lui s10, 2
+0x0D 0x6D # GOOD: c.lui s10, 3
+0x11 0x6D # GOOD: c.lui s10, 4
+0x15 0x6D # GOOD: c.lui s10, 5
+0x19 0x6D # GOOD: c.lui s10, 6
+0x1D 0x6D # GOOD: c.lui s10, 7
+0x21 0x6D # GOOD: c.lui s10, 8
+0x25 0x6D # GOOD: c.lui s10, 9
+0x29 0x6D # GOOD: c.lui s10, 10
+0x2D 0x6D # GOOD: c.lui s10, 11
+0x31 0x6D # GOOD: c.lui s10, 12
+0x35 0x6D # GOOD: c.lui s10, 13
+0x39 0x6D # GOOD: c.lui s10, 14
+0x3D 0x6D # GOOD: c.lui s10, 15
+0x41 0x6D # GOOD: c.lui s10, 16
+0x45 0x6D # GOOD: c.lui s10, 17
+0x49 0x6D # GOOD: c.lui s10, 18
+0x4D 0x6D # GOOD: c.lui s10, 19
+0x51 0x6D # GOOD: c.lui s10, 20
+0x55 0x6D # GOOD: c.lui s10, 21
+0x59 0x6D # GOOD: c.lui s10, 22
+0x5D 0x6D # GOOD: c.lui s10, 23
+0x61 0x6D # GOOD: c.lui s10, 24
+0x65 0x6D # GOOD: c.lui s10, 25
+0x69 0x6D # GOOD: c.lui s10, 26
+0x6D 0x6D # GOOD: c.lui s10, 27
+0x71 0x6D # GOOD: c.lui s10, 28
+0x75 0x6D # GOOD: c.lui s10, 29
+0x79 0x6D # GOOD: c.lui s10, 30
+0x7D 0x6D # GOOD: c.lui s10, 31
+0x01 0x7D # GOOD: c.lui s10, 1048544
+0x05 0x7D # GOOD: c.lui s10, 1048545
+0x09 0x7D # GOOD: c.lui s10, 1048546
+0x0D 0x7D # GOOD: c.lui s10, 1048547
+0x11 0x7D # GOOD: c.lui s10, 1048548
+0x15 0x7D # GOOD: c.lui s10, 1048549
+0x19 0x7D # GOOD: c.lui s10, 1048550
+0x1D 0x7D # GOOD: c.lui s10, 1048551
+0x21 0x7D # GOOD: c.lui s10, 1048552
+0x25 0x7D # GOOD: c.lui s10, 1048553
+0x29 0x7D # GOOD: c.lui s10, 1048554
+0x2D 0x7D # GOOD: c.lui s10, 1048555
+0x31 0x7D # GOOD: c.lui s10, 1048556
+0x35 0x7D # GOOD: c.lui s10, 1048557
+0x39 0x7D # GOOD: c.lui s10, 1048558
+0x3D 0x7D # GOOD: c.lui s10, 1048559
+0x41 0x7D # GOOD: c.lui s10, 1048560
+0x45 0x7D # GOOD: c.lui s10, 1048561
+0x49 0x7D # GOOD: c.lui s10, 1048562
+0x4D 0x7D # GOOD: c.lui s10, 1048563
+0x51 0x7D # GOOD: c.lui s10, 1048564
+0x55 0x7D # GOOD: c.lui s10, 1048565
+0x59 0x7D # GOOD: c.lui s10, 1048566
+0x5D 0x7D # GOOD: c.lui s10, 1048567
+0x61 0x7D # GOOD: c.lui s10, 1048568
+0x65 0x7D # GOOD: c.lui s10, 1048569
+0x69 0x7D # GOOD: c.lui s10, 1048570
+0x6D 0x7D # GOOD: c.lui s10, 1048571
+0x71 0x7D # GOOD: c.lui s10, 1048572
+0x75 0x7D # GOOD: c.lui s10, 1048573
+0x79 0x7D # GOOD: c.lui s10, 1048574
+0x7D 0x7D # GOOD: c.lui s10, 1048575
+0x81 0x6D # BAD: invalid instruction encoding
+0x85 0x6D # GOOD: c.lui s11, 1
+0x89 0x6D # GOOD: c.lui s11, 2
+0x8D 0x6D # GOOD: c.lui s11, 3
+0x91 0x6D # GOOD: c.lui s11, 4
+0x95 0x6D # GOOD: c.lui s11, 5
+0x99 0x6D # GOOD: c.lui s11, 6
+0x9D 0x6D # GOOD: c.lui s11, 7
+0xA1 0x6D # GOOD: c.lui s11, 8
+0xA5 0x6D # GOOD: c.lui s11, 9
+0xA9 0x6D # GOOD: c.lui s11, 10
+0xAD 0x6D # GOOD: c.lui s11, 11
+0xB1 0x6D # GOOD: c.lui s11, 12
+0xB5 0x6D # GOOD: c.lui s11, 13
+0xB9 0x6D # GOOD: c.lui s11, 14
+0xBD 0x6D # GOOD: c.lui s11, 15
+0xC1 0x6D # GOOD: c.lui s11, 16
+0xC5 0x6D # GOOD: c.lui s11, 17
+0xC9 0x6D # GOOD: c.lui s11, 18
+0xCD 0x6D # GOOD: c.lui s11, 19
+0xD1 0x6D # GOOD: c.lui s11, 20
+0xD5 0x6D # GOOD: c.lui s11, 21
+0xD9 0x6D # GOOD: c.lui s11, 22
+0xDD 0x6D # GOOD: c.lui s11, 23
+0xE1 0x6D # GOOD: c.lui s11, 24
+0xE5 0x6D # GOOD: c.lui s11, 25
+0xE9 0x6D # GOOD: c.lui s11, 26
+0xED 0x6D # GOOD: c.lui s11, 27
+0xF1 0x6D # GOOD: c.lui s11, 28
+0xF5 0x6D # GOOD: c.lui s11, 29
+0xF9 0x6D # GOOD: c.lui s11, 30
+0xFD 0x6D # GOOD: c.lui s11, 31
+0x81 0x7D # GOOD: c.lui s11, 1048544
+0x85 0x7D # GOOD: c.lui s11, 1048545
+0x89 0x7D # GOOD: c.lui s11, 1048546
+0x8D 0x7D # GOOD: c.lui s11, 1048547
+0x91 0x7D # GOOD: c.lui s11, 1048548
+0x95 0x7D # GOOD: c.lui s11, 1048549
+0x99 0x7D # GOOD: c.lui s11, 1048550
+0x9D 0x7D # GOOD: c.lui s11, 1048551
+0xA1 0x7D # GOOD: c.lui s11, 1048552
+0xA5 0x7D # GOOD: c.lui s11, 1048553
+0xA9 0x7D # GOOD: c.lui s11, 1048554
+0xAD 0x7D # GOOD: c.lui s11, 1048555
+0xB1 0x7D # GOOD: c.lui s11, 1048556
+0xB5 0x7D # GOOD: c.lui s11, 1048557
+0xB9 0x7D # GOOD: c.lui s11, 1048558
+0xBD 0x7D # GOOD: c.lui s11, 1048559
+0xC1 0x7D # GOOD: c.lui s11, 1048560
+0xC5 0x7D # GOOD: c.lui s11, 1048561
+0xC9 0x7D # GOOD: c.lui s11, 1048562
+0xCD 0x7D # GOOD: c.lui s11, 1048563
+0xD1 0x7D # GOOD: c.lui s11, 1048564
+0xD5 0x7D # GOOD: c.lui s11, 1048565
+0xD9 0x7D # GOOD: c.lui s11, 1048566
+0xDD 0x7D # GOOD: c.lui s11, 1048567
+0xE1 0x7D # GOOD: c.lui s11, 1048568
+0xE5 0x7D # GOOD: c.lui s11, 1048569
+0xE9 0x7D # GOOD: c.lui s11, 1048570
+0xED 0x7D # GOOD: c.lui s11, 1048571
+0xF1 0x7D # GOOD: c.lui s11, 1048572
+0xF5 0x7D # GOOD: c.lui s11, 1048573
+0xF9 0x7D # GOOD: c.lui s11, 1048574
+0xFD 0x7D # GOOD: c.lui s11, 1048575
+0x01 0x6E # BAD: invalid instruction encoding
+0x05 0x6E # GOOD: c.lui t3, 1
+0x09 0x6E # GOOD: c.lui t3, 2
+0x0D 0x6E # GOOD: c.lui t3, 3
+0x11 0x6E # GOOD: c.lui t3, 4
+0x15 0x6E # GOOD: c.lui t3, 5
+0x19 0x6E # GOOD: c.lui t3, 6
+0x1D 0x6E # GOOD: c.lui t3, 7
+0x21 0x6E # GOOD: c.lui t3, 8
+0x25 0x6E # GOOD: c.lui t3, 9
+0x29 0x6E # GOOD: c.lui t3, 10
+0x2D 0x6E # GOOD: c.lui t3, 11
+0x31 0x6E # GOOD: c.lui t3, 12
+0x35 0x6E # GOOD: c.lui t3, 13
+0x39 0x6E # GOOD: c.lui t3, 14
+0x3D 0x6E # GOOD: c.lui t3, 15
+0x41 0x6E # GOOD: c.lui t3, 16
+0x45 0x6E # GOOD: c.lui t3, 17
+0x49 0x6E # GOOD: c.lui t3, 18
+0x4D 0x6E # GOOD: c.lui t3, 19
+0x51 0x6E # GOOD: c.lui t3, 20
+0x55 0x6E # GOOD: c.lui t3, 21
+0x59 0x6E # GOOD: c.lui t3, 22
+0x5D 0x6E # GOOD: c.lui t3, 23
+0x61 0x6E # GOOD: c.lui t3, 24
+0x65 0x6E # GOOD: c.lui t3, 25
+0x69 0x6E # GOOD: c.lui t3, 26
+0x6D 0x6E # GOOD: c.lui t3, 27
+0x71 0x6E # GOOD: c.lui t3, 28
+0x75 0x6E # GOOD: c.lui t3, 29
+0x79 0x6E # GOOD: c.lui t3, 30
+0x7D 0x6E # GOOD: c.lui t3, 31
+0x01 0x7E # GOOD: c.lui t3, 1048544
+0x05 0x7E # GOOD: c.lui t3, 1048545
+0x09 0x7E # GOOD: c.lui t3, 1048546
+0x0D 0x7E # GOOD: c.lui t3, 1048547
+0x11 0x7E # GOOD: c.lui t3, 1048548
+0x15 0x7E # GOOD: c.lui t3, 1048549
+0x19 0x7E # GOOD: c.lui t3, 1048550
+0x1D 0x7E # GOOD: c.lui t3, 1048551
+0x21 0x7E # GOOD: c.lui t3, 1048552
+0x25 0x7E # GOOD: c.lui t3, 1048553
+0x29 0x7E # GOOD: c.lui t3, 1048554
+0x2D 0x7E # GOOD: c.lui t3, 1048555
+0x31 0x7E # GOOD: c.lui t3, 1048556
+0x35 0x7E # GOOD: c.lui t3, 1048557
+0x39 0x7E # GOOD: c.lui t3, 1048558
+0x3D 0x7E # GOOD: c.lui t3, 1048559
+0x41 0x7E # GOOD: c.lui t3, 1048560
+0x45 0x7E # GOOD: c.lui t3, 1048561
+0x49 0x7E # GOOD: c.lui t3, 1048562
+0x4D 0x7E # GOOD: c.lui t3, 1048563
+0x51 0x7E # GOOD: c.lui t3, 1048564
+0x55 0x7E # GOOD: c.lui t3, 1048565
+0x59 0x7E # GOOD: c.lui t3, 1048566
+0x5D 0x7E # GOOD: c.lui t3, 1048567
+0x61 0x7E # GOOD: c.lui t3, 1048568
+0x65 0x7E # GOOD: c.lui t3, 1048569
+0x69 0x7E # GOOD: c.lui t3, 1048570
+0x6D 0x7E # GOOD: c.lui t3, 1048571
+0x71 0x7E # GOOD: c.lui t3, 1048572
+0x75 0x7E # GOOD: c.lui t3, 1048573
+0x79 0x7E # GOOD: c.lui t3, 1048574
+0x7D 0x7E # GOOD: c.lui t3, 1048575
+0x81 0x6E # BAD: invalid instruction encoding
+0x85 0x6E # GOOD: c.lui t4, 1
+0x89 0x6E # GOOD: c.lui t4, 2
+0x8D 0x6E # GOOD: c.lui t4, 3
+0x91 0x6E # GOOD: c.lui t4, 4
+0x95 0x6E # GOOD: c.lui t4, 5
+0x99 0x6E # GOOD: c.lui t4, 6
+0x9D 0x6E # GOOD: c.lui t4, 7
+0xA1 0x6E # GOOD: c.lui t4, 8
+0xA5 0x6E # GOOD: c.lui t4, 9
+0xA9 0x6E # GOOD: c.lui t4, 10
+0xAD 0x6E # GOOD: c.lui t4, 11
+0xB1 0x6E # GOOD: c.lui t4, 12
+0xB5 0x6E # GOOD: c.lui t4, 13
+0xB9 0x6E # GOOD: c.lui t4, 14
+0xBD 0x6E # GOOD: c.lui t4, 15
+0xC1 0x6E # GOOD: c.lui t4, 16
+0xC5 0x6E # GOOD: c.lui t4, 17
+0xC9 0x6E # GOOD: c.lui t4, 18
+0xCD 0x6E # GOOD: c.lui t4, 19
+0xD1 0x6E # GOOD: c.lui t4, 20
+0xD5 0x6E # GOOD: c.lui t4, 21
+0xD9 0x6E # GOOD: c.lui t4, 22
+0xDD 0x6E # GOOD: c.lui t4, 23
+0xE1 0x6E # GOOD: c.lui t4, 24
+0xE5 0x6E # GOOD: c.lui t4, 25
+0xE9 0x6E # GOOD: c.lui t4, 26
+0xED 0x6E # GOOD: c.lui t4, 27
+0xF1 0x6E # GOOD: c.lui t4, 28
+0xF5 0x6E # GOOD: c.lui t4, 29
+0xF9 0x6E # GOOD: c.lui t4, 30
+0xFD 0x6E # GOOD: c.lui t4, 31
+0x81 0x7E # GOOD: c.lui t4, 1048544
+0x85 0x7E # GOOD: c.lui t4, 1048545
+0x89 0x7E # GOOD: c.lui t4, 1048546
+0x8D 0x7E # GOOD: c.lui t4, 1048547
+0x91 0x7E # GOOD: c.lui t4, 1048548
+0x95 0x7E # GOOD: c.lui t4, 1048549
+0x99 0x7E # GOOD: c.lui t4, 1048550
+0x9D 0x7E # GOOD: c.lui t4, 1048551
+0xA1 0x7E # GOOD: c.lui t4, 1048552
+0xA5 0x7E # GOOD: c.lui t4, 1048553
+0xA9 0x7E # GOOD: c.lui t4, 1048554
+0xAD 0x7E # GOOD: c.lui t4, 1048555
+0xB1 0x7E # GOOD: c.lui t4, 1048556
+0xB5 0x7E # GOOD: c.lui t4, 1048557
+0xB9 0x7E # GOOD: c.lui t4, 1048558
+0xBD 0x7E # GOOD: c.lui t4, 1048559
+0xC1 0x7E # GOOD: c.lui t4, 1048560
+0xC5 0x7E # GOOD: c.lui t4, 1048561
+0xC9 0x7E # GOOD: c.lui t4, 1048562
+0xCD 0x7E # GOOD: c.lui t4, 1048563
+0xD1 0x7E # GOOD: c.lui t4, 1048564
+0xD5 0x7E # GOOD: c.lui t4, 1048565
+0xD9 0x7E # GOOD: c.lui t4, 1048566
+0xDD 0x7E # GOOD: c.lui t4, 1048567
+0xE1 0x7E # GOOD: c.lui t4, 1048568
+0xE5 0x7E # GOOD: c.lui t4, 1048569
+0xE9 0x7E # GOOD: c.lui t4, 1048570
+0xED 0x7E # GOOD: c.lui t4, 1048571
+0xF1 0x7E # GOOD: c.lui t4, 1048572
+0xF5 0x7E # GOOD: c.lui t4, 1048573
+0xF9 0x7E # GOOD: c.lui t4, 1048574
+0xFD 0x7E # GOOD: c.lui t4, 1048575
+0x01 0x6F # BAD: invalid instruction encoding
+0x05 0x6F # GOOD: c.lui t5, 1
+0x09 0x6F # GOOD: c.lui t5, 2
+0x0D 0x6F # GOOD: c.lui t5, 3
+0x11 0x6F # GOOD: c.lui t5, 4
+0x15 0x6F # GOOD: c.lui t5, 5
+0x19 0x6F # GOOD: c.lui t5, 6
+0x1D 0x6F # GOOD: c.lui t5, 7
+0x21 0x6F # GOOD: c.lui t5, 8
+0x25 0x6F # GOOD: c.lui t5, 9
+0x29 0x6F # GOOD: c.lui t5, 10
+0x2D 0x6F # GOOD: c.lui t5, 11
+0x31 0x6F # GOOD: c.lui t5, 12
+0x35 0x6F # GOOD: c.lui t5, 13
+0x39 0x6F # GOOD: c.lui t5, 14
+0x3D 0x6F # GOOD: c.lui t5, 15
+0x41 0x6F # GOOD: c.lui t5, 16
+0x45 0x6F # GOOD: c.lui t5, 17
+0x49 0x6F # GOOD: c.lui t5, 18
+0x4D 0x6F # GOOD: c.lui t5, 19
+0x51 0x6F # GOOD: c.lui t5, 20
+0x55 0x6F # GOOD: c.lui t5, 21
+0x59 0x6F # GOOD: c.lui t5, 22
+0x5D 0x6F # GOOD: c.lui t5, 23
+0x61 0x6F # GOOD: c.lui t5, 24
+0x65 0x6F # GOOD: c.lui t5, 25
+0x69 0x6F # GOOD: c.lui t5, 26
+0x6D 0x6F # GOOD: c.lui t5, 27
+0x71 0x6F # GOOD: c.lui t5, 28
+0x75 0x6F # GOOD: c.lui t5, 29
+0x79 0x6F # GOOD: c.lui t5, 30
+0x7D 0x6F # GOOD: c.lui t5, 31
+0x01 0x7F # GOOD: c.lui t5, 1048544
+0x05 0x7F # GOOD: c.lui t5, 1048545
+0x09 0x7F # GOOD: c.lui t5, 1048546
+0x0D 0x7F # GOOD: c.lui t5, 1048547
+0x11 0x7F # GOOD: c.lui t5, 1048548
+0x15 0x7F # GOOD: c.lui t5, 1048549
+0x19 0x7F # GOOD: c.lui t5, 1048550
+0x1D 0x7F # GOOD: c.lui t5, 1048551
+0x21 0x7F # GOOD: c.lui t5, 1048552
+0x25 0x7F # GOOD: c.lui t5, 1048553
+0x29 0x7F # GOOD: c.lui t5, 1048554
+0x2D 0x7F # GOOD: c.lui t5, 1048555
+0x31 0x7F # GOOD: c.lui t5, 1048556
+0x35 0x7F # GOOD: c.lui t5, 1048557
+0x39 0x7F # GOOD: c.lui t5, 1048558
+0x3D 0x7F # GOOD: c.lui t5, 1048559
+0x41 0x7F # GOOD: c.lui t5, 1048560
+0x45 0x7F # GOOD: c.lui t5, 1048561
+0x49 0x7F # GOOD: c.lui t5, 1048562
+0x4D 0x7F # GOOD: c.lui t5, 1048563
+0x51 0x7F # GOOD: c.lui t5, 1048564
+0x55 0x7F # GOOD: c.lui t5, 1048565
+0x59 0x7F # GOOD: c.lui t5, 1048566
+0x5D 0x7F # GOOD: c.lui t5, 1048567
+0x61 0x7F # GOOD: c.lui t5, 1048568
+0x65 0x7F # GOOD: c.lui t5, 1048569
+0x69 0x7F # GOOD: c.lui t5, 1048570
+0x6D 0x7F # GOOD: c.lui t5, 1048571
+0x71 0x7F # GOOD: c.lui t5, 1048572
+0x75 0x7F # GOOD: c.lui t5, 1048573
+0x79 0x7F # GOOD: c.lui t5, 1048574
+0x7D 0x7F # GOOD: c.lui t5, 1048575
+0x81 0x6F # BAD: invalid instruction encoding
+0x85 0x6F # GOOD: c.lui t6, 1
+0x89 0x6F # GOOD: c.lui t6, 2
+0x8D 0x6F # GOOD: c.lui t6, 3
+0x91 0x6F # GOOD: c.lui t6, 4
+0x95 0x6F # GOOD: c.lui t6, 5
+0x99 0x6F # GOOD: c.lui t6, 6
+0x9D 0x6F # GOOD: c.lui t6, 7
+0xA1 0x6F # GOOD: c.lui t6, 8
+0xA5 0x6F # GOOD: c.lui t6, 9
+0xA9 0x6F # GOOD: c.lui t6, 10
+0xAD 0x6F # GOOD: c.lui t6, 11
+0xB1 0x6F # GOOD: c.lui t6, 12
+0xB5 0x6F # GOOD: c.lui t6, 13
+0xB9 0x6F # GOOD: c.lui t6, 14
+0xBD 0x6F # GOOD: c.lui t6, 15
+0xC1 0x6F # GOOD: c.lui t6, 16
+0xC5 0x6F # GOOD: c.lui t6, 17
+0xC9 0x6F # GOOD: c.lui t6, 18
+0xCD 0x6F # GOOD: c.lui t6, 19
+0xD1 0x6F # GOOD: c.lui t6, 20
+0xD5 0x6F # GOOD: c.lui t6, 21
+0xD9 0x6F # GOOD: c.lui t6, 22
+0xDD 0x6F # GOOD: c.lui t6, 23
+0xE1 0x6F # GOOD: c.lui t6, 24
+0xE5 0x6F # GOOD: c.lui t6, 25
+0xE9 0x6F # GOOD: c.lui t6, 26
+0xED 0x6F # GOOD: c.lui t6, 27
+0xF1 0x6F # GOOD: c.lui t6, 28
+0xF5 0x6F # GOOD: c.lui t6, 29
+0xF9 0x6F # GOOD: c.lui t6, 30
+0xFD 0x6F # GOOD: c.lui t6, 31
+0x81 0x7F # GOOD: c.lui t6, 1048544
+0x85 0x7F # GOOD: c.lui t6, 1048545
+0x89 0x7F # GOOD: c.lui t6, 1048546
+0x8D 0x7F # GOOD: c.lui t6, 1048547
+0x91 0x7F # GOOD: c.lui t6, 1048548
+0x95 0x7F # GOOD: c.lui t6, 1048549
+0x99 0x7F # GOOD: c.lui t6, 1048550
+0x9D 0x7F # GOOD: c.lui t6, 1048551
+0xA1 0x7F # GOOD: c.lui t6, 1048552
+0xA5 0x7F # GOOD: c.lui t6, 1048553
+0xA9 0x7F # GOOD: c.lui t6, 1048554
+0xAD 0x7F # GOOD: c.lui t6, 1048555
+0xB1 0x7F # GOOD: c.lui t6, 1048556
+0xB5 0x7F # GOOD: c.lui t6, 1048557
+0xB9 0x7F # GOOD: c.lui t6, 1048558
+0xBD 0x7F # GOOD: c.lui t6, 1048559
+0xC1 0x7F # GOOD: c.lui t6, 1048560
+0xC5 0x7F # GOOD: c.lui t6, 1048561
+0xC9 0x7F # GOOD: c.lui t6, 1048562
+0xCD 0x7F # GOOD: c.lui t6, 1048563
+0xD1 0x7F # GOOD: c.lui t6, 1048564
+0xD5 0x7F # GOOD: c.lui t6, 1048565
+0xD9 0x7F # GOOD: c.lui t6, 1048566
+0xDD 0x7F # GOOD: c.lui t6, 1048567
+0xE1 0x7F # GOOD: c.lui t6, 1048568
+0xE5 0x7F # GOOD: c.lui t6, 1048569
+0xE9 0x7F # GOOD: c.lui t6, 1048570
+0xED 0x7F # GOOD: c.lui t6, 1048571
+0xF1 0x7F # GOOD: c.lui t6, 1048572
+0xF5 0x7F # GOOD: c.lui t6, 1048573
+0xF9 0x7F # GOOD: c.lui t6, 1048574
+0xFD 0x7F # GOOD: c.lui t6, 1048575

>From 5e53b83b5efcc6870caa0ef26e3e9b43c057575d Mon Sep 17 00:00:00 2001
From: Paul Bowen-Huggett <paulhuggett at mac.com>
Date: Fri, 28 Mar 2025 16:30:58 +0100
Subject: [PATCH 2/3] Drop braces, including the existing ones.

---
 llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index 048f8e4edd44f..e2a98e8bbbf4e 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -453,12 +453,10 @@ static DecodeStatus decodeCLUIImmOperand(MCInst &Inst, uint32_t Imm,
                                          int64_t Address,
                                          const MCDisassembler *Decoder) {
   assert(isUInt<6>(Imm) && "Invalid immediate");
-  if (Imm == 0) {
+  if (Imm == 0)
     return MCDisassembler::Fail;
-  }
-  if (Imm > 31) {
+  if (Imm > 31)
     Imm = (SignExtend64<6>(Imm) & 0xfffff);
-  }
   Inst.addOperand(MCOperand::createImm(Imm));
   return MCDisassembler::Success;
 }

>From 2a3c61f393c1f4b79289d624f4e1f691845736ec Mon Sep 17 00:00:00 2001
From: Paul Bowen-Huggett <paulhuggett at mac.com>
Date: Fri, 28 Mar 2025 17:55:38 +0100
Subject: [PATCH 3/3] Move the test to a more logical location and name.

---
 .../{RISCV/c_lui_disasm.s => Disassembler/RISCV/c_lui_disasm.txt} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename llvm/test/MC/{RISCV/c_lui_disasm.s => Disassembler/RISCV/c_lui_disasm.txt} (100%)

diff --git a/llvm/test/MC/RISCV/c_lui_disasm.s b/llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt
similarity index 100%
rename from llvm/test/MC/RISCV/c_lui_disasm.s
rename to llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt



More information about the llvm-commits mailing list