diff --git a/.travis.yml b/.travis.yml
index 5a353ae24900825eb34d66d1862ec89c9aee3482..b90b5998143d1fefbe939824e0271ce152bf9605 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -80,73 +80,137 @@ jobs:
         - ci/install-verilator.sh
         - ci/install-dtc.sh
         - ci/install-spike.sh
+
     - stage: test
       name: run riscv benchmarks (Write-Back Cache)
       script:
         - ci/build-riscv-tests.sh
         - make -j${NUM_JOBS} run-benchmarks-verilator defines=WB_DCACHE
-    # rv64ui-p-* tests
+
+    # asm tests
+    # rv64ui-v-* tests
     - stage: test
       name: run asm tests1 (Write-Back Cache)
       script:
         - ci/build-riscv-tests.sh
         - make -j${NUM_JOBS} run-asm-tests1-verilator defines=WB_DCACHE
-    # rv64ui-v-* tests
+
     - stage: test
       name: run asm tests2 (Write-Back Cache)
       script:
         - ci/build-riscv-tests.sh
         - make -j${NUM_JOBS} run-asm-tests2-verilator defines=WB_DCACHE
+    # rv64ui-p-* tests
+    - stage: test
+      name: run asm tests3 (Write-Back Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests3-verilator defines=WB_DCACHE
+    - stage: test
+      name: run asm tests4 (Write-Back Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests4-verilator defines=WB_DCACHE
+    # rv64mi-p-* tests
+    - stage: test
+      name: run asm tests5 (Write-Back Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests5-verilator defines=WB_DCACHE
+    # rv64-* other tests
+    - stage: test
+      name: run asm tests6 (Write-Back Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests6-verilator defines=WB_DCACHE
+
     # rv64um-*-* tests
     - stage: test
       name: run mul tests (Write-Back Cache)
       script:
         - ci/build-riscv-tests.sh
         - make -j${NUM_JOBS} run-mul-verilator defines=WB_DCACHE
+
     # amo tests
+    # rv64ua-v-* tests
+    - stage: test
+      name: run amo tests1 (Write-Back Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - travis_wait 60 make -j${NUM_JOBS} run-amo-tests1-verilator defines=WB_DCACHE
     - stage: test
-      name: run amo tests (Write-Back Cache)
+      name: run amo tests2 (Write-Back Cache)
       script:
         - ci/build-riscv-tests.sh
-        - make -j${NUM_JOBS} run-amo-verilator defines=WB_DCACHE
+        - travis_wait 60 make -j${NUM_JOBS} run-amo-tests2-verilator defines=WB_DCACHE
+     # rv64ua-p-* tests
     - stage: test
-      name: run torture
+      name: run amo tests3 (Write-Back Cache)
       script:
-        - ci/get-torture.sh
-        - make clean
-        - make torture-gen
-        - make torture-rtest-verilator
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-amo-tests3-verilator defines=WB_DCACHE
 
     - stage: test
       name: run riscv benchmarks (Write-through Cache)
       script:
         - ci/build-riscv-tests.sh
         - make -j${NUM_JOBS} run-benchmarks-verilator  defines=WT_DCACHE
-    # rv64ui-p-* tests
+
+    # asm tests
+    # rv64ui-v-* tests
     - stage: test
       name: run asm tests1 (Write-through Cache)
       script:
         - ci/build-riscv-tests.sh
-        - make -j${NUM_JOBS} run-asm-tests1-verilator  defines=WT_DCACHE
-    # rv64ui-v-* tests
+        - make -j${NUM_JOBS} run-asm-tests1-verilator defines=WT_DCACHE
+
     - stage: test
       name: run asm tests2 (Write-through Cache)
       script:
         - ci/build-riscv-tests.sh
-        - make -j${NUM_JOBS} run-asm-tests2-verilator  defines=WT_DCACHE
+        - make -j${NUM_JOBS} run-asm-tests2-verilator defines=WT_DCACHE
+    # rv64ui-p-* tests
+    - stage: test
+      name: run asm tests3 (Write-through Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests3-verilator defines=WT_DCACHE
+    - stage: test
+      name: run asm tests4 (Write-through Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests4-verilator defines=WT_DCACHE
+    # rv64mi-p-* tests
+    - stage: test
+      name: run asm tests5 (Write-through Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests5-verilator defines=WT_DCACHE
+    # rv64-* other tests
+    - stage: test
+      name: run asm tests6 (Write-through Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-asm-tests6-verilator defines=WT_DCACHE
+
     # amo tests
+    # rv64ua-v-* tests
+    - stage: test
+      name: run amo tests1 (Write-through Cache)
+      script:
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-amo-tests1-verilator defines=WT_DCACHE
     - stage: test
-      name: run amo tests
+      name: run amo tests2 (Write-through Cache)
       script:
         - ci/build-riscv-tests.sh
-        - make -j${NUM_JOBS} run-amo-verilator defines=WT_DCACHE
+        - make -j${NUM_JOBS} run-amo-tests2-verilator defines=WT_DCACHE
+     # rv64ua-p-* tests
     - stage: test
-      name: run torture (Write-through Cache)
+      name: run amo tests3 (Write-through Cache)
       script:
-        - ci/get-torture.sh
-        - make clean
-        - make torture-gen defines=WT_DCACHE
-        - make torture-rtest-verilator defines=WT_DCACHE
+        - ci/build-riscv-tests.sh
+        - make -j${NUM_JOBS} run-amo-tests3-verilator defines=WT_DCACHE
 
 # extra time during long builds
 install: travis_wait
diff --git a/Makefile b/Makefile
index 91ed4d4fce198bd98b0f386727c1ab7abc78eca3..8f0ca9a0e11e7373a2060fe4f7bc8e4d97653d3b 100644
--- a/Makefile
+++ b/Makefile
@@ -397,13 +397,39 @@ $(addsuffix -verilator,$(riscv-benchmarks)): verilate
 
 run-asm-tests-verilator: $(addsuffix -verilator, $(riscv-asm-tests)) $(addsuffix -verilator, $(riscv-amo-tests)) $(addsuffix -verilator, $(riscv-fp-tests)) $(addsuffix -verilator, $(riscv-fp-tests))
 
-# split into two halfs for travis jobs (otherwise they will time out)
-run-asm-tests1-verilator: $(addsuffix -verilator, $(filter rv64ui-v-% ,$(riscv-asm-tests)))
+# split into smaller travis jobs (otherwise they will time out)
+riscv-asm-rv64ui-v := $(filter rv64ui-v-%, $(riscv-asm-tests))
 
-run-asm-tests2-verilator: $(addsuffix -verilator, $(filter-out rv64ui-v-% ,$(riscv-asm-tests)))
+riscv-asm-rv64ui-p := $(filter rv64ui-p-%, $(riscv-asm-tests))
+
+riscv-asm-rv64mi-p := $(filter rv64mi-p-%, $(riscv-asm-tests))
+
+riscv-asm-rest := $(filter-out $(riscv-asm-rv64ui-v) $(riscv-asm-rv64ui-p) $(riscv-asm-rv64mi-p), $(riscv-asm-tests))
+
+run-asm-tests1-verilator: $(addsuffix -verilator, $(filter rv64ui-v-a% rv64ui-v-b%, $(riscv-asm-rv64ui-v)))
+
+run-asm-tests2-verilator: $(addsuffix -verilator, $(filter-out rv64ui-v-a% rv64ui-v-b%, $(riscv-asm-rv64ui-v)))
+
+run-asm-tests3-verilator: $(addsuffix -verilator, $(filter rv64ui-p-a% rv64ui-p-b%, $(riscv-asm-rv64ui-p)))
+
+run-asm-tests4-verilator: $(addsuffix -verilator, $(filter-out rv64ui-p-a% rv64ui-p-b%, $(riscv-asm-rv64ui-p)))
+
+run-asm-tests5-verilator: $(addsuffix -verilator, $(riscv-asm-rv64mi-p))
+
+run-asm-tests6-verilator: $(addsuffix -verilator, $(riscv-asm-rest))
 
 run-amo-verilator: $(addsuffix -verilator, $(riscv-amo-tests))
 
+riscv-amo-rv64ua-v := $(filter rv64ua-v-%, $(riscv-amo-tests))
+
+riscv-amo-rv64ua-p := $(filter rv64ua-p-%, $(riscv-amo-tests))
+
+run-amo-tests1-verilator: $(addsuffix -verilator, $(filter rv64ua-v-amom%, $(riscv-amo-rv64ua-v)))
+
+run-amo-tests2-verilator: $(addsuffix -verilator, $(filter-out rv64ua-v-amom%, $(riscv-amo-rv64ua-v)))
+
+run-amo-tests3-verilator: $(addsuffix -verilator, $(riscv-amo-rv64ua-p))
+
 run-mul-verilator: $(addsuffix -verilator, $(riscv-mul-tests))
 
 run-fp-verilator: $(addsuffix -verilator, $(riscv-fp-tests))