|
| 1 | +# Copyright 2025 ETH Zurich and University of Bologna. |
| 2 | +# Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| 3 | +# SPDX-License-Identifier: Apache-2.0 |
| 4 | + |
| 5 | +# Runs riscv-tests ISA test cases for the p environment. |
| 6 | +# Make sure the test cases are compiled in the riscv-tests.mk. |
| 7 | + |
| 8 | +runs: |
| 9 | + # Base set |
| 10 | + - elf: ./riscv-tests/build/rv32ui-p-simple.elf |
| 11 | + - elf: ./riscv-tests/build/rv32ui-p-sltu.elf |
| 12 | + - elf: ./riscv-tests/build/rv32ui-p-add.elf |
| 13 | + - elf: ./riscv-tests/build/rv32ui-p-addi.elf |
| 14 | + - elf: ./riscv-tests/build/rv32ui-p-xori.elf |
| 15 | + - elf: ./riscv-tests/build/rv32ui-p-and.elf |
| 16 | + - elf: ./riscv-tests/build/rv32ui-p-andi.elf |
| 17 | + - elf: ./riscv-tests/build/rv32ui-p-auipc.elf |
| 18 | + - elf: ./riscv-tests/build/rv32ui-p-beq.elf |
| 19 | + - elf: ./riscv-tests/build/rv32ui-p-bge.elf |
| 20 | + - elf: ./riscv-tests/build/rv32ui-p-bgeu.elf |
| 21 | + - elf: ./riscv-tests/build/rv32ui-p-blt.elf |
| 22 | + - elf: ./riscv-tests/build/rv32ui-p-bltu.elf |
| 23 | + - elf: ./riscv-tests/build/rv32ui-p-bne.elf |
| 24 | + - elf: ./riscv-tests/build/rv32ui-p-sltiu.elf |
| 25 | + - elf: ./riscv-tests/build/rv32ui-p-fence_i.elf |
| 26 | + - elf: ./riscv-tests/build/rv32ui-p-jal.elf |
| 27 | + - elf: ./riscv-tests/build/rv32ui-p-jalr.elf |
| 28 | + - elf: ./riscv-tests/build/rv32ui-p-lb.elf |
| 29 | + - elf: ./riscv-tests/build/rv32ui-p-lbu.elf |
| 30 | + - elf: ./riscv-tests/build/rv32ui-p-lh.elf |
| 31 | + - elf: ./riscv-tests/build/rv32ui-p-lhu.elf |
| 32 | + - elf: ./riscv-tests/build/rv32ui-p-lw.elf |
| 33 | + - elf: ./riscv-tests/build/rv32ui-p-ld_st.elf |
| 34 | + - elf: ./riscv-tests/build/rv32ui-p-lui.elf |
| 35 | + # Exclude the rv32ui-p-ma_data test as it is for user space EEI and assumes that we support |
| 36 | + # unaligned memory access in U mode. Snitch never supports unaligned accesses. |
| 37 | + # - elf: ./riscv-tests/build/rv32ui-p-ma_data.elf |
| 38 | + - elf: ./riscv-tests/build/rv32ui-p-or.elf |
| 39 | + - elf: ./riscv-tests/build/rv32ui-p-ori.elf |
| 40 | + - elf: ./riscv-tests/build/rv32ui-p-sb.elf |
| 41 | + - elf: ./riscv-tests/build/rv32ui-p-sh.elf |
| 42 | + - elf: ./riscv-tests/build/rv32ui-p-sw.elf |
| 43 | + - elf: ./riscv-tests/build/rv32ui-p-st_ld.elf |
| 44 | + - elf: ./riscv-tests/build/rv32ui-p-sll.elf |
| 45 | + - elf: ./riscv-tests/build/rv32ui-p-slli.elf |
| 46 | + - elf: ./riscv-tests/build/rv32ui-p-slt.elf |
| 47 | + - elf: ./riscv-tests/build/rv32ui-p-slti.elf |
| 48 | + - elf: ./riscv-tests/build/rv32ui-p-sra.elf |
| 49 | + - elf: ./riscv-tests/build/rv32ui-p-srai.elf |
| 50 | + - elf: ./riscv-tests/build/rv32ui-p-srl.elf |
| 51 | + - elf: ./riscv-tests/build/rv32ui-p-srli.elf |
| 52 | + - elf: ./riscv-tests/build/rv32ui-p-sub.elf |
| 53 | + - elf: ./riscv-tests/build/rv32ui-p-xor.elf |
| 54 | + # Multiplication |
| 55 | + - elf: ./riscv-tests/build/rv32um-p-div.elf |
| 56 | + - elf: ./riscv-tests/build/rv32um-p-divu.elf |
| 57 | + - elf: ./riscv-tests/build/rv32um-p-mul.elf |
| 58 | + - elf: ./riscv-tests/build/rv32um-p-mulh.elf |
| 59 | + - elf: ./riscv-tests/build/rv32um-p-mulhsu.elf |
| 60 | + - elf: ./riscv-tests/build/rv32um-p-mulhu.elf |
| 61 | + - elf: ./riscv-tests/build/rv32um-p-rem.elf |
| 62 | + - elf: ./riscv-tests/build/rv32um-p-remu.elf |
| 63 | + # Atomics |
| 64 | + - elf: ./riscv-tests/build/rv32ua-p-amomaxu_w.elf |
| 65 | + - elf: ./riscv-tests/build/rv32ua-p-amoor_w.elf |
| 66 | + - elf: ./riscv-tests/build/rv32ua-p-amoand_w.elf |
| 67 | + - elf: ./riscv-tests/build/rv32ua-p-amoadd_w.elf |
| 68 | + - elf: ./riscv-tests/build/rv32ua-p-amomin_w.elf |
| 69 | + - elf: ./riscv-tests/build/rv32ua-p-amomax_w.elf |
| 70 | + - elf: ./riscv-tests/build/rv32ua-p-amoswap_w.elf |
| 71 | + - elf: ./riscv-tests/build/rv32ua-p-amoxor_w.elf |
| 72 | + - elf: ./riscv-tests/build/rv32ua-p-amominu_w.elf |
| 73 | + - elf: ./riscv-tests/build/rv32ua-p-lrsc.elf |
| 74 | + # FLOATING POINT TESTS |
| 75 | + # Some tests could fail because there are additional bits in the fcsr register. |
| 76 | + # |
| 77 | + # The following tests fail because the fcsr read operations are not ordered in regards to the |
| 78 | + # FPU instructions: |
| 79 | + # - elf: ./riscv-tests/build/rv32uf-p-fadd.elf |
| 80 | + # - elf: ./riscv-tests/build/rv32uf-p-fcmp.elf |
| 81 | + # - elf: ./riscv-tests/build/rv32uf-p-fcvt_w.elf |
| 82 | + # - elf: ./riscv-tests/build/rv32uf-p-fmadd.elf |
| 83 | + # - elf: ./riscv-tests/build/rv32uf-p-fmin.elf |
| 84 | + # |
| 85 | + # The fdiv fails because it includes fdiv and fsqrt which both are not supported. |
| 86 | + # - elf: ./riscv-tests/build/rv32uf-p-fdiv.elf |
| 87 | + # |
| 88 | + # The move fails because Snitch has additional custom fcsr CSR bits. |
| 89 | + # - elf: ./riscv-tests/build/rv32uf-p-move.elf |
| 90 | + # |
| 91 | + # The following tests do not check the fcsr value |
| 92 | + - elf: ./riscv-tests/build/rv32uf-p-fclass.elf |
| 93 | + - elf: ./riscv-tests/build/rv32uf-p-fcvt.elf |
| 94 | + - elf: ./riscv-tests/build/rv32uf-p-ldst.elf |
| 95 | + - elf: ./riscv-tests/build/rv32uf-p-recoding.elf |
| 96 | + |
| 97 | + # DOUBLE TESTS |
| 98 | + # Some tests could fail because there are additional bits in the fcsr register. |
| 99 | + # |
| 100 | + # The following tests fail because the fcsr read operations are not ordered in regards to the |
| 101 | + # FPU instructions: |
| 102 | + # - elf: ./riscv-tests/build/rv32ud-p-fcmp.elf |
| 103 | + # - elf: ./riscv-tests/build/rv32ud-p-fcvt_w.elf |
| 104 | + # |
| 105 | + # The following tests pass only because there are enough integer core instructions between the |
| 106 | + # relevant FPU instruction and its corresponding fcsr read: |
| 107 | + - elf: ./riscv-tests/build/rv32ud-p-fadd.elf |
| 108 | + - elf: ./riscv-tests/build/rv32ud-p-fcvt.elf |
| 109 | + - elf: ./riscv-tests/build/rv32ud-p-fmadd.elf |
| 110 | + - elf: ./riscv-tests/build/rv32ud-p-fmin.elf |
| 111 | + # |
| 112 | + # fdiv tests includes fdiv and fsqrt which both are not supported. |
| 113 | + # - elf: ./riscv-tests/build/rv32ud-p-fdiv.elf |
| 114 | + # |
| 115 | + # The move test is not yet enabled in riscv-tests repo for double. It would probably fail on the |
| 116 | + # additional bits in the fcsr. |
| 117 | + # - elf: no binary yet |
| 118 | + # |
| 119 | + # The following tests do not check the fcsr value |
| 120 | + - elf: ./riscv-tests/build/rv32ud-p-fclass.elf |
| 121 | + - elf: ./riscv-tests/build/rv32ud-p-ldst.elf |
| 122 | + - elf: ./riscv-tests/build/rv32ud-p-recoding.elf |
0 commit comments