aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Mao <zhehao.mao@gmail.com>2016-06-22 15:53:38 -0700
committerHoward Mao <zhehao.mao@gmail.com>2016-06-22 15:53:38 -0700
commit51671844c2588386ce3eacedf40d385e3c2b1484 (patch)
tree3ad4c759cb0b4c9712a95d11f99a6241877a169e
parentb6b5e81217c1f2a70ecb6883b1756859cd7bb999 (diff)
downloadriscv-tests-split-isa-tests.zip
riscv-tests-split-isa-tests.tar.gz
riscv-tests-split-isa-tests.tar.bz2
separate ua and um tests from ui testssplit-isa-tests
-rw-r--r--isa/Makefile8
-rw-r--r--isa/rv32ua/Makefrag12
-rw-r--r--isa/rv32ua/amoadd_w.S (renamed from isa/rv32ui/amoadd_w.S)0
-rw-r--r--isa/rv32ua/amoand_w.S (renamed from isa/rv32ui/amoand_w.S)0
-rw-r--r--isa/rv32ua/amomax_w.S (renamed from isa/rv32ui/amomax_w.S)0
-rw-r--r--isa/rv32ua/amomaxu_w.S (renamed from isa/rv32ui/amomaxu_w.S)0
-rw-r--r--isa/rv32ua/amomin_w.S (renamed from isa/rv32ui/amomin_w.S)0
-rw-r--r--isa/rv32ua/amominu_w.S (renamed from isa/rv32ui/amominu_w.S)0
-rw-r--r--isa/rv32ua/amoor_w.S (renamed from isa/rv32ui/amoor_w.S)0
-rw-r--r--isa/rv32ua/amoswap_w.S (renamed from isa/rv32ui/amoswap_w.S)0
-rw-r--r--isa/rv32ua/amoxor_w.S (renamed from isa/rv32ui/amoxor_w.S)0
-rw-r--r--isa/rv32ua/lrsc.S (renamed from isa/rv32ui/lrsc.S)0
-rw-r--r--isa/rv32ui/Makefrag5
-rw-r--r--isa/rv32ui/divuw.S41
-rw-r--r--isa/rv32ui/divw.S41
-rw-r--r--isa/rv32ui/mulw.S72
-rw-r--r--isa/rv32um/Makefrag13
-rw-r--r--isa/rv32um/div.S (renamed from isa/rv32ui/div.S)0
-rw-r--r--isa/rv32um/divu.S (renamed from isa/rv32ui/divu.S)0
-rw-r--r--isa/rv32um/mul.S (renamed from isa/rv32ui/mul.S)0
-rw-r--r--isa/rv32um/mulh.S (renamed from isa/rv32ui/mulh.S)0
-rw-r--r--isa/rv32um/mulhsu.S (renamed from isa/rv32ui/mulhsu.S)0
-rw-r--r--isa/rv32um/mulhu.S (renamed from isa/rv32ui/mulhu.S)0
-rw-r--r--isa/rv32um/rem.S (renamed from isa/rv32ui/rem.S)0
-rw-r--r--isa/rv32um/remu.S (renamed from isa/rv32ui/remu.S)0
-rw-r--r--isa/rv64ua/Makefrag13
-rw-r--r--isa/rv64ua/amoadd_d.S (renamed from isa/rv64ui/amoadd_d.S)0
-rw-r--r--isa/rv64ua/amoadd_w.S (renamed from isa/rv64ui/amoadd_w.S)0
-rw-r--r--isa/rv64ua/amoand_d.S (renamed from isa/rv64ui/amoand_d.S)0
-rw-r--r--isa/rv64ua/amoand_w.S (renamed from isa/rv64ui/amoand_w.S)0
-rw-r--r--isa/rv64ua/amomax_d.S (renamed from isa/rv64ui/amomax_d.S)0
-rw-r--r--isa/rv64ua/amomax_w.S (renamed from isa/rv64ui/amomax_w.S)0
-rw-r--r--isa/rv64ua/amomaxu_d.S (renamed from isa/rv64ui/amomaxu_d.S)0
-rw-r--r--isa/rv64ua/amomaxu_w.S (renamed from isa/rv64ui/amomaxu_w.S)0
-rw-r--r--isa/rv64ua/amomin_d.S (renamed from isa/rv64ui/amomin_d.S)0
-rw-r--r--isa/rv64ua/amomin_w.S (renamed from isa/rv64ui/amomin_w.S)0
-rw-r--r--isa/rv64ua/amominu_d.S (renamed from isa/rv64ui/amominu_d.S)0
-rw-r--r--isa/rv64ua/amominu_w.S (renamed from isa/rv64ui/amominu_w.S)0
-rw-r--r--isa/rv64ua/amoor_d.S (renamed from isa/rv64ui/amoor_d.S)0
-rw-r--r--isa/rv64ua/amoor_w.S (renamed from isa/rv64ui/amoor_w.S)0
-rw-r--r--isa/rv64ua/amoswap_d.S (renamed from isa/rv64ui/amoswap_d.S)0
-rw-r--r--isa/rv64ua/amoswap_w.S (renamed from isa/rv64ui/amoswap_w.S)0
-rw-r--r--isa/rv64ua/amoxor_d.S (renamed from isa/rv64ui/amoxor_d.S)0
-rw-r--r--isa/rv64ua/amoxor_w.S (renamed from isa/rv64ui/amoxor_w.S)0
-rw-r--r--isa/rv64ua/lrsc.S (renamed from isa/rv64ui/lrsc.S)0
-rw-r--r--isa/rv64ui/Makefrag6
-rw-r--r--isa/rv64um/Makefrag13
-rw-r--r--isa/rv64um/div.S (renamed from isa/rv64ui/div.S)0
-rw-r--r--isa/rv64um/divu.S (renamed from isa/rv64ui/divu.S)0
-rw-r--r--isa/rv64um/divuw.S (renamed from isa/rv64ui/divuw.S)0
-rw-r--r--isa/rv64um/divw.S (renamed from isa/rv64ui/divw.S)0
-rw-r--r--isa/rv64um/mul.S (renamed from isa/rv64ui/mul.S)0
-rw-r--r--isa/rv64um/mulh.S (renamed from isa/rv64ui/mulh.S)0
-rw-r--r--isa/rv64um/mulhsu.S (renamed from isa/rv64ui/mulhsu.S)0
-rw-r--r--isa/rv64um/mulhu.S (renamed from isa/rv64ui/mulhu.S)0
-rw-r--r--isa/rv64um/mulw.S (renamed from isa/rv64ui/mulw.S)0
-rw-r--r--isa/rv64um/rem.S (renamed from isa/rv64ui/rem.S)0
-rw-r--r--isa/rv64um/remu.S (renamed from isa/rv64ui/remu.S)0
-rw-r--r--isa/rv64um/remuw.S (renamed from isa/rv64ui/remuw.S)0
-rw-r--r--isa/rv64um/remw.S (renamed from isa/rv64ui/remw.S)0
60 files changed, 59 insertions, 165 deletions
diff --git a/isa/Makefile b/isa/Makefile
index d07dfa6..4e1af6c 100644
--- a/isa/Makefile
+++ b/isa/Makefile
@@ -5,11 +5,15 @@
src_dir := .
include $(src_dir)/rv64ui/Makefrag
+include $(src_dir)/rv64um/Makefrag
+include $(src_dir)/rv64ua/Makefrag
include $(src_dir)/rv64uf/Makefrag
include $(src_dir)/rv64ud/Makefrag
include $(src_dir)/rv64si/Makefrag
include $(src_dir)/rv64mi/Makefrag
include $(src_dir)/rv32ui/Makefrag
+include $(src_dir)/rv32um/Makefrag
+include $(src_dir)/rv32ua/Makefrag
include $(src_dir)/rv32si/Makefrag
include $(src_dir)/rv32mi/Makefrag
@@ -62,10 +66,14 @@ tests += $$($(1)_tests)
endef
$(eval $(call compile_template,rv32ui,-m32))
+$(eval $(call compile_template,rv32um,-m32))
+$(eval $(call compile_template,rv32ua,-m32))
$(eval $(call compile_template,rv32si,-m32))
$(eval $(call compile_template,rv32mi,-m32))
ifeq ($(XLEN),64)
$(eval $(call compile_template,rv64ui))
+$(eval $(call compile_template,rv64um))
+$(eval $(call compile_template,rv64ua))
$(eval $(call compile_template,rv64uf))
$(eval $(call compile_template,rv64ud))
$(eval $(call compile_template,rv64si))
diff --git a/isa/rv32ua/Makefrag b/isa/rv32ua/Makefrag
new file mode 100644
index 0000000..9af6c7e
--- /dev/null
+++ b/isa/rv32ua/Makefrag
@@ -0,0 +1,12 @@
+#=======================================================================
+# Makefrag for rv32ua tests
+#-----------------------------------------------------------------------
+
+rv32ua_sc_tests = \
+ amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoxor_w amoswap_w \
+ lrsc \
+
+rv32ua_p_tests = $(addprefix rv32ua-p-, $(rv32ua_sc_tests))
+rv32ua_v_tests = $(addprefix rv32ua-v-, $(rv32ua_sc_tests))
+
+spike_tests += $(rv32ua_p_tests) $(rv32ua_v_tests)
diff --git a/isa/rv32ui/amoadd_w.S b/isa/rv32ua/amoadd_w.S
index 975ae1d..975ae1d 100644
--- a/isa/rv32ui/amoadd_w.S
+++ b/isa/rv32ua/amoadd_w.S
diff --git a/isa/rv32ui/amoand_w.S b/isa/rv32ua/amoand_w.S
index 7c989c2..7c989c2 100644
--- a/isa/rv32ui/amoand_w.S
+++ b/isa/rv32ua/amoand_w.S
diff --git a/isa/rv32ui/amomax_w.S b/isa/rv32ua/amomax_w.S
index 698cf26..698cf26 100644
--- a/isa/rv32ui/amomax_w.S
+++ b/isa/rv32ua/amomax_w.S
diff --git a/isa/rv32ui/amomaxu_w.S b/isa/rv32ua/amomaxu_w.S
index 27c4ddf..27c4ddf 100644
--- a/isa/rv32ui/amomaxu_w.S
+++ b/isa/rv32ua/amomaxu_w.S
diff --git a/isa/rv32ui/amomin_w.S b/isa/rv32ua/amomin_w.S
index a6a0947..a6a0947 100644
--- a/isa/rv32ui/amomin_w.S
+++ b/isa/rv32ua/amomin_w.S
diff --git a/isa/rv32ui/amominu_w.S b/isa/rv32ua/amominu_w.S
index ce06e1c..ce06e1c 100644
--- a/isa/rv32ui/amominu_w.S
+++ b/isa/rv32ua/amominu_w.S
diff --git a/isa/rv32ui/amoor_w.S b/isa/rv32ua/amoor_w.S
index 0988c66..0988c66 100644
--- a/isa/rv32ui/amoor_w.S
+++ b/isa/rv32ua/amoor_w.S
diff --git a/isa/rv32ui/amoswap_w.S b/isa/rv32ua/amoswap_w.S
index a32ae74..a32ae74 100644
--- a/isa/rv32ui/amoswap_w.S
+++ b/isa/rv32ua/amoswap_w.S
diff --git a/isa/rv32ui/amoxor_w.S b/isa/rv32ua/amoxor_w.S
index d4b775f..d4b775f 100644
--- a/isa/rv32ui/amoxor_w.S
+++ b/isa/rv32ua/amoxor_w.S
diff --git a/isa/rv32ui/lrsc.S b/isa/rv32ua/lrsc.S
index 3a3d05a..3a3d05a 100644
--- a/isa/rv32ui/lrsc.S
+++ b/isa/rv32ua/lrsc.S
diff --git a/isa/rv32ui/Makefrag b/isa/rv32ui/Makefrag
index 4bdebb5..6cb6c08 100644
--- a/isa/rv32ui/Makefrag
+++ b/isa/rv32ui/Makefrag
@@ -5,19 +5,14 @@
rv32ui_sc_tests = \
simple \
add addi \
- amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoxor_w amoswap_w \
- lrsc \
and andi \
auipc \
beq bge bgeu blt bltu bne \
- div divu \
fence_i \
j jal jalr \
lb lbu lh lhu lw \
lui \
- mul mulh mulhu mulhsu \
or ori \
- rem remu \
sb sh sw \
sll slli \
slt slti \
diff --git a/isa/rv32ui/divuw.S b/isa/rv32ui/divuw.S
deleted file mode 100644
index 0868eeb..0000000
--- a/isa/rv32ui/divuw.S
+++ /dev/null
@@ -1,41 +0,0 @@
-# See LICENSE for license details.
-
-#*****************************************************************************
-# divuw.S
-#-----------------------------------------------------------------------------
-#
-# Test divuw instruction.
-#
-
-#include "riscv_test.h"
-#include "test_macros.h"
-
-RVTEST_RV32U
-RVTEST_CODE_BEGIN
-
- #-------------------------------------------------------------
- # Arithmetic tests
- #-------------------------------------------------------------
-
- TEST_RR_OP( 2, divuw, 3, 20, 6 );
- TEST_RR_OP( 3, divuw, 715827879, -20 << 32 >> 32, 6 );
- TEST_RR_OP( 4, divuw, 0, 20, -6 );
- TEST_RR_OP( 5, divuw, 0, -20, -6 );
-
- TEST_RR_OP( 6, divuw, -1<<31, -1<<31, 1 );
- TEST_RR_OP( 7, divuw, 0, -1<<31, -1 );
-
- TEST_RR_OP( 8, divuw, -1, -1<<31, 0 );
- TEST_RR_OP( 9, divuw, -1, 1, 0 );
- TEST_RR_OP(10, divuw, -1, 0, 0 );
-
- TEST_PASSFAIL
-
-RVTEST_CODE_END
-
- .data
-RVTEST_DATA_BEGIN
-
- TEST_DATA
-
-RVTEST_DATA_END
diff --git a/isa/rv32ui/divw.S b/isa/rv32ui/divw.S
deleted file mode 100644
index 4d91749..0000000
--- a/isa/rv32ui/divw.S
+++ /dev/null
@@ -1,41 +0,0 @@
-# See LICENSE for license details.
-
-#*****************************************************************************
-# divw.S
-#-----------------------------------------------------------------------------
-#
-# Test divw instruction.
-#
-
-#include "riscv_test.h"
-#include "test_macros.h"
-
-RVTEST_RV32U
-RVTEST_CODE_BEGIN
-
- #-------------------------------------------------------------
- # Arithmetic tests
- #-------------------------------------------------------------
-
- TEST_RR_OP( 2, divw, 3, 20, 6 );
- TEST_RR_OP( 3, divw, -3, -20, 6 );
- TEST_RR_OP( 4, divw, -3, 20, -6 );
- TEST_RR_OP( 5, divw, 3, -20, -6 );
-
- TEST_RR_OP( 6, divw, -1<<31, -1<<31, 1 );
- TEST_RR_OP( 7, divw, -1<<31, -1<<31, -1 );
-
- TEST_RR_OP( 8, divw, -1, -1<<31, 0 );
- TEST_RR_OP( 9, divw, -1, 1, 0 );
- TEST_RR_OP(10, divw, -1, 0, 0 );
-
- TEST_PASSFAIL
-
-RVTEST_CODE_END
-
- .data
-RVTEST_DATA_BEGIN
-
- TEST_DATA
-
-RVTEST_DATA_END
diff --git a/isa/rv32ui/mulw.S b/isa/rv32ui/mulw.S
deleted file mode 100644
index 577c93e..0000000
--- a/isa/rv32ui/mulw.S
+++ /dev/null
@@ -1,72 +0,0 @@
-# See LICENSE for license details.
-
-#*****************************************************************************
-# mulw.S
-#-----------------------------------------------------------------------------
-#
-# Test mulw instruction.
-#
-
-#include "riscv_test.h"
-#include "test_macros.h"
-
-RVTEST_RV32U
-RVTEST_CODE_BEGIN
-
- #-------------------------------------------------------------
- # Arithmetic tests
- #-------------------------------------------------------------
-
- TEST_RR_OP( 2, mulw, 0x00000000, 0x00000000, 0x00000000 );
- TEST_RR_OP( 3, mulw, 0x00000001, 0x00000001, 0x00000001 );
- TEST_RR_OP( 4, mulw, 0x00000015, 0x00000003, 0x00000007 );
-
- TEST_RR_OP( 5, mulw, 0x00000000, 0x00000000, 0xffff8000 );
- TEST_RR_OP( 6, mulw, 0x00000000, 0x80000000, 0x00000000 );
- TEST_RR_OP( 7, mulw, 0x00000000, 0x80000000, 0xffff8000 );
-
- #-------------------------------------------------------------
- # Source/Destination tests
- #-------------------------------------------------------------
-
- TEST_RR_SRC1_EQ_DEST( 8, mulw, 143, 13, 11 );
- TEST_RR_SRC2_EQ_DEST( 9, mulw, 154, 14, 11 );
- TEST_RR_SRC12_EQ_DEST( 10, mulw, 169, 13 );
-
- #-------------------------------------------------------------
- # Bypassing tests
- #-------------------------------------------------------------
-
- TEST_RR_DEST_BYPASS( 11, 0, mulw, 143, 13, 11 );
- TEST_RR_DEST_BYPASS( 12, 1, mulw, 154, 14, 11 );
- TEST_RR_DEST_BYPASS( 13, 2, mulw, 165, 15, 11 );
-
- TEST_RR_SRC12_BYPASS( 14, 0, 0, mulw, 143, 13, 11 );
- TEST_RR_SRC12_BYPASS( 15, 0, 1, mulw, 154, 14, 11 );
- TEST_RR_SRC12_BYPASS( 16, 0, 2, mulw, 165, 15, 11 );
- TEST_RR_SRC12_BYPASS( 17, 1, 0, mulw, 143, 13, 11 );
- TEST_RR_SRC12_BYPASS( 18, 1, 1, mulw, 154, 14, 11 );
- TEST_RR_SRC12_BYPASS( 19, 2, 0, mulw, 165, 15, 11 );
-
- TEST_RR_SRC21_BYPASS( 20, 0, 0, mulw, 143, 13, 11 );
- TEST_RR_SRC21_BYPASS( 21, 0, 1, mulw, 154, 14, 11 );
- TEST_RR_SRC21_BYPASS( 22, 0, 2, mulw, 165, 15, 11 );
- TEST_RR_SRC21_BYPASS( 23, 1, 0, mulw, 143, 13, 11 );
- TEST_RR_SRC21_BYPASS( 24, 1, 1, mulw, 154, 14, 11 );
- TEST_RR_SRC21_BYPASS( 25, 2, 0, mulw, 165, 15, 11 );
-
- TEST_RR_ZEROSRC1( 26, mulw, 0, 31 );
- TEST_RR_ZEROSRC2( 27, mulw, 0, 32 );
- TEST_RR_ZEROSRC12( 28, mulw, 0 );
- TEST_RR_ZERODEST( 29, mulw, 33, 34 );
-
- TEST_PASSFAIL
-
-RVTEST_CODE_END
-
- .data
-RVTEST_DATA_BEGIN
-
- TEST_DATA
-
-RVTEST_DATA_END
diff --git a/isa/rv32um/Makefrag b/isa/rv32um/Makefrag
new file mode 100644
index 0000000..50bffc8
--- /dev/null
+++ b/isa/rv32um/Makefrag
@@ -0,0 +1,13 @@
+#=======================================================================
+# Makefrag for rv32um tests
+#-----------------------------------------------------------------------
+
+rv32um_sc_tests = \
+ div divu \
+ mul mulh mulhsu mulhu \
+ rem remu \
+
+rv32um_p_tests = $(addprefix rv32um-p-, $(rv32um_sc_tests))
+rv32um_v_tests = $(addprefix rv32um-v-, $(rv32um_sc_tests))
+
+spike_tests += $(rv32um_p_tests) $(rv32um_v_tests)
diff --git a/isa/rv32ui/div.S b/isa/rv32um/div.S
index a4504a7..a4504a7 100644
--- a/isa/rv32ui/div.S
+++ b/isa/rv32um/div.S
diff --git a/isa/rv32ui/divu.S b/isa/rv32um/divu.S
index cd348c9..cd348c9 100644
--- a/isa/rv32ui/divu.S
+++ b/isa/rv32um/divu.S
diff --git a/isa/rv32ui/mul.S b/isa/rv32um/mul.S
index 0368629..0368629 100644
--- a/isa/rv32ui/mul.S
+++ b/isa/rv32um/mul.S
diff --git a/isa/rv32ui/mulh.S b/isa/rv32um/mulh.S
index e583f5f..e583f5f 100644
--- a/isa/rv32ui/mulh.S
+++ b/isa/rv32um/mulh.S
diff --git a/isa/rv32ui/mulhsu.S b/isa/rv32um/mulhsu.S
index 28b3690..28b3690 100644
--- a/isa/rv32ui/mulhsu.S
+++ b/isa/rv32um/mulhsu.S
diff --git a/isa/rv32ui/mulhu.S b/isa/rv32um/mulhu.S
index 601dcff..601dcff 100644
--- a/isa/rv32ui/mulhu.S
+++ b/isa/rv32um/mulhu.S
diff --git a/isa/rv32ui/rem.S b/isa/rv32um/rem.S
index c318e2c..c318e2c 100644
--- a/isa/rv32ui/rem.S
+++ b/isa/rv32um/rem.S
diff --git a/isa/rv32ui/remu.S b/isa/rv32um/remu.S
index 38d641d..38d641d 100644
--- a/isa/rv32ui/remu.S
+++ b/isa/rv32um/remu.S
diff --git a/isa/rv64ua/Makefrag b/isa/rv64ua/Makefrag
new file mode 100644
index 0000000..3af8856
--- /dev/null
+++ b/isa/rv64ua/Makefrag
@@ -0,0 +1,13 @@
+#=======================================================================
+# Makefrag for rv64ua tests
+#-----------------------------------------------------------------------
+
+rv64ua_sc_tests = \
+ amoadd_d amoand_d amomax_d amomaxu_d amomin_d amominu_d amoor_d amoxor_d amoswap_d \
+ amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoxor_w amoswap_w \
+ lrsc \
+
+rv64ua_p_tests = $(addprefix rv64ua-p-, $(rv64ua_sc_tests))
+rv64ua_v_tests = $(addprefix rv64ua-v-, $(rv64ua_sc_tests))
+
+spike_tests += $(rv64ua_p_tests) $(rv64ua_v_tests)
diff --git a/isa/rv64ui/amoadd_d.S b/isa/rv64ua/amoadd_d.S
index c356bed..c356bed 100644
--- a/isa/rv64ui/amoadd_d.S
+++ b/isa/rv64ua/amoadd_d.S
diff --git a/isa/rv64ui/amoadd_w.S b/isa/rv64ua/amoadd_w.S
index b3d1953..b3d1953 100644
--- a/isa/rv64ui/amoadd_w.S
+++ b/isa/rv64ua/amoadd_w.S
diff --git a/isa/rv64ui/amoand_d.S b/isa/rv64ua/amoand_d.S
index 13019ae..13019ae 100644
--- a/isa/rv64ui/amoand_d.S
+++ b/isa/rv64ua/amoand_d.S
diff --git a/isa/rv64ui/amoand_w.S b/isa/rv64ua/amoand_w.S
index a843888..a843888 100644
--- a/isa/rv64ui/amoand_w.S
+++ b/isa/rv64ua/amoand_w.S
diff --git a/isa/rv64ui/amomax_d.S b/isa/rv64ua/amomax_d.S
index ea7e2d3..ea7e2d3 100644
--- a/isa/rv64ui/amomax_d.S
+++ b/isa/rv64ua/amomax_d.S
diff --git a/isa/rv64ui/amomax_w.S b/isa/rv64ua/amomax_w.S
index b3adbf0..b3adbf0 100644
--- a/isa/rv64ui/amomax_w.S
+++ b/isa/rv64ua/amomax_w.S
diff --git a/isa/rv64ui/amomaxu_d.S b/isa/rv64ua/amomaxu_d.S
index b340873..b340873 100644
--- a/isa/rv64ui/amomaxu_d.S
+++ b/isa/rv64ua/amomaxu_d.S
diff --git a/isa/rv64ui/amomaxu_w.S b/isa/rv64ua/amomaxu_w.S
index 41346d1..41346d1 100644
--- a/isa/rv64ui/amomaxu_w.S
+++ b/isa/rv64ua/amomaxu_w.S
diff --git a/isa/rv64ui/amomin_d.S b/isa/rv64ua/amomin_d.S
index e6febbb..e6febbb 100644
--- a/isa/rv64ui/amomin_d.S
+++ b/isa/rv64ua/amomin_d.S
diff --git a/isa/rv64ui/amomin_w.S b/isa/rv64ua/amomin_w.S
index 96b547b..96b547b 100644
--- a/isa/rv64ui/amomin_w.S
+++ b/isa/rv64ua/amomin_w.S
diff --git a/isa/rv64ui/amominu_d.S b/isa/rv64ua/amominu_d.S
index a1013f3..a1013f3 100644
--- a/isa/rv64ui/amominu_d.S
+++ b/isa/rv64ua/amominu_d.S
diff --git a/isa/rv64ui/amominu_w.S b/isa/rv64ua/amominu_w.S
index 0a9e265..0a9e265 100644
--- a/isa/rv64ui/amominu_w.S
+++ b/isa/rv64ua/amominu_w.S
diff --git a/isa/rv64ui/amoor_d.S b/isa/rv64ua/amoor_d.S
index 507e877..507e877 100644
--- a/isa/rv64ui/amoor_d.S
+++ b/isa/rv64ua/amoor_d.S
diff --git a/isa/rv64ui/amoor_w.S b/isa/rv64ua/amoor_w.S
index 47978ba..47978ba 100644
--- a/isa/rv64ui/amoor_w.S
+++ b/isa/rv64ua/amoor_w.S
diff --git a/isa/rv64ui/amoswap_d.S b/isa/rv64ua/amoswap_d.S
index 628f537..628f537 100644
--- a/isa/rv64ui/amoswap_d.S
+++ b/isa/rv64ua/amoswap_d.S
diff --git a/isa/rv64ui/amoswap_w.S b/isa/rv64ua/amoswap_w.S
index c09b866..c09b866 100644
--- a/isa/rv64ui/amoswap_w.S
+++ b/isa/rv64ua/amoswap_w.S
diff --git a/isa/rv64ui/amoxor_d.S b/isa/rv64ua/amoxor_d.S
index f446121..f446121 100644
--- a/isa/rv64ui/amoxor_d.S
+++ b/isa/rv64ua/amoxor_d.S
diff --git a/isa/rv64ui/amoxor_w.S b/isa/rv64ua/amoxor_w.S
index 2b92323..2b92323 100644
--- a/isa/rv64ui/amoxor_w.S
+++ b/isa/rv64ua/amoxor_w.S
diff --git a/isa/rv64ui/lrsc.S b/isa/rv64ua/lrsc.S
index 9422739..9422739 100644
--- a/isa/rv64ui/lrsc.S
+++ b/isa/rv64ua/lrsc.S
diff --git a/isa/rv64ui/Makefrag b/isa/rv64ui/Makefrag
index 4af2504..7920b99 100644
--- a/isa/rv64ui/Makefrag
+++ b/isa/rv64ui/Makefrag
@@ -4,21 +4,15 @@
rv64ui_sc_tests = \
add addi addiw addw \
- amoadd_d amoand_d amomax_d amomaxu_d amomin_d amominu_d amoor_d amoxor_d amoswap_d \
- amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoxor_w amoswap_w \
- lrsc \
and andi \
auipc \
beq bge bgeu blt bltu bne \
- div divu divuw divw \
example simple \
fence_i \
j jal jalr \
lb lbu lh lhu lw lwu ld \
lui \
- mul mulh mulhsu mulhu mulw \
or ori \
- rem remu remuw remw \
sb sh sw sd \
sll slli slliw sllw \
slt slti sltiu sltu \
diff --git a/isa/rv64um/Makefrag b/isa/rv64um/Makefrag
new file mode 100644
index 0000000..360bd7a
--- /dev/null
+++ b/isa/rv64um/Makefrag
@@ -0,0 +1,13 @@
+#=======================================================================
+# Makefrag for rv64um tests
+#-----------------------------------------------------------------------
+
+rv64um_sc_tests = \
+ div divu divuw divw \
+ mul mulh mulhsu mulhu mulw \
+ rem remu remuw remw \
+
+rv64um_p_tests = $(addprefix rv64um-p-, $(rv64um_sc_tests))
+rv64um_v_tests = $(addprefix rv64um-v-, $(rv64um_sc_tests))
+
+spike_tests += $(rv64um_p_tests) $(rv64um_v_tests)
diff --git a/isa/rv64ui/div.S b/isa/rv64um/div.S
index ee21f0c..ee21f0c 100644
--- a/isa/rv64ui/div.S
+++ b/isa/rv64um/div.S
diff --git a/isa/rv64ui/divu.S b/isa/rv64um/divu.S
index e63fd65..e63fd65 100644
--- a/isa/rv64ui/divu.S
+++ b/isa/rv64um/divu.S
diff --git a/isa/rv64ui/divuw.S b/isa/rv64um/divuw.S
index 4c9eee7..4c9eee7 100644
--- a/isa/rv64ui/divuw.S
+++ b/isa/rv64um/divuw.S
diff --git a/isa/rv64ui/divw.S b/isa/rv64um/divw.S
index 4cffa1a..4cffa1a 100644
--- a/isa/rv64ui/divw.S
+++ b/isa/rv64um/divw.S
diff --git a/isa/rv64ui/mul.S b/isa/rv64um/mul.S
index c647e97..c647e97 100644
--- a/isa/rv64ui/mul.S
+++ b/isa/rv64um/mul.S
diff --git a/isa/rv64ui/mulh.S b/isa/rv64um/mulh.S
index 1fd12a1..1fd12a1 100644
--- a/isa/rv64ui/mulh.S
+++ b/isa/rv64um/mulh.S
diff --git a/isa/rv64ui/mulhsu.S b/isa/rv64um/mulhsu.S
index c037db2..c037db2 100644
--- a/isa/rv64ui/mulhsu.S
+++ b/isa/rv64um/mulhsu.S
diff --git a/isa/rv64ui/mulhu.S b/isa/rv64um/mulhu.S
index aa7b762..aa7b762 100644
--- a/isa/rv64ui/mulhu.S
+++ b/isa/rv64um/mulhu.S
diff --git a/isa/rv64ui/mulw.S b/isa/rv64um/mulw.S
index 379c3f2..379c3f2 100644
--- a/isa/rv64ui/mulw.S
+++ b/isa/rv64um/mulw.S
diff --git a/isa/rv64ui/rem.S b/isa/rv64um/rem.S
index e3248ff..e3248ff 100644
--- a/isa/rv64ui/rem.S
+++ b/isa/rv64um/rem.S
diff --git a/isa/rv64ui/remu.S b/isa/rv64um/remu.S
index 6946d0d..6946d0d 100644
--- a/isa/rv64ui/remu.S
+++ b/isa/rv64um/remu.S
diff --git a/isa/rv64ui/remuw.S b/isa/rv64um/remuw.S
index 334b5c5..334b5c5 100644
--- a/isa/rv64ui/remuw.S
+++ b/isa/rv64um/remuw.S
diff --git a/isa/rv64ui/remw.S b/isa/rv64um/remw.S
index 3ae8e3d..3ae8e3d 100644
--- a/isa/rv64ui/remw.S
+++ b/isa/rv64um/remw.S