aboutsummaryrefslogtreecommitdiff
path: root/VexRiscv/src/test/resources/ref
diff options
context:
space:
mode:
Diffstat (limited to 'VexRiscv/src/test/resources/ref')
-rw-r--r--VexRiscv/src/test/resources/ref/C.ADD.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.ADDI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.ADDI16SP.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.ADDI4SPN.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.AND.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.ANDI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.BEQZ.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.BNEZ.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.J.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.JAL.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.JALR.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.JR.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/C.LI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.LUI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.LW.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/C.LWSP.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/C.MV.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.OR.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.SLLI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.SRAI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.SRLI.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.SUB.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/C.SW.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/C.SWSP.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/C.XOR.reference_output7
-rw-r--r--VexRiscv/src/test/resources/ref/DIV.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/DIVU.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/I-ADD-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-ADDI-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-AND-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-ANDI-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-AUIPC-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-BEQ-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-BGE-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-BGEU-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-BLT-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-BLTU-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-BNE-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-CSRRC-01.reference_output6
-rw-r--r--VexRiscv/src/test/resources/ref/I-CSRRCI-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-CSRRS-01.reference_output6
-rw-r--r--VexRiscv/src/test/resources/ref/I-CSRRSI-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-CSRRW-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-CSRRWI-01.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/I-DELAY_SLOTS-01.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/I-EBREAK-01.reference_output1
-rw-r--r--VexRiscv/src/test/resources/ref/I-ECALL-01.reference_output1
-rw-r--r--VexRiscv/src/test/resources/ref/I-ENDIANESS-01.reference_output2
-rw-r--r--VexRiscv/src/test/resources/ref/I-FENCE.I-01.reference_output1
-rw-r--r--VexRiscv/src/test/resources/ref/I-IO.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-JAL-01.reference_output5
-rw-r--r--VexRiscv/src/test/resources/ref/I-JALR-01.reference_output6
-rw-r--r--VexRiscv/src/test/resources/ref/I-LB-01.reference_output9
-rw-r--r--VexRiscv/src/test/resources/ref/I-LBU-01.reference_output9
-rw-r--r--VexRiscv/src/test/resources/ref/I-LH-01.reference_output5
-rw-r--r--VexRiscv/src/test/resources/ref/I-LHU-01.reference_output5
-rw-r--r--VexRiscv/src/test/resources/ref/I-LUI-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-LW-01.reference_output3
-rw-r--r--VexRiscv/src/test/resources/ref/I-MISALIGN_JMP-01.reference_output9
-rw-r--r--VexRiscv/src/test/resources/ref/I-MISALIGN_LDST-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-NOP-01.reference_output8
-rw-r--r--VexRiscv/src/test/resources/ref/I-OR-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-ORI-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-RF_size-01.reference_output9
-rw-r--r--VexRiscv/src/test/resources/ref/I-RF_width-01.reference_output8
-rw-r--r--VexRiscv/src/test/resources/ref/I-RF_x0-01.reference_output3
-rw-r--r--VexRiscv/src/test/resources/ref/I-SB-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-SH-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-SLL-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-SLLI-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-SLT-01.reference_output12
-rw-r--r--VexRiscv/src/test/resources/ref/I-SLTI-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-SLTIU-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-SLTU-01.reference_output12
-rw-r--r--VexRiscv/src/test/resources/ref/I-SRA-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-SRAI-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-SRL-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-SRLI-01.reference_output10
-rw-r--r--VexRiscv/src/test/resources/ref/I-SUB-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-SW-01.reference_output4
-rw-r--r--VexRiscv/src/test/resources/ref/I-XOR-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/I-XORI-01.reference_output11
-rw-r--r--VexRiscv/src/test/resources/ref/MUL.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/MULH.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/MULHSU.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/MULHU.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/REM.reference_output13
-rw-r--r--VexRiscv/src/test/resources/ref/REMU.reference_output13
88 files changed, 673 insertions, 0 deletions
diff --git a/VexRiscv/src/test/resources/ref/C.ADD.reference_output b/VexRiscv/src/test/resources/ref/C.ADD.reference_output
new file mode 100644
index 0000000..46bfbe7
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.ADD.reference_output
@@ -0,0 +1,7 @@
+00007fffffffffff0000000100000000
+00000000000000020000000100008000
+00000000ffffffff0000800100008000
+00007fff00007fff00007ffefffffffe
+0000ffff0000fffe00007ffe00008000
+0000ffff00007fff0000800100008000
+00000000000000000000000000010000
diff --git a/VexRiscv/src/test/resources/ref/C.ADDI.reference_output b/VexRiscv/src/test/resources/ref/C.ADDI.reference_output
new file mode 100644
index 0000000..9c2b399
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.ADDI.reference_output
@@ -0,0 +1,7 @@
+000000100000000f0000000200000001
+0000001000000003000000020000001f
+00000001000000000000002000000011
+000800000000001e0000000f0000000e
+0008001e0008000f0008000e00080001
+000800100008000f0008000200080001
+0000000000000000000000000008001f
diff --git a/VexRiscv/src/test/resources/ref/C.ADDI16SP.reference_output b/VexRiscv/src/test/resources/ref/C.ADDI16SP.reference_output
new file mode 100644
index 0000000..f337829
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.ADDI16SP.reference_output
@@ -0,0 +1,2 @@
+00000260000000700000003000000010
+00000000000000000000000000000060
diff --git a/VexRiscv/src/test/resources/ref/C.ADDI4SPN.reference_output b/VexRiscv/src/test/resources/ref/C.ADDI4SPN.reference_output
new file mode 100644
index 0000000..71b679e
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.ADDI4SPN.reference_output
@@ -0,0 +1,2 @@
+000000100000000c0000000800000004
+000000000000000000000000000003fc
diff --git a/VexRiscv/src/test/resources/ref/C.AND.reference_output b/VexRiscv/src/test/resources/ref/C.AND.reference_output
new file mode 100644
index 0000000..91d8655
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.AND.reference_output
@@ -0,0 +1,7 @@
+00000000000000000000000000000000
+00000001000000010000000000000000
+00000001000000000000000000000001
+000000000000800000007fffffffffff
+0000000000007fff00007fff00000001
+00000000000080000000000000000000
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.ANDI.reference_output b/VexRiscv/src/test/resources/ref/C.ANDI.reference_output
new file mode 100644
index 0000000..649033f
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.ANDI.reference_output
@@ -0,0 +1,7 @@
+00000000000000000000000000000000
+00000000000000010000000000000000
+00000001000000000000000100000001
+00000000ffffffe10000001f00000010
+0007ffe10000001f0000001000000001
+00000000000000000000000000000000
+00000000000000000000000000080000
diff --git a/VexRiscv/src/test/resources/ref/C.BEQZ.reference_output b/VexRiscv/src/test/resources/ref/C.BEQZ.reference_output
new file mode 100644
index 0000000..e4dab5e
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.BEQZ.reference_output
@@ -0,0 +1,2 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/C.BNEZ.reference_output b/VexRiscv/src/test/resources/ref/C.BNEZ.reference_output
new file mode 100644
index 0000000..7d62167
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.BNEZ.reference_output
@@ -0,0 +1,2 @@
+00007fffffffffff0000000100000000
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.J.reference_output b/VexRiscv/src/test/resources/ref/C.J.reference_output
new file mode 100644
index 0000000..7d62167
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.J.reference_output
@@ -0,0 +1,2 @@
+00007fffffffffff0000000100000000
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.JAL.reference_output b/VexRiscv/src/test/resources/ref/C.JAL.reference_output
new file mode 100644
index 0000000..7d62167
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.JAL.reference_output
@@ -0,0 +1,2 @@
+00007fffffffffff0000000100000000
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.JALR.reference_output b/VexRiscv/src/test/resources/ref/C.JALR.reference_output
new file mode 100644
index 0000000..b5027d6
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.JALR.reference_output
@@ -0,0 +1,2 @@
+8000016a80000146800001288000010a
+00000000000000000000000080000188
diff --git a/VexRiscv/src/test/resources/ref/C.JR.reference_output b/VexRiscv/src/test/resources/ref/C.JR.reference_output
new file mode 100644
index 0000000..b5027d6
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.JR.reference_output
@@ -0,0 +1,2 @@
+8000016a80000146800001288000010a
+00000000000000000000000080000188
diff --git a/VexRiscv/src/test/resources/ref/C.LI.reference_output b/VexRiscv/src/test/resources/ref/C.LI.reference_output
new file mode 100644
index 0000000..3544be1
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.LI.reference_output
@@ -0,0 +1,7 @@
+0000001f000000100000000100000000
+000000100000000100000000ffffffe1
+0000000100000000ffffffe10000001f
+00000000ffffffe10000001f00000010
+ffffffe10000001f0000001000000001
+0000001f000000100000000100000000
+000000000000000000000000ffffffe1
diff --git a/VexRiscv/src/test/resources/ref/C.LUI.reference_output b/VexRiscv/src/test/resources/ref/C.LUI.reference_output
new file mode 100644
index 0000000..032946e
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.LUI.reference_output
@@ -0,0 +1,7 @@
+0001f0000000f0000000200000001000
+0000f0000000200000001000fffff000
+0000200000001000fffff0000001f000
+00001000fffff0000001f0000000f000
+fffff0000001f0000000f00000002000
+0001f0000000f0000000200000001000
+000000000000000000000000fffff000
diff --git a/VexRiscv/src/test/resources/ref/C.LW.reference_output b/VexRiscv/src/test/resources/ref/C.LW.reference_output
new file mode 100644
index 0000000..d6288ce
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.LW.reference_output
@@ -0,0 +1,10 @@
+00000019000000020000000100000000
+0000000200000001000000000000001f
+00000006000000050000000400000003
+0000000a000000090000000800000007
+0000000e0000000d0000000c0000000b
+0000001200000011000000100000000f
+00000016000000150000001400000013
+0000001a000000190000001800000017
+0000001e0000001d0000001c0000001b
+0000000000000000000000000000001f
diff --git a/VexRiscv/src/test/resources/ref/C.LWSP.reference_output b/VexRiscv/src/test/resources/ref/C.LWSP.reference_output
new file mode 100644
index 0000000..574b7cb
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.LWSP.reference_output
@@ -0,0 +1,10 @@
+0000001f000000020000000100000000
+000000020000000100000000ffffffff
+00000006000000050000000400000003
+0000000a000000090000000800000007
+0000000e0000000d0000000c0000000b
+0000001200000011000000100000000f
+00000016000000150000001400000013
+0000001a000000190000001800000017
+0000001e0000001d0000001c0000001b
+0000000000000000000000000000001f
diff --git a/VexRiscv/src/test/resources/ref/C.MV.reference_output b/VexRiscv/src/test/resources/ref/C.MV.reference_output
new file mode 100644
index 0000000..0d8bd51
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.MV.reference_output
@@ -0,0 +1,7 @@
+00000000000000000000000000000000
+00000001000000010000000100000000
+ffffffffffffffff0000000100000001
+00007fffffffffffffffffffffffffff
+00007fff00007fff00007fff00007fff
+00008000000080000000800000008000
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.OR.reference_output b/VexRiscv/src/test/resources/ref/C.OR.reference_output
new file mode 100644
index 0000000..ebd52e6
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.OR.reference_output
@@ -0,0 +1,7 @@
+00007fffffffffff0000000100000000
+ffffffff000000010000000100008000
+ffffffffffffffff0000800100007fff
+00007fffffffffffffffffffffffffff
+0000ffff00007fffffffffff00007fff
+0000ffffffffffff0000800100008000
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.SLLI.reference_output b/VexRiscv/src/test/resources/ref/C.SLLI.reference_output
new file mode 100644
index 0000000..6f7516a
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.SLLI.reference_output
@@ -0,0 +1,7 @@
+00000000000000000000000000000000
+00008000000000040000000200000000
+fffffffcfffffffe8000000000010000
+000ffffe80000000ffff0000ffff8000
+80000000ffff0000ffff8000001ffffc
+00000000000000000020000000100000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/C.SRAI.reference_output b/VexRiscv/src/test/resources/ref/C.SRAI.reference_output
new file mode 100644
index 0000000..43f4b79
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.SRAI.reference_output
@@ -0,0 +1,7 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
+ffffffffffffffff0000000000000000
+0003ffffffffffffffffffffffffffff
+00000000000000070000000f0001ffff
+00000008000000100002000000040000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/C.SRLI.reference_output b/VexRiscv/src/test/resources/ref/C.SRLI.reference_output
new file mode 100644
index 0000000..77035be
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.SRLI.reference_output
@@ -0,0 +1,7 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
+3fffffff7fffffff0000000000000000
+0003ffff000000010000ffff0001ffff
+00000000000000070000000f0001ffff
+00000008000000100002000000040000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/C.SUB.reference_output b/VexRiscv/src/test/resources/ref/C.SUB.reference_output
new file mode 100644
index 0000000..839dbe9
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.SUB.reference_output
@@ -0,0 +1,7 @@
+00007fffffffffff0000000100000000
+fffffffe00000000ffffffff00008000
+000000020000000100007fff00007ffe
+ffff8001000080010000800000000000
+0000000100000000ffff8000ffff8002
+ffffffffffff7fffffff8001ffff8000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/C.SW.reference_output b/VexRiscv/src/test/resources/ref/C.SW.reference_output
new file mode 100644
index 0000000..f86a855
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.SW.reference_output
@@ -0,0 +1,10 @@
+00007fffffffffff0000000100000000
+ffffffff000000010000000000008000
+ffffffffffffffff00007fffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+00000000000000000000000000008000
diff --git a/VexRiscv/src/test/resources/ref/C.SWSP.reference_output b/VexRiscv/src/test/resources/ref/C.SWSP.reference_output
new file mode 100644
index 0000000..1cfc185
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.SWSP.reference_output
@@ -0,0 +1,10 @@
+00007fffffffffff0000000100000000
+ffffffff000000010000000000008000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+00007fffffffffffffffffffffffffff
+000000000000000000000000ffffffff
diff --git a/VexRiscv/src/test/resources/ref/C.XOR.reference_output b/VexRiscv/src/test/resources/ref/C.XOR.reference_output
new file mode 100644
index 0000000..c83ba4f
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/C.XOR.reference_output
@@ -0,0 +1,7 @@
+00007fffffffffff0000000100000000
+fffffffe000000000000000100008000
+fffffffeffffffff0000800100007ffe
+00007fffffff7fffffff800000000000
+0000ffff00000000ffff800000007ffe
+0000ffffffff7fff0000800100008000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/DIV.reference_output b/VexRiscv/src/test/resources/ref/DIV.reference_output
new file mode 100644
index 0000000..cdc6e44
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/DIV.reference_output
@@ -0,0 +1,13 @@
+000000000000000000000000ffffffff
+ffffffff00000001ffffffff00000000
+ffffffffffffffff0000000000000000
+ffffffff000000000000000000000001
+0000000000000001800000017fffffff
+ffffffff8000000080000000ffffffff
+ffffffffffffffffffffffff00000001
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/DIVU.reference_output b/VexRiscv/src/test/resources/ref/DIVU.reference_output
new file mode 100644
index 0000000..3164133
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/DIVU.reference_output
@@ -0,0 +1,13 @@
+000000000000000000000000ffffffff
+0000000000000001ffffffff00000000
+ffffffffffffffff0000000000000000
+ffffffff000000010000000200000001
+0000000000000001000000007fffffff
+000000010000000080000000ffffffff
+ffffffffffffffffffffffff00000001
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/I-ADD-01.reference_output b/VexRiscv/src/test/resources/ref/I-ADD-01.reference_output
new file mode 100644
index 0000000..a84f4ab
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-ADD-01.reference_output
@@ -0,0 +1,11 @@
+ffffffff000000010000000000000000
+0000000100000001800000007fffffff
+80000001800000000000000000000002
+fffffffe00000000ffffffffffffffff
+7fffffff7fffffff7fffffff7ffffffe
+fffffffffffffffe7ffffffe80000000
+7fffffff800000018000000080000000
+0000abcd0000000100000000ffffffff
+0000abd10000abd00000abcf0000abce
+00000000000000000000abd30000abd2
+36925814369258143692581400000000
diff --git a/VexRiscv/src/test/resources/ref/I-ADDI-01.reference_output b/VexRiscv/src/test/resources/ref/I-ADDI-01.reference_output
new file mode 100644
index 0000000..0192910
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-ADDI-01.reference_output
@@ -0,0 +1,11 @@
+ffffffff000007ff0000000100000000
+0000000200000001fffff80000000000
+fffff801000000010000000000000800
+fffffffe000007fe00000000ffffffff
+800000007ffffffffffff7ffffffffff
+7ffff7ff7fffffff7ffffffe800007fe
+7fffffff800007ff8000000180000000
+0000abce0000abcd7ffff80080000000
+0000abd20000abd10000abd00000abcf
+0000000100000000000000000000abd3
+36925814369258143692581436925814
diff --git a/VexRiscv/src/test/resources/ref/I-AND-01.reference_output b/VexRiscv/src/test/resources/ref/I-AND-01.reference_output
new file mode 100644
index 0000000..6e8bf9d
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-AND-01.reference_output
@@ -0,0 +1,11 @@
+00000000000000000000000000000000
+00000000000000010000000000000000
+00000000000000010000000100000001
+ffffffff0000000100000000ffffffff
+000000007fffffff800000007fffffff
+000000007fffffff7fffffff00000001
+80000000000000000000000080000000
+abcdffff0000007f8000000000000000
+0000000f0000001f0000003f0000007f
+00000000000000000000000300000007
+36925814369258143692581400000000
diff --git a/VexRiscv/src/test/resources/ref/I-ANDI-01.reference_output b/VexRiscv/src/test/resources/ref/I-ANDI-01.reference_output
new file mode 100644
index 0000000..a67df5a
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-ANDI-01.reference_output
@@ -0,0 +1,11 @@
+00000000000000000000000000000000
+00000001000000010000000000000000
+00000000000000000000000100000001
+ffffffff000007ff00000001ffffffff
+000000017ffffffffffff80000000000
+7ffff800000000007fffffff000007ff
+80000000000000000000000080000000
+0000007fabcdffff8000000000000000
+000000070000000f0000001f0000003f
+00000000000000000000000000000003
+36925814369258143692581436925814
diff --git a/VexRiscv/src/test/resources/ref/I-AUIPC-01.reference_output b/VexRiscv/src/test/resources/ref/I-AUIPC-01.reference_output
new file mode 100644
index 0000000..2112d89
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-AUIPC-01.reference_output
@@ -0,0 +1,4 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/I-BEQ-01.reference_output b/VexRiscv/src/test/resources/ref/I-BEQ-01.reference_output
new file mode 100644
index 0000000..56b3d4c
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-BEQ-01.reference_output
@@ -0,0 +1,10 @@
+ffffffff000000010000000000000000
+000000010000001e800000007fffffff
+7fffffffffffffff0000000100000000
+00000000ffffffff0000001d80000000
+800000007fffffffffffffff00000001
+00000001000000007fffffff0000001b
+00000017800000007fffffffffffffff
+ffffffff000000010000000080000000
+000003de0000000f800000007fffffff
+0fedcba9876543219abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-BGE-01.reference_output b/VexRiscv/src/test/resources/ref/I-BGE-01.reference_output
new file mode 100644
index 0000000..9091dc1
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-BGE-01.reference_output
@@ -0,0 +1,10 @@
+ffffffff000000010000000000000000
+000000010000000a800000007fffffff
+7fffffffffffffff0000000100000000
+00000000ffffffff0000000880000000
+800000007fffffffffffffff00000001
+00000001000000007fffffff0000000b
+00000000800000007fffffffffffffff
+ffffffff000000010000000080000000
+000001540000000f800000007fffffff
+0fedcba9876543219abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-BGEU-01.reference_output b/VexRiscv/src/test/resources/ref/I-BGEU-01.reference_output
new file mode 100644
index 0000000..1388506
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-BGEU-01.reference_output
@@ -0,0 +1,10 @@
+ffffffff000000010000000000000000
+000000010000001e800000007fffffff
+7fffffffffffffff0000000100000000
+00000000ffffffff0000001c80000000
+800000007fffffffffffffff00000001
+00000001000000007fffffff00000000
+00000014800000007fffffffffffffff
+ffffffff000000010000000080000000
+000003c000000004800000007fffffff
+0fedcba9876543219abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-BLT-01.reference_output b/VexRiscv/src/test/resources/ref/I-BLT-01.reference_output
new file mode 100644
index 0000000..b878276
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-BLT-01.reference_output
@@ -0,0 +1,10 @@
+ffffffff000000010000000000000000
+0000000100000015800000007fffffff
+7fffffffffffffff0000000100000000
+00000000ffffffff0000001780000000
+800000007fffffffffffffff00000001
+00000001000000007fffffff00000014
+0000001f800000007fffffffffffffff
+ffffffff000000010000000080000000
+000002ab00000010800000007fffffff
+0fedcba9876543219abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-BLTU-01.reference_output b/VexRiscv/src/test/resources/ref/I-BLTU-01.reference_output
new file mode 100644
index 0000000..462c7f1
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-BLTU-01.reference_output
@@ -0,0 +1,10 @@
+ffffffff000000010000000000000000
+0000000100000001800000007fffffff
+7fffffffffffffff0000000100000000
+00000000ffffffff0000000380000000
+800000007fffffffffffffff00000001
+00000001000000007fffffff0000001f
+0000000b800000007fffffffffffffff
+ffffffff000000010000000080000000
+0000003f0000001b800000007fffffff
+0fedcba9876543219abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-BNE-01.reference_output b/VexRiscv/src/test/resources/ref/I-BNE-01.reference_output
new file mode 100644
index 0000000..7d8e848
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-BNE-01.reference_output
@@ -0,0 +1,10 @@
+ffffffff000000010000000000000000
+0000000100000001800000007fffffff
+7fffffffffffffff0000000100000000
+00000000ffffffff0000000280000000
+800000007fffffffffffffff00000001
+00000001000000007fffffff00000004
+00000008800000007fffffffffffffff
+ffffffff000000010000000080000000
+0000002100000010800000007fffffff
+0fedcba9876543219abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-CSRRC-01.reference_output b/VexRiscv/src/test/resources/ref/I-CSRRC-01.reference_output
new file mode 100644
index 0000000..a385582
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-CSRRC-01.reference_output
@@ -0,0 +1,6 @@
+800f0000fffffffffffffffe00000000
+fffffffeffffffff000000007fffffff
+00000000000f0000800f0000fffffffe
+ffffffff00000000ffffffffedcba987
+0000000042726e6f00000000ffffffff
+49c1a90369c7ad8bfffffffff7ff8818
diff --git a/VexRiscv/src/test/resources/ref/I-CSRRCI-01.reference_output b/VexRiscv/src/test/resources/ref/I-CSRRCI-01.reference_output
new file mode 100644
index 0000000..229f312
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-CSRRCI-01.reference_output
@@ -0,0 +1,4 @@
+ffffffe0fffffffffffffffe00000000
+fffffffffffffffffffffff0ffffffef
+ffffffe0ffffffe0fffffffefffffffe
+3216549000000000ffffffffffffffe0
diff --git a/VexRiscv/src/test/resources/ref/I-CSRRS-01.reference_output b/VexRiscv/src/test/resources/ref/I-CSRRS-01.reference_output
new file mode 100644
index 0000000..d254040
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-CSRRS-01.reference_output
@@ -0,0 +1,6 @@
+7ff0ffff000000000000000100000000
+0000000100000000ffffffff80000000
+fffffffffff0ffff7ff0ffff00000001
+00000000123456780000000012345678
+0000000042726e6f0000000012345678
+b63e56fc9638527400000000f7ff8818
diff --git a/VexRiscv/src/test/resources/ref/I-CSRRSI-01.reference_output b/VexRiscv/src/test/resources/ref/I-CSRRSI-01.reference_output
new file mode 100644
index 0000000..176aab8
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-CSRRSI-01.reference_output
@@ -0,0 +1,4 @@
+0000001f000000000000000100000000
+00000000000000000000000f00000010
+0000001f0000001f0000000100000001
+321654983216549f000000000000001f
diff --git a/VexRiscv/src/test/resources/ref/I-CSRRW-01.reference_output b/VexRiscv/src/test/resources/ref/I-CSRRW-01.reference_output
new file mode 100644
index 0000000..0a2ecc1
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-CSRRW-01.reference_output
@@ -0,0 +1,4 @@
+ffffffff000000000000000100000000
+9abcdef012345678800000007fffffff
+00000000000000009abcdef012345678
+32165498963852741472583600000000
diff --git a/VexRiscv/src/test/resources/ref/I-CSRRWI-01.reference_output b/VexRiscv/src/test/resources/ref/I-CSRRWI-01.reference_output
new file mode 100644
index 0000000..3a794f7
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-CSRRWI-01.reference_output
@@ -0,0 +1,2 @@
+00000000000000010000000000000000
+00000000000000100000000f0000001f
diff --git a/VexRiscv/src/test/resources/ref/I-DELAY_SLOTS-01.reference_output b/VexRiscv/src/test/resources/ref/I-DELAY_SLOTS-01.reference_output
new file mode 100644
index 0000000..3fd3d3f
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-DELAY_SLOTS-01.reference_output
@@ -0,0 +1,2 @@
+44444444333333332222222211111111
+88888888777777776666666655555555
diff --git a/VexRiscv/src/test/resources/ref/I-EBREAK-01.reference_output b/VexRiscv/src/test/resources/ref/I-EBREAK-01.reference_output
new file mode 100644
index 0000000..8780014
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-EBREAK-01.reference_output
@@ -0,0 +1 @@
+00000000000000001111111100000003
diff --git a/VexRiscv/src/test/resources/ref/I-ECALL-01.reference_output b/VexRiscv/src/test/resources/ref/I-ECALL-01.reference_output
new file mode 100644
index 0000000..752c29b
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-ECALL-01.reference_output
@@ -0,0 +1 @@
+0000000000000000111111110000000b
diff --git a/VexRiscv/src/test/resources/ref/I-ENDIANESS-01.reference_output b/VexRiscv/src/test/resources/ref/I-ENDIANESS-01.reference_output
new file mode 100644
index 0000000..d90aef6
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-ENDIANESS-01.reference_output
@@ -0,0 +1,2 @@
+00000089000001230000456701234567
+00000001000000230000004500000067
diff --git a/VexRiscv/src/test/resources/ref/I-FENCE.I-01.reference_output b/VexRiscv/src/test/resources/ref/I-FENCE.I-01.reference_output
new file mode 100644
index 0000000..b466c97
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-FENCE.I-01.reference_output
@@ -0,0 +1 @@
+001101b3000000420000001200000030
diff --git a/VexRiscv/src/test/resources/ref/I-IO.reference_output b/VexRiscv/src/test/resources/ref/I-IO.reference_output
new file mode 100644
index 0000000..a84f4ab
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-IO.reference_output
@@ -0,0 +1,11 @@
+ffffffff000000010000000000000000
+0000000100000001800000007fffffff
+80000001800000000000000000000002
+fffffffe00000000ffffffffffffffff
+7fffffff7fffffff7fffffff7ffffffe
+fffffffffffffffe7ffffffe80000000
+7fffffff800000018000000080000000
+0000abcd0000000100000000ffffffff
+0000abd10000abd00000abcf0000abce
+00000000000000000000abd30000abd2
+36925814369258143692581400000000
diff --git a/VexRiscv/src/test/resources/ref/I-JAL-01.reference_output b/VexRiscv/src/test/resources/ref/I-JAL-01.reference_output
new file mode 100644
index 0000000..515dd48
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-JAL-01.reference_output
@@ -0,0 +1,5 @@
+9abcdef0000000001234567800000000
+22222222111111110fedcba987654321
+00000000555555554444444433333333
+88888888777777776666666600000000
+0000000000000000aaaaaaaa99999999
diff --git a/VexRiscv/src/test/resources/ref/I-JALR-01.reference_output b/VexRiscv/src/test/resources/ref/I-JALR-01.reference_output
new file mode 100644
index 0000000..1ef4f16
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-JALR-01.reference_output
@@ -0,0 +1,6 @@
+9abcdef0000000001234567800000000
+22222222111111110fedcba987654321
+00000000555555554444444433333333
+88888888777777776666666600000000
+0000000000000000aaaaaaaa99999999
+44444444333333332222222211111111
diff --git a/VexRiscv/src/test/resources/ref/I-LB-01.reference_output b/VexRiscv/src/test/resources/ref/I-LB-01.reference_output
new file mode 100644
index 0000000..8c8c14b
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-LB-01.reference_output
@@ -0,0 +1,9 @@
+00000011fffffff1fffffff200000022
+fffffff30000003300000044fffffff4
+00000055fffffff5fffffff600000066
+fffffff700000077ffffff88fffffff8
+ffffff99000000090000000affffffaa
+0000000bffffffbbffffffcc0000000c
+ffffffdd0000000d0000000effffffee
+0000000fffffffff00000000fffffff0
+ffffff9800000010fffffff000000000
diff --git a/VexRiscv/src/test/resources/ref/I-LBU-01.reference_output b/VexRiscv/src/test/resources/ref/I-LBU-01.reference_output
new file mode 100644
index 0000000..bc3fd6b
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-LBU-01.reference_output
@@ -0,0 +1,9 @@
+00000011000000f1000000f200000022
+000000f30000003300000044000000f4
+00000055000000f5000000f600000066
+000000f70000007700000088000000f8
+00000099000000090000000a000000aa
+0000000b000000bb000000cc0000000c
+000000dd0000000d0000000e000000ee
+0000000f000000ff00000000000000f0
+0000009800000010000000f000000000
diff --git a/VexRiscv/src/test/resources/ref/I-LH-01.reference_output b/VexRiscv/src/test/resources/ref/I-LH-01.reference_output
new file mode 100644
index 0000000..e5749c2
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-LH-01.reference_output
@@ -0,0 +1,5 @@
+fffff333000044f4000011f1fffff222
+fffff777ffff88f8000055f5fffff666
+00000bbbffffcc0cffff990900000aaa
+00000fff000000f0ffffdd0d00000eee
+ffffba9800003210ffffdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-LHU-01.reference_output b/VexRiscv/src/test/resources/ref/I-LHU-01.reference_output
new file mode 100644
index 0000000..f299a39
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-LHU-01.reference_output
@@ -0,0 +1,5 @@
+0000f333000044f4000011f10000f222
+0000f777000088f8000055f50000f666
+00000bbb0000cc0c0000990900000aaa
+00000fff000000f00000dd0d00000eee
+0000ba98000032100000def000000000
diff --git a/VexRiscv/src/test/resources/ref/I-LUI-01.reference_output b/VexRiscv/src/test/resources/ref/I-LUI-01.reference_output
new file mode 100644
index 0000000..c18fee2
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-LUI-01.reference_output
@@ -0,0 +1,4 @@
+7ffff000fffff0000000100000000000
+000000007ffff0008000000080000000
+1234567842726e6ffffff00000001000
+9abcdef01234567842726e6f9abcdef0
diff --git a/VexRiscv/src/test/resources/ref/I-LW-01.reference_output b/VexRiscv/src/test/resources/ref/I-LW-01.reference_output
new file mode 100644
index 0000000..6e339de
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-LW-01.reference_output
@@ -0,0 +1,3 @@
+f77788f855f5f666f33344f411f1f222
+0fff00f0dd0d0eee0bbbcc0c99090aaa
+fedcba98765432109abcdef000000000
diff --git a/VexRiscv/src/test/resources/ref/I-MISALIGN_JMP-01.reference_output b/VexRiscv/src/test/resources/ref/I-MISALIGN_JMP-01.reference_output
new file mode 100644
index 0000000..288ba41
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-MISALIGN_JMP-01.reference_output
@@ -0,0 +1,9 @@
+22222222111111110000000000000002
+00000000000000024444444433333333
+66666666000000000000000255555555
+00000002777777770000000000000002
+00000000000000028888888800000000
+aaaaaaaa000000000000000299999999
+00000002bbbbbbbb0000000000000002
+0000000000000002cccccccc00000000
+eeeeeeee0000000000000002dddddddd
diff --git a/VexRiscv/src/test/resources/ref/I-MISALIGN_LDST-01.reference_output b/VexRiscv/src/test/resources/ref/I-MISALIGN_LDST-01.reference_output
new file mode 100644
index 0000000..5e93326
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-MISALIGN_LDST-01.reference_output
@@ -0,0 +1,11 @@
+91a1b1c191a1b1c191a1b1c191a1b1c1
+00000004000000020000000400000001
+fffff202fffff2020000000400000003
+0000f2020000f202ffffd2e2ffffd2e2
+00000004000000010000d2e20000d2e2
+00000004000000010000000400000003
+99999999000000000000000400000003
+00000006000000019999999999999999
+00000006000000030000000600000002
+99999999000099999999999999990000
+00000006000000030000000600000001
diff --git a/VexRiscv/src/test/resources/ref/I-NOP-01.reference_output b/VexRiscv/src/test/resources/ref/I-NOP-01.reference_output
new file mode 100644
index 0000000..77c8c2a
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-NOP-01.reference_output
@@ -0,0 +1,8 @@
+00000004000000030000000200000000
+00000008000000070000000600000005
+0000000c0000000b0000000a00000009
+000000100000000f0000000e0000000d
+00000014000000130000001200000011
+00000018000000170000001600000015
+0000001c0000001b0000001a00000019
+000000180000001f0000001e0000001d
diff --git a/VexRiscv/src/test/resources/ref/I-OR-01.reference_output b/VexRiscv/src/test/resources/ref/I-OR-01.reference_output
new file mode 100644
index 0000000..0777be2
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-OR-01.reference_output
@@ -0,0 +1,11 @@
+ffffffff000000010000000000000000
+0000000100000001800000007fffffff
+800000017fffffffffffffff00000001
+ffffffffffffffffffffffffffffffff
+7fffffff7fffffffffffffffffffffff
+ffffffff7fffffffffffffff7fffffff
+ffffffff800000018000000080000000
+0000000d0000001080000000ffffffff
+000000fd0000007d0000003d0000001d
+0000000000000000fffff9fd000001fd
+36925814369258143692581400000000
diff --git a/VexRiscv/src/test/resources/ref/I-ORI-01.reference_output b/VexRiscv/src/test/resources/ref/I-ORI-01.reference_output
new file mode 100644
index 0000000..040a7fd
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-ORI-01.reference_output
@@ -0,0 +1,11 @@
+ffffffff000007ff0000000100000000
+0000000100000001fffff80000000000
+fffff80100000001ffffffff000007ff
+ffffffffffffffffffffffffffffffff
+7fffffff7fffffffffffffffffffffff
+ffffffff7fffffffffffffff7fffffff
+ffffffff800007ff8000000180000000
+0000001d0000000dfffff80080000000
+000001fd000000fd0000007d0000003d
+000000010000000000000000fffff9fd
+36925814369258143692581436925814
diff --git a/VexRiscv/src/test/resources/ref/I-RF_size-01.reference_output b/VexRiscv/src/test/resources/ref/I-RF_size-01.reference_output
new file mode 100644
index 0000000..73045e2
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-RF_size-01.reference_output
@@ -0,0 +1,9 @@
+526973632d5620525633324900000000
+4d696c616e204e6f73746572736b7920
+286e6f73746572736b7940636f646173
+69702e636f6d292c20526164656b2048
+616a656b202868616a656b40636f6461
+7369702e636f6d292e204c6561766520
+7573206d65737361676520696620796f
+7520726561642074686973203a290d0a
+526973632d5620525633324900000000
diff --git a/VexRiscv/src/test/resources/ref/I-RF_width-01.reference_output b/VexRiscv/src/test/resources/ref/I-RF_width-01.reference_output
new file mode 100644
index 0000000..7d26805
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-RF_width-01.reference_output
@@ -0,0 +1,8 @@
+80000000800000008000000000000000
+80000000800000008000000080000000
+80000000800000008000000080000000
+80000000800000008000000080000000
+80000000800000008000000080000000
+80000000800000008000000080000000
+80000000800000008000000080000000
+80000000800000008000000080000000
diff --git a/VexRiscv/src/test/resources/ref/I-RF_x0-01.reference_output b/VexRiscv/src/test/resources/ref/I-RF_x0-01.reference_output
new file mode 100644
index 0000000..58b994f
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-RF_x0-01.reference_output
@@ -0,0 +1,3 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
diff --git a/VexRiscv/src/test/resources/ref/I-SB-01.reference_output b/VexRiscv/src/test/resources/ref/I-SB-01.reference_output
new file mode 100644
index 0000000..eddb198
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SB-01.reference_output
@@ -0,0 +1,4 @@
+000000f800000066000000f4aaaabb22
+0fff00f0dd0d0eee0bbbcc0c000000aa
+00000010000000f00000004487654300
+000000630000003600000036000000ef
diff --git a/VexRiscv/src/test/resources/ref/I-SH-01.reference_output b/VexRiscv/src/test/resources/ref/I-SH-01.reference_output
new file mode 100644
index 0000000..48858ea
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SH-01.reference_output
@@ -0,0 +1,4 @@
+000088f80000f666000044f4aaaaf222
+0fff00f0dd0d0eee0bbbcc0c00000aaa
+000032100000def00000334487650000
+0000496300005836000058360000cdef
diff --git a/VexRiscv/src/test/resources/ref/I-SLL-01.reference_output b/VexRiscv/src/test/resources/ref/I-SLL-01.reference_output
new file mode 100644
index 0000000..482833b
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SLL-01.reference_output
@@ -0,0 +1,11 @@
+00000000000000000000000000000000
+00000002000000010000000000000000
+00010000000000018000000000008000
+80000000ffff8000fffffffeffffffff
+fffffffe7fffffffffff0000ffffffff
+ffff00007fffffff80000000ffff8000
+00000000000000000000000080000000
+579bde20abcdef100000000080000000
+79bde200bcdef1005e6f7880af37bc40
+000000000000000000000000f37bc400
+80000000a19080000eca864287654321
diff --git a/VexRiscv/src/test/resources/ref/I-SLLI-01.reference_output b/VexRiscv/src/test/resources/ref/I-SLLI-01.reference_output
new file mode 100644
index 0000000..fb8a71f
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SLLI-01.reference_output
@@ -0,0 +1,10 @@
+00000000000000000000000000000000
+00000002000000010000000000000000
+00010000000000018000000000008000
+80000000ffff8000fffffffeffffffff
+fffffffe7fffffffffff0000ffffffff
+ffff00007fffffff80000000ffff8000
+00000000000000000000000080000000
+579bde20abcdef100000000080000000
+79bde200bcdef1005e6f7880af37bc40
+000000000000000000000000f37bc400
diff --git a/VexRiscv/src/test/resources/ref/I-SLT-01.reference_output b/VexRiscv/src/test/resources/ref/I-SLT-01.reference_output
new file mode 100644
index 0000000..14f046e
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SLT-01.reference_output
@@ -0,0 +1,12 @@
+00000000000000010000000100000000
+00000000000000010000000000000000
+00000000000000000000000000000001
+000000000000000100000001ffffffff
+000000007fffffff0000000000000001
+00000000000000000000000000000000
+00000001000000010000000180000000
+ffffffff000000000000000000000001
+00000000000000010000000100000001
+00000000000000000000000000000000
+00000001000000010000000000000001
+00000001000000000000000100000000
diff --git a/VexRiscv/src/test/resources/ref/I-SLTI-01.reference_output b/VexRiscv/src/test/resources/ref/I-SLTI-01.reference_output
new file mode 100644
index 0000000..7ca4e6e
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SLTI-01.reference_output
@@ -0,0 +1,11 @@
+00000000000000010000000100000000
+00000000000000010000000000000000
+00000000000000000000000000000001
+000000000000000100000001ffffffff
+000000007fffffff0000000000000001
+00000000000000000000000000000000
+00000001000000010000000180000000
+00000000ffffffff0000000100000001
+00000000000000010000000100000000
+00000001000000000000000000000000
+00000001000000000000000100000000
diff --git a/VexRiscv/src/test/resources/ref/I-SLTIU-01.reference_output b/VexRiscv/src/test/resources/ref/I-SLTIU-01.reference_output
new file mode 100644
index 0000000..26b9733
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SLTIU-01.reference_output
@@ -0,0 +1,11 @@
+00000001000000010000000100000000
+00000000000000010000000100000000
+00000001000000000000000100000001
+000000000000000000000000ffffffff
+000000007fffffff0000000000000000
+00000001000000000000000100000000
+00000001000000000000000080000000
+00000000000000010000000100000000
+00000001000000010000000100000000
+00000001000000000000000100000000
+00000001000000000000000100000000
diff --git a/VexRiscv/src/test/resources/ref/I-SLTU-01.reference_output b/VexRiscv/src/test/resources/ref/I-SLTU-01.reference_output
new file mode 100644
index 0000000..d72f1c5
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SLTU-01.reference_output
@@ -0,0 +1,12 @@
+00000001000000010000000100000000
+00000000000000010000000100000000
+00000001000000000000000100000001
+000000000000000000000000ffffffff
+000000007fffffff0000000000000000
+00000001000000000000000100000000
+00000001000000000000000080000000
+00000001000000000000000000000000
+000000010000000100000001ffffffff
+00000000000000000000000100000000
+00000001000000000000000000000000
+00000001000000000000000100000000
diff --git a/VexRiscv/src/test/resources/ref/I-SRA-01.reference_output b/VexRiscv/src/test/resources/ref/I-SRA-01.reference_output
new file mode 100644
index 0000000..6847b09
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SRA-01.reference_output
@@ -0,0 +1,11 @@
+00000000000000000000000000000000
+00000000000000010000000000000000
+00000000000000010000000000000000
+ffffffffffffffffffffffffffffffff
+3fffffff7fffffffffffffffffffffff
+00007fff7fffffff000000000000ffff
+ffffffffffff0000c000000080000000
+d5e6f788abcdef10ffff800080000000
+fd5e6f78fabcdef1f579bde2eaf37bc4
+000000000000000000000000feaf37bc
+ffffffffffff0ecac3b2a19087654321
diff --git a/VexRiscv/src/test/resources/ref/I-SRAI-01.reference_output b/VexRiscv/src/test/resources/ref/I-SRAI-01.reference_output
new file mode 100644
index 0000000..76b4c6a
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SRAI-01.reference_output
@@ -0,0 +1,10 @@
+00000000000000000000000000000000
+00000000000000010000000000000000
+00000000000000010000000000000000
+ffffffffffffffffffffffffffffffff
+3fffffff7fffffffffffffffffffffff
+00007fff7fffffff000000000000ffff
+ffffffffffff0000c000000080000000
+d5e6f788abcdef10ffff800080000000
+fd5e6f78fabcdef1f579bde2eaf37bc4
+000000000000000000000000feaf37bc
diff --git a/VexRiscv/src/test/resources/ref/I-SRL-01.reference_output b/VexRiscv/src/test/resources/ref/I-SRL-01.reference_output
new file mode 100644
index 0000000..eff39a5
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SRL-01.reference_output
@@ -0,0 +1,11 @@
+00000000000000000000000000000000
+00000000000000010000000000000000
+00000000000000010000000000000000
+000000010001ffff7fffffffffffffff
+3fffffff7fffffff0000ffffffffffff
+00007fff7fffffff000000000000ffff
+00000001000100004000000080000000
+55e6f788abcdef100000800080000000
+055e6f780abcdef11579bde22af37bc4
+00000000000000000000000002af37bc
+0000000100010eca43b2a19087654321
diff --git a/VexRiscv/src/test/resources/ref/I-SRLI-01.reference_output b/VexRiscv/src/test/resources/ref/I-SRLI-01.reference_output
new file mode 100644
index 0000000..85118f8
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SRLI-01.reference_output
@@ -0,0 +1,10 @@
+00000000000000000000000000000000
+00000000000000010000000000000000
+00000000000000010000000000000000
+000000010001ffff7fffffffffffffff
+3fffffff7fffffff0000ffffffffffff
+00007fff7fffffff000000000000ffff
+00000001000100004000000080000000
+55e6f788abcdef100000800080000000
+055e6f780abcdef11579bde22af37bc4
+00000000000000000000000002af37bc
diff --git a/VexRiscv/src/test/resources/ref/I-SUB-01.reference_output b/VexRiscv/src/test/resources/ref/I-SUB-01.reference_output
new file mode 100644
index 0000000..060a177
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SUB-01.reference_output
@@ -0,0 +1,11 @@
+00000001ffffffff0000000000000000
+00000001000000018000000080000001
+80000001800000020000000200000000
+00000000fffffffeffffffffffffffff
+7fffffff7fffffff7fffffff80000000
+ffffffff00000000800000007ffffffe
+800000017fffffff8000000080000000
+0000abcd000000010000000000000001
+0000abc90000abca0000abcb0000abcc
+00000000000000000000abc70000abc8
+c96da7ecc96da7ec3692581400000000
diff --git a/VexRiscv/src/test/resources/ref/I-SW-01.reference_output b/VexRiscv/src/test/resources/ref/I-SW-01.reference_output
new file mode 100644
index 0000000..a2c030c
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-SW-01.reference_output
@@ -0,0 +1,4 @@
+f77788f855f5f666f33344f411f1f222
+0fff00f0dd0d0eee0bbbcc0c99090aaa
+765432109abcdef01122334400000000
+25814963147258361472583689abcdef
diff --git a/VexRiscv/src/test/resources/ref/I-XOR-01.reference_output b/VexRiscv/src/test/resources/ref/I-XOR-01.reference_output
new file mode 100644
index 0000000..2f48d7e
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-XOR-01.reference_output
@@ -0,0 +1,11 @@
+ffffffff000000010000000000000000
+0000000100000001800000007fffffff
+800000017ffffffefffffffe00000000
+00000000fffffffeffffffffffffffff
+7fffffff7fffffff7fffffff80000000
+ffffffff00000000800000007ffffffe
+7fffffff800000018000000080000000
+abcdffff0000007f00000000ffffffff
+abcdffafabcdffa0abcdffbfabcdff80
+0000000000000000abcdffababcdffa8
+36925814369258143692581400000000
diff --git a/VexRiscv/src/test/resources/ref/I-XORI-01.reference_output b/VexRiscv/src/test/resources/ref/I-XORI-01.reference_output
new file mode 100644
index 0000000..6afaafb
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/I-XORI-01.reference_output
@@ -0,0 +1,11 @@
+ffffffff000007ff0000000100000000
+0000000000000001fffff80000000000
+fffff80100000001fffffffe000007fe
+00000000fffff800fffffffeffffffff
+7ffffffe7fffffff000007ffffffffff
+800007ff7fffffff800000007ffff800
+7fffffff800007ff8000000180000000
+abcdff80abcdffff7ffff80080000000
+abcdffa8abcdffafabcdffa0abcdffbf
+000000010000000000000000abcdffab
+36925814369258143692581436925814
diff --git a/VexRiscv/src/test/resources/ref/MUL.reference_output b/VexRiscv/src/test/resources/ref/MUL.reference_output
new file mode 100644
index 0000000..8cdec59
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/MUL.reference_output
@@ -0,0 +1,13 @@
+00000000000000000000000000000000
+ffffffff000000010000000000000000
+ffffffff00000000800000007fffffff
+00000000800000008000000100000001
+8000000000000001800000017fffffff
+80000000800000008000000000000000
+ffffffffffffffffffffffff00000000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/MULH.reference_output b/VexRiscv/src/test/resources/ref/MULH.reference_output
new file mode 100644
index 0000000..5934644
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/MULH.reference_output
@@ -0,0 +1,13 @@
+00000000000000000000000000000000
+ffffffff000000000000000000000000
+ffffffff00000000ffffffff00000000
+0000000000000000ffffffff00000000
+c00000003fffffffffffffff00000000
+c000000000000000ffffffff00000000
+ffffffffffffffffffffffff40000000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/MULHSU.reference_output b/VexRiscv/src/test/resources/ref/MULHSU.reference_output
new file mode 100644
index 0000000..f6f8ef3
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/MULHSU.reference_output
@@ -0,0 +1,13 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
+ffffffff000000000000000000000000
+00000000ffffffffffffffffffffffff
+3fffffff3fffffff7ffffffe00000000
+c000000080000000ffffffff00000000
+ffffffffffffffffffffffffc0000000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/MULHU.reference_output b/VexRiscv/src/test/resources/ref/MULHU.reference_output
new file mode 100644
index 0000000..599e053
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/MULHU.reference_output
@@ -0,0 +1,13 @@
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
+000000007fffffff7ffffffefffffffe
+3fffffff3fffffff7ffffffe00000000
+3fffffff7fffffff0000000000000000
+ffffffffffffffffffffffff40000000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/REM.reference_output b/VexRiscv/src/test/resources/ref/REM.reference_output
new file mode 100644
index 0000000..1705fd4
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/REM.reference_output
@@ -0,0 +1,13 @@
+00000000000000000000000000000000
+00000000000000000000000100000000
+00000000ffffffff0000000100000001
+7fffffffffffffffffffffff00000000
+7fffffff000000000000000000000000
+ffffffff000000000000000080000000
+ffffffffffffffffffffffff00000000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff
diff --git a/VexRiscv/src/test/resources/ref/REMU.reference_output b/VexRiscv/src/test/resources/ref/REMU.reference_output
new file mode 100644
index 0000000..719349f
--- /dev/null
+++ b/VexRiscv/src/test/resources/ref/REMU.reference_output
@@ -0,0 +1,13 @@
+00000000000000000000000000000000
+00000001000000000000000100000000
+00000000ffffffff0000000100000001
+7fffffff7fffffff0000000100000000
+7fffffff000000007fffffff00000000
+00000001800000000000000080000000
+ffffffffffffffffffffffff00000000
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff
+0000000000000000ffffffffffffffff