# Makefile snippet used by emulator/vlsi/fpga backends MODEL := Top CXX := g++ CXXFLAGS := -O2 SBT := java -Xmx2048M -Xss8M -XX:MaxPermSize=128M -jar sbt-launch.jar DRAMSIM_OBJS := $(patsubst %.cpp,%.o,$(wildcard $(base_dir)/dramsim2/*.cpp)) $(DRAMSIM_OBJS): %.o: %.cpp $(CXX) $(CXXFLAGS) -DNO_STORAGE -DNO_OUTPUT -Dmain=nomain -c -o $@ $< $(sim_dir)/libdramsim.a: $(DRAMSIM_OBJS) ar rcs $@ $^ src_path = src/main/scala #-------------------------------------------------------------------- # Tests #-------------------------------------------------------------------- tstdir = $(base_dir)/riscv-tests/isa asm_p_tests = \ rv64ui-p-add \ rv64ui-p-addi \ rv64ui-p-amoadd_d \ rv64ui-p-amoadd_w \ rv64ui-p-amoand_d \ rv64ui-p-amoand_w \ rv64ui-p-amoor_d \ rv64ui-p-amoor_w \ rv64ui-p-amoxor_d \ rv64ui-p-amoxor_w \ rv64ui-p-amoswap_d \ rv64ui-p-amoswap_w \ rv64ui-p-amomax_d \ rv64ui-p-amomax_w \ rv64ui-p-amomaxu_d \ rv64ui-p-amomaxu_w \ rv64ui-p-amomin_d \ rv64ui-p-amomin_w \ rv64ui-p-amominu_d \ rv64ui-p-amominu_w \ rv64ui-p-auipc \ rv64ui-p-fence_i \ rv64ui-p-sb \ rv64ui-p-sd \ rv64ui-p-sh \ rv64ui-p-sw \ rv64ui-p-addiw \ rv64ui-p-addw \ rv64ui-p-and \ rv64ui-p-andi \ rv64ui-p-beq \ rv64ui-p-bge \ rv64ui-p-bgeu \ rv64ui-p-blt \ rv64ui-p-bltu \ rv64ui-p-bne \ rv64ui-p-div \ rv64ui-p-divu \ rv64ui-p-divuw \ rv64ui-p-divw \ rv64ui-p-j \ rv64ui-p-jal \ rv64ui-p-jalr \ rv64ui-p-lb \ rv64ui-p-lbu \ rv64ui-p-ld \ rv64ui-p-lh \ rv64ui-p-lhu \ rv64ui-p-lui \ rv64ui-p-lw \ rv64ui-p-lwu \ rv64ui-p-mul \ rv64ui-p-mulh \ rv64ui-p-mulhsu \ rv64ui-p-mulhu \ rv64ui-p-mulw \ rv64ui-p-or \ rv64ui-p-ori \ rv64ui-p-rem \ rv64ui-p-remu \ rv64ui-p-remuw \ rv64ui-p-remw \ rv64ui-p-simple \ rv64ui-p-sll \ rv64ui-p-slli \ rv64ui-p-slliw \ rv64ui-p-sllw \ rv64ui-p-slt \ rv64ui-p-slti \ rv64ui-p-sltiu \ rv64ui-p-sltu \ rv64ui-p-sra \ rv64ui-p-srai \ rv64ui-p-sraiw \ rv64ui-p-sraw \ rv64ui-p-srliw \ rv64ui-p-srlw \ rv64ui-p-sub \ rv64ui-p-subw \ rv64ui-p-xor \ rv64ui-p-xori \ rv64uf-p-ldst \ rv64uf-p-move \ rv64uf-p-fsgnj \ rv64uf-p-fcmp \ rv64uf-p-fcvt \ rv64uf-p-fcvt_w \ rv64uf-p-fadd \ rv64uf-p-fmin \ rv64uf-p-fmadd \ rv64uf-p-structural \ rv64si-pm-ipi \ rv64ui-pm-lrsc \ asm_v_tests = \ rv64ui-v-add \ rv64ui-v-addi \ rv64ui-v-amoadd_d \ rv64ui-v-amoadd_w \ rv64ui-v-amoand_d \ rv64ui-v-amoand_w \ rv64ui-v-amoor_d \ rv64ui-v-amoor_w \ rv64ui-v-amoxor_d \ rv64ui-v-amoxor_w \ rv64ui-v-amoswap_d \ rv64ui-v-amoswap_w \ rv64ui-v-amomax_d \ rv64ui-v-amomax_w \ rv64ui-v-amomaxu_d \ rv64ui-v-amomaxu_w \ rv64ui-v-amomin_d \ rv64ui-v-amomin_w \ rv64ui-v-amominu_d \ rv64ui-v-amominu_w \ rv64ui-v-auipc \ rv64ui-v-fence_i \ rv64ui-v-sb \ rv64ui-v-sd \ rv64ui-v-sh \ rv64ui-v-sw \ rv64ui-v-addiw \ rv64ui-v-addw \ rv64ui-v-and \ rv64ui-v-andi \ rv64ui-v-beq \ rv64ui-v-bge \ rv64ui-v-bgeu \ rv64ui-v-blt \ rv64ui-v-bltu \ rv64ui-v-bne \ rv64ui-v-div \ rv64ui-v-divu \ rv64ui-v-divuw \ rv64ui-v-divw \ rv64ui-v-j \ rv64ui-v-jal \ rv64ui-v-jalr \ rv64ui-v-lb \ rv64ui-v-lbu \ rv64ui-v-ld \ rv64ui-v-lh \ rv64ui-v-lhu \ rv64ui-v-lui \ rv64ui-v-lw \ rv64ui-v-lwu \ rv64ui-v-mul \ rv64ui-v-mulh \ rv64ui-v-mulhsu \ rv64ui-v-mulhu \ rv64ui-v-mulw \ rv64ui-v-or \ rv64ui-v-ori \ rv64ui-v-rem \ rv64ui-v-remu \ rv64ui-v-remuw \ rv64ui-v-remw \ rv64ui-v-sll \ rv64ui-v-slli \ rv64ui-v-slliw \ rv64ui-v-sllw \ rv64ui-v-slt \ rv64ui-v-slti \ rv64ui-v-sltiu \ rv64ui-v-sltu \ rv64ui-v-sra \ rv64ui-v-srai \ rv64ui-v-sraiw \ rv64ui-v-sraw \ rv64ui-v-srliw \ rv64ui-v-srlw \ rv64ui-v-sub \ rv64ui-v-subw \ rv64ui-v-xor \ rv64ui-v-xori \ rv64uf-v-ldst \ rv64uf-v-move \ rv64uf-v-fsgnj \ rv64uf-v-fcmp \ rv64uf-v-fcvt \ rv64uf-v-fcvt_w \ rv64uf-v-fadd \ rv64uf-v-fmin \ rv64uf-v-fmadd \ rv64uf-v-structural \ vecasm_p_tests = \ rv64uv-p-wakeup \ rv64uv-p-fence \ rv64uv-p-utidx \ rv64uv-p-vmsv \ rv64uv-p-vmvv \ rv64uv-p-vfmvv \ rv64uv-p-movz \ rv64uv-p-movn \ rv64uv-p-fmovz \ rv64uv-p-fmovn \ rv64uv-p-ld \ rv64uv-p-lw \ rv64uv-p-lwu \ rv64uv-p-lh \ rv64uv-p-lhu \ rv64uv-p-lb \ rv64uv-p-lbu \ rv64uv-p-sd \ rv64uv-p-sw \ rv64uv-p-sh \ rv64uv-p-sb \ rv64uv-p-fld \ rv64uv-p-flw \ rv64uv-p-fsd \ rv64uv-p-fsw \ rv64uv-p-fcvt \ rv64uv-p-vvadd_d \ rv64uv-p-vvadd_fw \ rv64uv-p-vvadd_fd \ rv64uv-p-vvadd_w \ rv64uv-p-vvmul_d \ rv64uv-p-amoadd_d \ rv64uv-p-amoswap_d \ rv64uv-p-amoand_d \ rv64uv-p-amoor_d \ rv64uv-p-amomax_d \ rv64uv-p-amomin_d \ rv64uv-p-amomaxu_d \ rv64uv-p-amominu_d \ rv64uv-p-amoadd_w \ rv64uv-p-amoswap_w \ rv64uv-p-amoand_w \ rv64uv-p-amoor_w \ rv64uv-p-amomax_w \ rv64uv-p-amomin_w \ rv64uv-p-amomaxu_w \ rv64uv-p-amominu_w \ rv64uv-p-imul \ rv64uv-p-fma \ rv64ui-p-vec-mul \ rv64ui-p-vec-mulw \ rv64ui-p-vec-mulh \ rv64ui-p-vec-mulhu \ rv64ui-p-vec-mulhsu \ rv64ui-p-vec-addi \ rv64ui-p-vec-add \ rv64ui-p-vec-addiw \ rv64ui-p-vec-addw \ rv64ui-p-vec-and \ rv64ui-p-vec-andi \ rv64ui-p-vec-lui \ rv64ui-p-vec-or \ rv64ui-p-vec-ori \ rv64ui-p-vec-slt \ rv64ui-p-vec-sltu \ rv64ui-p-vec-slti \ rv64ui-p-vec-sltiu \ rv64ui-p-vec-slli \ rv64ui-p-vec-sll \ rv64ui-p-vec-slliw \ rv64ui-p-vec-sllw \ rv64ui-p-vec-srai \ rv64ui-p-vec-sra \ rv64ui-p-vec-sraiw \ rv64ui-p-vec-sraw \ rv64ui-p-vec-srli \ rv64ui-p-vec-srl \ rv64ui-p-vec-srliw \ rv64ui-p-vec-srlw \ rv64ui-p-vec-sub \ rv64ui-p-vec-subw \ rv64ui-p-vec-xor \ rv64ui-p-vec-xori \ rv64uf-p-vec-fadd \ rv64uf-p-vec-fsgnj \ rv64uf-p-vec-fmin \ rv64uf-p-vec-fmadd \ rv64uf-p-vec-fcvt_w \ rv64uf-p-vec-fcvt \ rv64uf-p-vec-fcmp \ rv64sv-p-illegal_tvec_cmd \ rv64sv-p-illegal_tvec_regid \ rv64sv-p-illegal_vt_inst \ rv64sv-p-illegal_vt_regid \ rv64sv-p-ma_utld \ rv64sv-p-ma_utsd \ rv64sv-p-ma_vld \ rv64sv-p-ma_vsd \ rv64sv-p-ma_vt_inst \ vecasm_v_tests = \ rv64uv-v-wakeup \ rv64uv-v-fence \ rv64uv-v-utidx \ rv64uv-v-vmsv \ rv64uv-v-vmvv \ rv64uv-v-vfmvv \ rv64uv-v-movz \ rv64uv-v-movn \ rv64uv-v-fmovz \ rv64uv-v-fmovn \ rv64uv-v-ld \ rv64uv-v-lw \ rv64uv-v-lwu \ rv64uv-v-lh \ rv64uv-v-lhu \ rv64uv-v-lb \ rv64uv-v-lbu \ rv64uv-v-sd \ rv64uv-v-sw \ rv64uv-v-sh \ rv64uv-v-sb \ rv64uv-v-fld \ rv64uv-v-flw \ rv64uv-v-fsd \ rv64uv-v-fsw \ rv64uv-v-fcvt \ rv64uv-v-vvadd_d \ rv64uv-v-vvadd_fw \ rv64uv-v-vvadd_fd \ rv64uv-v-vvadd_w \ rv64uv-v-vvmul_d \ rv64uv-v-amoadd_d \ rv64uv-v-amoswap_d \ rv64uv-v-amoand_d \ rv64uv-v-amoor_d \ rv64uv-v-amomax_d \ rv64uv-v-amomin_d \ rv64uv-v-amomaxu_d \ rv64uv-v-amominu_d \ rv64uv-v-amoadd_w \ rv64uv-v-amoswap_w \ rv64uv-v-amoand_w \ rv64uv-v-amoor_w \ rv64uv-v-amomax_w \ rv64uv-v-amomin_w \ rv64uv-v-amomaxu_w \ rv64uv-v-amominu_w \ rv64uv-v-imul \ rv64uv-v-fma \ rv64ui-v-vec-mul \ rv64ui-v-vec-mulw \ rv64ui-v-vec-mulh \ rv64ui-v-vec-mulhu \ rv64ui-v-vec-mulhsu \ rv64ui-v-vec-addi \ rv64ui-v-vec-add \ rv64ui-v-vec-addiw \ rv64ui-v-vec-addw \ rv64ui-v-vec-and \ rv64ui-v-vec-andi \ rv64ui-v-vec-lui \ rv64ui-v-vec-or \ rv64ui-v-vec-ori \ rv64ui-v-vec-slt \ rv64ui-v-vec-sltu \ rv64ui-v-vec-slti \ rv64ui-v-vec-sltiu \ rv64ui-v-vec-slli \ rv64ui-v-vec-sll \ rv64ui-v-vec-slliw \ rv64ui-v-vec-sllw \ rv64ui-v-vec-srai \ rv64ui-v-vec-sra \ rv64ui-v-vec-sraiw \ rv64ui-v-vec-sraw \ rv64ui-v-vec-srli \ rv64ui-v-vec-srl \ rv64ui-v-vec-srliw \ rv64ui-v-vec-srlw \ rv64ui-v-vec-sub \ rv64ui-v-vec-subw \ rv64ui-v-vec-xor \ rv64ui-v-vec-xori \ rv64uf-v-vec-fadd \ rv64uf-v-vec-fsgnj \ rv64uf-v-vec-fmin \ rv64uf-v-vec-fmadd \ rv64uf-v-vec-fcvt_w \ rv64uf-v-vec-fcvt \ rv64uf-v-vec-fcmp \ vecasm_pt_tests = \ rv64uv-pt-wakeup \ rv64uv-pt-fence \ rv64uv-pt-vvadd_d \ rv64uv-pt-vvadd_fw \ rv64uv-pt-vvadd_fd \ rv64uv-pt-vvadd_w \ rv64uv-pt-vvmul_d \ rv64uv-pt-fcvt \ rv64uv-pt-utidx \ rv64uv-pt-vmvv \ rv64uv-pt-vmsv \ rv64uv-pt-vfmvv \ rv64uv-pt-movz \ rv64uv-pt-movn \ rv64uv-pt-fmovz \ rv64uv-pt-fmovn \ rv64uv-pt-ld \ rv64uv-pt-lw \ rv64uv-pt-lwu \ rv64uv-pt-lh \ rv64uv-pt-lhu \ rv64uv-pt-lb \ rv64uv-pt-lbu \ rv64uv-pt-sd \ rv64uv-pt-sw \ rv64uv-pt-sh \ rv64uv-pt-sb \ rv64uv-pt-fld \ rv64uv-pt-flw \ rv64uv-pt-fsd \ rv64uv-pt-fsw \ rv64uv-pt-amoadd_d \ rv64uv-pt-amoswap_d \ rv64uv-pt-amoand_d \ rv64uv-pt-amoor_d \ rv64uv-pt-amomax_d \ rv64uv-pt-amomin_d \ rv64uv-pt-amomaxu_d \ rv64uv-pt-amominu_d \ rv64uv-pt-amoadd_w \ rv64uv-pt-amoswap_w \ rv64uv-pt-amoand_w \ rv64uv-pt-amoor_w \ rv64uv-pt-amomax_w \ rv64uv-pt-amomin_w \ rv64uv-pt-amomaxu_w \ rv64uv-pt-amominu_w \ rv64uv-pt-imul \ rv64uv-pt-fma \ rv64ui-pt-vec-mul \ rv64ui-pt-vec-mulw \ rv64ui-pt-vec-mulh \ rv64ui-pt-vec-mulhu \ rv64ui-pt-vec-mulhsu \ rv64ui-pt-vec-addi \ rv64ui-pt-vec-add \ rv64ui-pt-vec-addiw \ rv64ui-pt-vec-addw \ rv64ui-pt-vec-and \ rv64ui-pt-vec-andi \ rv64ui-pt-vec-lui \ rv64ui-pt-vec-or \ rv64ui-pt-vec-ori \ rv64ui-pt-vec-slt \ rv64ui-pt-vec-sltu \ rv64ui-pt-vec-slti \ rv64ui-pt-vec-sltiu \ rv64ui-pt-vec-slli \ rv64ui-pt-vec-sll \ rv64ui-pt-vec-slliw \ rv64ui-pt-vec-sllw \ rv64ui-pt-vec-srai \ rv64ui-pt-vec-sra \ rv64ui-pt-vec-sraiw \ rv64ui-pt-vec-sraw \ rv64ui-pt-vec-srli \ rv64ui-pt-vec-srl \ rv64ui-pt-vec-srliw \ rv64ui-pt-vec-srlw \ rv64ui-pt-vec-sub \ rv64ui-pt-vec-subw \ rv64ui-pt-vec-xor \ rv64ui-pt-vec-xori \ rv64uf-pt-vec-fadd \ rv64uf-pt-vec-fsgnj \ rv64uf-pt-vec-fmin \ rv64uf-pt-vec-fmadd \ rv64uf-pt-vec-fcvt_w \ rv64uf-pt-vec-fcvt \ rv64uf-pt-vec-fcmp \ # Globally installed benchmarks bmarkdir = $(base_dir)/riscv-tests/benchmarks bmarks = \ median.riscv \ multiply.riscv \ qsort.riscv \ towers.riscv \ vvadd.riscv \ dgemm.riscv \ dhrystone.riscv \ spmv.riscv \ #vec-vvadd.riscv \ #vec-cmplxmult.riscv \ #vec-matmul.riscv \ #mt-vvadd.riscv \ #mt-matmul.riscv \ vec_bmarkdir = $(base_dir)/../../riscv-app/misc/build vec_bmarks = \ ubmark-vvadd \ ubmark-bin-search \ ubmark-cmplx-mult \ ubmark-masked-filter \ mt_bmarkdir = $(base_dir)/riscv-tests/mt mt_bmarks = \ ab_matmul.riscv\ ab_vvadd.riscv\ ad_matmul.riscv\ ad_vvadd.riscv\ ae_matmul.riscv\ ae_vvadd.riscv\ af_matmul.riscv\ af_vvadd.riscv\ ag_matmul.riscv\ ag_vvadd.riscv\ ai_matmul.riscv\ ai_vvadd.riscv\ aj_vvadd.riscv\ ak_matmul.riscv\ ak_vvadd.riscv\ al_matmul.riscv\ al_vvadd.riscv\ am_matmul.riscv\ am_vvadd.riscv\ an_matmul.riscv\ ap_matmul.riscv\ ap_vvadd.riscv\ aq_matmul.riscv\ aq_vvadd.riscv\ ar_matmul.riscv\ ar_vvadd.riscv\ as_matmul.riscv\ as_vvadd.riscv\ at_matmul.riscv\ at_vvadd.riscv\ av_matmul.riscv\ av_vvadd.riscv\ ay_matmul.riscv\ ay_vvadd.riscv\ az_matmul.riscv\ az_vvadd.riscv\ ba_matmul.riscv\ ba_vvadd.riscv\ bb_matmul.riscv\ bb_vvadd.riscv\ bc_matmul.riscv\ bc_vvadd.riscv\ be_matmul.riscv\ be_vvadd.riscv\ bf_matmul.riscv\ bf_vvadd.riscv\ bh_matmul.riscv\ bh_vvadd.riscv\ bj_matmul.riscv\ bj_vvadd.riscv\ bk_matmul.riscv\ bk_vvadd.riscv\ bm_matmul.riscv\ bm_vvadd.riscv\ bn_matmul.riscv\ bn_vvadd.riscv\ bo_matmul.riscv\ bo_vvadd.riscv\ bp_matmul.riscv\ bp_vvadd.riscv\ br_matmul.riscv\ br_vvadd.riscv\ bs_matmul.riscv\ bs_vvadd.riscv\ bt_matmul.riscv\ bt_vvadd.riscv\