From 671d4a9b3d613c82473e4a834efc26561aa2d7b2 Mon Sep 17 00:00:00 2001 From: Abdul Wadood Date: Tue, 20 Jun 2023 16:21:48 +0500 Subject: [PATCH 1/7] Added compressed load type tests from zcb ext. Signed-off-by: Abdul Wadood --- riscv-test-suite/rv32i_m/C/src/clbu-01.S | 132 +++++++++++++++++++++++ riscv-test-suite/rv32i_m/C/src/clh-01.S | 127 ++++++++++++++++++++++ riscv-test-suite/rv32i_m/C/src/clhu-01.S | 127 ++++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/clbu-01.S | 127 ++++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/clh-01.S | 127 ++++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/clhu-01.S | 127 ++++++++++++++++++++++ 6 files changed, 767 insertions(+) create mode 100644 riscv-test-suite/rv32i_m/C/src/clbu-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/clh-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/clhu-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/clbu-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/clh-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/clhu-01.S diff --git a/riscv-test-suite/rv32i_m/C/src/clbu-01.S b/riscv-test-suite/rv32i_m/C/src/clbu-01.S new file mode 100644 index 000000000..afaac9684 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/clbu-01.S @@ -0,0 +1,132 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.lbu instruction of the RISC-V RV32_Zca_Zcb extension for the clbu covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",clbu) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rd, rd==x10, rs1==x14, imm_val == 0, +// opcode: c.lbu; op1:x14; dest:x10; immval:0x0 +TEST_LOAD(x1,x2,0,x14,x10,0x0,0*XLEN/8,c.lbu,0) + +inst_1: +// rs1 == rd, rd==x13, rs1==x13, imm_val == 1, +// opcode: c.lbu; op1:x13; dest:x13; immval:0x1 +TEST_LOAD(x1,x2,0,x13,x13,0x1,1*XLEN/8,c.lbu,0) + +inst_2: +// rd==x11, rs1==x10, imm_val == 2, +// opcode: c.lbu; op1:x10; dest:x11; immval:0x2 +TEST_LOAD(x1,x2,0,x10,x11,0x2,2*XLEN/8,c.lbu,0) + +inst_3: +// rd==x12, rs1==x15, imm_val == 3, +// opcode: c.lbu; op1:x15; dest:x12; immval:0x3 +TEST_LOAD(x1,x2,0,x15,x12,0x3,3*XLEN/8,c.lbu,0) + +inst_4: +// rd==x15, rs1==x11, +// opcode: c.lbu; op1:x11; dest:x15; immval:0x0 +TEST_LOAD(x1,x2,0,x11,x15,0x0,4*XLEN/8,c.lbu,0) + +inst_5: +// rd==x9, rs1==x12, +// opcode: c.lbu; op1:x12; dest:x9; immval:0x0 +TEST_LOAD(x1,x2,0,x12,x9,0x0,5*XLEN/8,c.lbu,0) + +inst_6: +// rd==x14, rs1==x9, +// opcode: c.lbu; op1:x9; dest:x14; immval:0x0 +TEST_LOAD(x1,x2,0,x9,x14,0x0,6*XLEN/8,c.lbu,0) + +inst_7: +// rd==x8, +// opcode: c.lbu; op1:x12; dest:x8; immval:0x0 +TEST_LOAD(x1,x2,0,x12,x8,0x0,7*XLEN/8,c.lbu,0) + +inst_8: +// rs1==x8, +// opcode: c.lbu; op1:x8; dest:x14; immval:0x0 +TEST_LOAD(x1,x2,0,x8,x14,0x0,8*XLEN/8,c.lbu,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 9*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/clh-01.S b/riscv-test-suite/rv32i_m/C/src/clh-01.S new file mode 100644 index 000000000..eaeb99ad8 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/clh-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.lh instruction of the RISC-V RV32_Zca_Zcb extension for the clh covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",clh) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rd, rd==x14, rs1==x11, imm_val == 0, +// opcode: c.lh; op1:x11; dest:x14; immval:0x0 +TEST_LOAD(x1,x2,0,x11,x14,0x0,0*XLEN/8,c.lh,0) + +inst_1: +// rs1 == rd, rd==x13, rs1==x13, imm_val == 2, +// opcode: c.lh; op1:x13; dest:x13; immval:0x2 +TEST_LOAD(x1,x2,0,x13,x13,0x2,1*XLEN/8,c.lh,0) + +inst_2: +// rd==x12, rs1==x9, +// opcode: c.lh; op1:x9; dest:x12; immval:0x0 +TEST_LOAD(x1,x2,0,x9,x12,0x0,2*XLEN/8,c.lh,0) + +inst_3: +// rd==x15, rs1==x8, +// opcode: c.lh; op1:x8; dest:x15; immval:0x0 +TEST_LOAD(x1,x2,0,x8,x15,0x0,3*XLEN/8,c.lh,0) + +inst_4: +// rd==x11, rs1==x10, +// opcode: c.lh; op1:x10; dest:x11; immval:0x0 +TEST_LOAD(x1,x2,0,x10,x11,0x0,4*XLEN/8,c.lh,0) + +inst_5: +// rd==x8, rs1==x14, +// opcode: c.lh; op1:x14; dest:x8; immval:0x0 +TEST_LOAD(x1,x2,0,x14,x8,0x0,5*XLEN/8,c.lh,0) + +inst_6: +// rd==x9, rs1==x12, +// opcode: c.lh; op1:x12; dest:x9; immval:0x0 +TEST_LOAD(x1,x2,0,x12,x9,0x0,6*XLEN/8,c.lh,0) + +inst_7: +// rd==x10, rs1==x15, +// opcode: c.lh; op1:x15; dest:x10; immval:0x0 +TEST_LOAD(x1,x2,0,x15,x10,0x0,7*XLEN/8,c.lh,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/clhu-01.S b/riscv-test-suite/rv32i_m/C/src/clhu-01.S new file mode 100644 index 000000000..2f86a9032 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/clhu-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.lhu instruction of the RISC-V RV32_Zca_Zcb extension for the clhu covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",clhu) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rd, rd==x9, rs1==x14, imm_val == 0, +// opcode: c.lhu; op1:x14; dest:x9; immval:0x0 +TEST_LOAD(x1,x2,0,x14,x9,0x0,0*XLEN/8,c.lhu,0) + +inst_1: +// rs1 == rd, rd==x8, rs1==x8, imm_val == 2, +// opcode: c.lhu; op1:x8; dest:x8; immval:0x2 +TEST_LOAD(x1,x2,0,x8,x8,0x2,1*XLEN/8,c.lhu,0) + +inst_2: +// rd==x13, rs1==x11, +// opcode: c.lhu; op1:x11; dest:x13; immval:0x0 +TEST_LOAD(x1,x2,0,x11,x13,0x0,2*XLEN/8,c.lhu,0) + +inst_3: +// rd==x14, rs1==x12, +// opcode: c.lhu; op1:x12; dest:x14; immval:0x0 +TEST_LOAD(x1,x2,0,x12,x14,0x0,3*XLEN/8,c.lhu,0) + +inst_4: +// rd==x11, rs1==x13, +// opcode: c.lhu; op1:x13; dest:x11; immval:0x0 +TEST_LOAD(x1,x2,0,x13,x11,0x0,4*XLEN/8,c.lhu,0) + +inst_5: +// rd==x12, rs1==x15, +// opcode: c.lhu; op1:x15; dest:x12; immval:0x0 +TEST_LOAD(x1,x2,0,x15,x12,0x0,5*XLEN/8,c.lhu,0) + +inst_6: +// rd==x15, rs1==x10, +// opcode: c.lhu; op1:x10; dest:x15; immval:0x0 +TEST_LOAD(x1,x2,0,x10,x15,0x0,6*XLEN/8,c.lhu,0) + +inst_7: +// rd==x10, rs1==x9, +// opcode: c.lhu; op1:x9; dest:x10; immval:0x0 +TEST_LOAD(x1,x2,0,x9,x10,0x0,7*XLEN/8,c.lhu,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/clbu-01.S b/riscv-test-suite/rv64i_m/C/src/clbu-01.S new file mode 100644 index 000000000..fbd3c4300 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/clbu-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.lbu instruction of the RISC-V RV64_Zca_Zcb extension for the clbu covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",clbu) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rd==x12, rs1==x12, imm_val == 0, +// opcode: c.lbu; op1:x12; dest:x12; immval:0x0 +TEST_LOAD(x1,x2,0,x12,x12,0x0,0*XLEN/8,c.lbu,0) + +inst_1: +// rs1 != rd, rd==x15, rs1==x13, imm_val == 1, +// opcode: c.lbu; op1:x13; dest:x15; immval:0x1 +TEST_LOAD(x1,x2,0,x13,x15,0x1,1*XLEN/8,c.lbu,0) + +inst_2: +// rd==x14, rs1==x9, imm_val == 2, +// opcode: c.lbu; op1:x9; dest:x14; immval:0x2 +TEST_LOAD(x1,x2,0,x9,x14,0x2,2*XLEN/8,c.lbu,0) + +inst_3: +// rd==x9, rs1==x11, imm_val == 3, +// opcode: c.lbu; op1:x11; dest:x9; immval:0x3 +TEST_LOAD(x1,x2,0,x11,x9,0x3,3*XLEN/8,c.lbu,0) + +inst_4: +// rd==x11, rs1==x10, +// opcode: c.lbu; op1:x10; dest:x11; immval:0x0 +TEST_LOAD(x1,x2,0,x10,x11,0x0,4*XLEN/8,c.lbu,0) + +inst_5: +// rd==x8, rs1==x14, +// opcode: c.lbu; op1:x14; dest:x8; immval:0x0 +TEST_LOAD(x1,x2,0,x14,x8,0x0,5*XLEN/8,c.lbu,0) + +inst_6: +// rd==x13, rs1==x15, +// opcode: c.lbu; op1:x15; dest:x13; immval:0x0 +TEST_LOAD(x1,x2,0,x15,x13,0x0,6*XLEN/8,c.lbu,0) + +inst_7: +// rd==x10, rs1==x8, +// opcode: c.lbu; op1:x8; dest:x10; immval:0x0 +TEST_LOAD(x1,x2,0,x8,x10,0x0,7*XLEN/8,c.lbu,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/clh-01.S b/riscv-test-suite/rv64i_m/C/src/clh-01.S new file mode 100644 index 000000000..398e7eb53 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/clh-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.lh instruction of the RISC-V RV64_Zca_Zcb extension for the clh covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",clh) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rd==x11, rs1==x11, imm_val == 0, +// opcode: c.lh; op1:x11; dest:x11; immval:0x0 +TEST_LOAD(x1,x2,0,x11,x11,0x0,0*XLEN/8,c.lh,0) + +inst_1: +// rs1 != rd, rd==x9, rs1==x10, imm_val == 2, +// opcode: c.lh; op1:x10; dest:x9; immval:0x2 +TEST_LOAD(x1,x2,0,x10,x9,0x2,1*XLEN/8,c.lh,0) + +inst_2: +// rd==x10, rs1==x8, +// opcode: c.lh; op1:x8; dest:x10; immval:0x0 +TEST_LOAD(x1,x2,0,x8,x10,0x0,2*XLEN/8,c.lh,0) + +inst_3: +// rd==x12, rs1==x15, +// opcode: c.lh; op1:x15; dest:x12; immval:0x0 +TEST_LOAD(x1,x2,0,x15,x12,0x0,3*XLEN/8,c.lh,0) + +inst_4: +// rd==x8, rs1==x14, +// opcode: c.lh; op1:x14; dest:x8; immval:0x0 +TEST_LOAD(x1,x2,0,x14,x8,0x0,4*XLEN/8,c.lh,0) + +inst_5: +// rd==x13, rs1==x9, +// opcode: c.lh; op1:x9; dest:x13; immval:0x0 +TEST_LOAD(x1,x2,0,x9,x13,0x0,5*XLEN/8,c.lh,0) + +inst_6: +// rd==x15, rs1==x12, +// opcode: c.lh; op1:x12; dest:x15; immval:0x0 +TEST_LOAD(x1,x2,0,x12,x15,0x0,6*XLEN/8,c.lh,0) + +inst_7: +// rd==x14, rs1==x13, +// opcode: c.lh; op1:x13; dest:x14; immval:0x0 +TEST_LOAD(x1,x2,0,x13,x14,0x0,7*XLEN/8,c.lh,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/clhu-01.S b/riscv-test-suite/rv64i_m/C/src/clhu-01.S new file mode 100644 index 000000000..048009253 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/clhu-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.lhu instruction of the RISC-V RV64_Zca_Zcb extension for the clhu covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",clhu) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rd==x14, rs1==x14, imm_val == 0, +// opcode: c.lhu; op1:x14; dest:x14; immval:0x0 +TEST_LOAD(x1,x2,0,x14,x14,0x0,0*XLEN/8,c.lhu,0) + +inst_1: +// rs1 != rd, rd==x9, rs1==x12, imm_val == 2, +// opcode: c.lhu; op1:x12; dest:x9; immval:0x2 +TEST_LOAD(x1,x2,0,x12,x9,0x2,1*XLEN/8,c.lhu,0) + +inst_2: +// rd==x8, rs1==x9, +// opcode: c.lhu; op1:x9; dest:x8; immval:0x0 +TEST_LOAD(x1,x2,0,x9,x8,0x0,2*XLEN/8,c.lhu,0) + +inst_3: +// rd==x13, rs1==x15, +// opcode: c.lhu; op1:x15; dest:x13; immval:0x0 +TEST_LOAD(x1,x2,0,x15,x13,0x0,3*XLEN/8,c.lhu,0) + +inst_4: +// rd==x11, rs1==x10, +// opcode: c.lhu; op1:x10; dest:x11; immval:0x0 +TEST_LOAD(x1,x2,0,x10,x11,0x0,4*XLEN/8,c.lhu,0) + +inst_5: +// rd==x10, rs1==x13, +// opcode: c.lhu; op1:x13; dest:x10; immval:0x0 +TEST_LOAD(x1,x2,0,x13,x10,0x0,5*XLEN/8,c.lhu,0) + +inst_6: +// rd==x12, rs1==x8, +// opcode: c.lhu; op1:x8; dest:x12; immval:0x0 +TEST_LOAD(x1,x2,0,x8,x12,0x0,6*XLEN/8,c.lhu,0) + +inst_7: +// rd==x15, rs1==x11, +// opcode: c.lhu; op1:x11; dest:x15; immval:0x0 +TEST_LOAD(x1,x2,0,x11,x15,0x0,7*XLEN/8,c.lhu,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END From 5052b5c518fbf050ffe0e2c903d1d74a0d4388e3 Mon Sep 17 00:00:00 2001 From: Abdul Wadood Date: Tue, 20 Jun 2023 16:23:57 +0500 Subject: [PATCH 2/7] Added compressed store type tests from zcb ext. Signed-off-by: Abdul Wadood --- riscv-test-suite/rv32i_m/C/src/csb-01.S | 127 +++++++++++++++++++++++ riscv-test-suite/rv32i_m/C/src/csh-01.S | 127 +++++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/csb-01.S | 132 ++++++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/csh-01.S | 127 +++++++++++++++++++++++ 4 files changed, 513 insertions(+) create mode 100644 riscv-test-suite/rv32i_m/C/src/csb-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/csh-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/csb-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/csh-01.S diff --git a/riscv-test-suite/rv32i_m/C/src/csb-01.S b/riscv-test-suite/rv32i_m/C/src/csb-01.S new file mode 100644 index 000000000..55fe9c3a5 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/csb-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sb instruction of the RISC-V RV32_Zca_Zcb extension for the csb covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",csb) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rs2, rs1==x15, rs2==x12, imm_val == 0, +// opcode:c.sb; op1:x15; op2:x12; op2val:-0x4001; immval:0x0 +TEST_STORE(x1,x2,0,x15,x12,-0x4001,0x0,0*XLEN/8,c.sb,0) + +inst_1: +// rs1==x13, rs2==x15, imm_val == 1, +// opcode:c.sb; op1:x13; op2:x15; op2val:-0x40000000; immval:0x1 +TEST_STORE(x1,x2,0,x13,x15,-0x40000000,0x1,1*XLEN/8,c.sb,0) + +inst_2: +// rs1==x10, rs2==x9, imm_val == 2, +// opcode:c.sb; op1:x10; op2:x9; op2val:0x400000; immval:0x2 +TEST_STORE(x1,x2,0,x10,x9,0x400000,0x2,2*XLEN/8,c.sb,0) + +inst_3: +// rs1==x14, rs2==x10, imm_val == 3, +// opcode:c.sb; op1:x14; op2:x10; op2val:-0x100001; immval:0x3 +TEST_STORE(x1,x2,0,x14,x10,-0x100001,0x3,3*XLEN/8,c.sb,0) + +inst_4: +// rs1==x12, rs2==x11, +// opcode:c.sb; op1:x12; op2:x11; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x12,x11,-0x80000000,0x0,4*XLEN/8,c.sb,0) + +inst_5: +// rs1==x11, rs2==x8, +// opcode:c.sb; op1:x11; op2:x8; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x11,x8,-0x80000000,0x0,5*XLEN/8,c.sb,0) + +inst_6: +// rs1==x8, rs2==x13, +// opcode:c.sb; op1:x8; op2:x13; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x8,x13,-0x80000000,0x0,6*XLEN/8,c.sb,0) + +inst_7: +// rs1==x9, rs2==x14, +// opcode:c.sb; op1:x9; op2:x14; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x9,x14,-0x80000000,0x0,7*XLEN/8,c.sb,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/csh-01.S b/riscv-test-suite/rv32i_m/C/src/csh-01.S new file mode 100644 index 000000000..92827c6de --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/csh-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sh instruction of the RISC-V RV32_Zca_Zcb extension for the csh covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",csh) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rs2, rs1==x15, rs2==x10, imm_val == 0, +// opcode:c.sh; op1:x15; op2:x10; op2val:-0x6; immval:0x0 +TEST_STORE(x1,x2,0,x15,x10,-0x6,0x0,0*XLEN/8,c.sh,0) + +inst_1: +// rs1==x12, rs2==x15, imm_val == 2, +// opcode:c.sh; op1:x12; op2:x15; op2val:-0x1001; immval:0x2 +TEST_STORE(x1,x2,0,x12,x15,-0x1001,0x2,1*XLEN/8,c.sh,0) + +inst_2: +// rs1==x9, rs2==x12, +// opcode:c.sh; op1:x9; op2:x12; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x9,x12,-0x80000000,0x0,2*XLEN/8,c.sh,0) + +inst_3: +// rs1==x11, rs2==x9, +// opcode:c.sh; op1:x11; op2:x9; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x11,x9,-0x80000000,0x0,3*XLEN/8,c.sh,0) + +inst_4: +// rs1==x8, rs2==x11, +// opcode:c.sh; op1:x8; op2:x11; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x8,x11,-0x80000000,0x0,4*XLEN/8,c.sh,0) + +inst_5: +// rs1==x13, rs2==x14, +// opcode:c.sh; op1:x13; op2:x14; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x13,x14,-0x80000000,0x0,5*XLEN/8,c.sh,0) + +inst_6: +// rs1==x14, rs2==x8, +// opcode:c.sh; op1:x14; op2:x8; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x14,x8,-0x80000000,0x0,6*XLEN/8,c.sh,0) + +inst_7: +// rs1==x10, rs2==x13, +// opcode:c.sh; op1:x10; op2:x13; op2val:-0x80000000; immval:0x0 +TEST_STORE(x1,x2,0,x10,x13,-0x80000000,0x0,7*XLEN/8,c.sh,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/csb-01.S b/riscv-test-suite/rv64i_m/C/src/csb-01.S new file mode 100644 index 000000000..a6d0b7a10 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/csb-01.S @@ -0,0 +1,132 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sb instruction of the RISC-V RV64_Zca_Zcb extension for the csb covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",csb) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rs2, rs1==x10, rs2==x8, imm_val == 0, +// opcode:c.sb; op1:x10; op2:x8; op2val:-0x41; immval:0x0 +TEST_STORE(x1,x2,0,x10,x8,-0x41,0x0,0*XLEN/8,c.sb,0) + +inst_1: +// rs1==x11, rs2==x10, imm_val == 1, +// opcode:c.sb; op1:x11; op2:x10; op2val:-0x10001; immval:0x1 +TEST_STORE(x1,x2,0,x11,x10,-0x10001,0x1,1*XLEN/8,c.sb,0) + +inst_2: +// rs1==x15, rs2==x11, imm_val == 2, +// opcode:c.sb; op1:x15; op2:x11; op2val:0x1000000000000000; immval:0x2 +TEST_STORE(x1,x2,0,x15,x11,0x1000000000000000,0x2,2*XLEN/8,c.sb,0) + +inst_3: +// rs1==x13, rs2==x15, imm_val == 3, +// opcode:c.sb; op1:x13; op2:x15; op2val:-0x4000000000000000; immval:0x3 +TEST_STORE(x1,x2,0,x13,x15,-0x4000000000000000,0x3,3*XLEN/8,c.sb,0) + +inst_4: +// rs1==x9, rs2==x14, +// opcode:c.sb; op1:x9; op2:x14; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x9,x14,0x0,0x0,4*XLEN/8,c.sb,0) + +inst_5: +// rs1==x14, rs2==x9, +// opcode:c.sb; op1:x14; op2:x9; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x14,x9,0x0,0x0,5*XLEN/8,c.sb,0) + +inst_6: +// rs1==x8, rs2==x13, +// opcode:c.sb; op1:x8; op2:x13; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x8,x13,0x0,0x0,6*XLEN/8,c.sb,0) + +inst_7: +// rs1==x12, +// opcode:c.sb; op1:x12; op2:x13; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x12,x13,0x0,0x0,7*XLEN/8,c.sb,0) + +inst_8: +// rs2==x12, +// opcode:c.sb; op1:x9; op2:x12; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x9,x12,0x0,0x0,8*XLEN/8,c.sb,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 9*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/csh-01.S b/riscv-test-suite/rv64i_m/C/src/csh-01.S new file mode 100644 index 000000000..00a6f756c --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/csh-01.S @@ -0,0 +1,127 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sh instruction of the RISC-V RV64_Zca_Zcb extension for the csh covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",csh) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rs2, rs1==x11, rs2==x13, imm_val == 0, +// opcode:c.sh; op1:x11; op2:x13; op2val:-0x800000001; immval:0x0 +TEST_STORE(x1,x2,0,x11,x13,-0x800000001,0x0,0*XLEN/8,c.sh,0) + +inst_1: +// rs1==x10, rs2==x9, imm_val == 2, +// opcode:c.sh; op1:x10; op2:x9; op2val:0x2000000000; immval:0x2 +TEST_STORE(x1,x2,0,x10,x9,0x2000000000,0x2,1*XLEN/8,c.sh,0) + +inst_2: +// rs1==x9, rs2==x12, +// opcode:c.sh; op1:x9; op2:x12; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x9,x12,0x0,0x0,2*XLEN/8,c.sh,0) + +inst_3: +// rs1==x13, rs2==x14, +// opcode:c.sh; op1:x13; op2:x14; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x13,x14,0x0,0x0,3*XLEN/8,c.sh,0) + +inst_4: +// rs1==x15, rs2==x11, +// opcode:c.sh; op1:x15; op2:x11; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x15,x11,0x0,0x0,4*XLEN/8,c.sh,0) + +inst_5: +// rs1==x8, rs2==x10, +// opcode:c.sh; op1:x8; op2:x10; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x8,x10,0x0,0x0,5*XLEN/8,c.sh,0) + +inst_6: +// rs1==x14, rs2==x8, +// opcode:c.sh; op1:x14; op2:x8; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x14,x8,0x0,0x0,6*XLEN/8,c.sh,0) + +inst_7: +// rs1==x12, rs2==x15, +// opcode:c.sh; op1:x12; op2:x15; op2val:0x0; immval:0x0 +TEST_STORE(x1,x2,0,x12,x15,0x0,0x0,7*XLEN/8,c.sh,0) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 8*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END From 8ca26453dc712f934cc8d5131b5ec297fca29d06 Mon Sep 17 00:00:00 2001 From: Abdul Wadood Date: Tue, 20 Jun 2023 16:26:16 +0500 Subject: [PATCH 3/7] Added macro for instruction with single operand Signed-off-by: Abdul Wadood --- riscv-test-suite/env/test_macros.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/riscv-test-suite/env/test_macros.h b/riscv-test-suite/env/test_macros.h index 05c7216ed..be19bf88e 100644 --- a/riscv-test-suite/env/test_macros.h +++ b/riscv-test-suite/env/test_macros.h @@ -919,7 +919,14 @@ ADDI(swreg, swreg, RVMODEL_CBZ_BLOCKSIZE) inst destreg, x2,imm ;\ ) -//Tests for instructions with a single register operand +//Tests for instructions with single (rd/rs1) register operand. +#define TEST_CRD_OP(inst, destreg, correctval, val1, swreg, offset, testreg) \ + TEST_CASE(testreg, destreg, correctval, swreg, offset, \ + LI(destreg, MASK_XLEN(val1)) ;\ + inst destreg ;\ + ) + +//Tests for instructions with a destination and single source register operand #define TEST_RD_OP(inst, destreg, reg1, correctval, val1, swreg, offset, testreg) \ TEST_CMV_OP(inst, destreg, reg1, correctval, val1, swreg, offset, testreg) From b748009e528870752a8b263ded4dc37cb8d6d147 Mon Sep 17 00:00:00 2001 From: Abdul Wadood Date: Tue, 20 Jun 2023 16:26:44 +0500 Subject: [PATCH 4/7] Added compressed bitmanip tests from zcb ext. Signed-off-by: Abdul Wadood --- riscv-test-suite/rv32i_m/C/src/csext.b-01.S | 412 +++++++++++ riscv-test-suite/rv32i_m/C/src/csext.h-01.S | 417 +++++++++++ riscv-test-suite/rv32i_m/C/src/czext.b-01.S | 412 +++++++++++ riscv-test-suite/rv32i_m/C/src/czext.h-01.S | 417 +++++++++++ riscv-test-suite/rv64i_m/C/src/csext.b-01.S | 732 +++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/csext.h-01.S | 737 ++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/czext.b-01.S | 732 +++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/czext.h-01.S | 737 ++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/czext.w-01.S | 737 ++++++++++++++++++++ 9 files changed, 5333 insertions(+) create mode 100644 riscv-test-suite/rv32i_m/C/src/csext.b-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/csext.h-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/czext.b-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/czext.h-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/csext.b-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/csext.h-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/czext.b-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/czext.h-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/czext.w-01.S diff --git a/riscv-test-suite/rv32i_m/C/src/csext.b-01.S b/riscv-test-suite/rv32i_m/C/src/csext.b-01.S new file mode 100644 index 000000000..3289b2507 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/csext.b-01.S @@ -0,0 +1,412 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sext.b instruction of the RISC-V RV32_Zca_Zcb_Zbb extension for the csext.b covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb_Zbb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zbb.*);def TEST_CASE_1=True;",csext.b) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x13, rs1_val == 0, +// opcode: c.sext.b ; op1=dest:x13 ; op1val:0x0; +TEST_CRD_OP(c.sext.b, x13, 0x00000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x15, rs1_val == 0x80, rs1_val == 128 +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x80, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x10, rs1_val == 0x8000, rs1_val == 32768 +// opcode: c.sext.b ; op1=dest:x10 ; op1val:0x8000; +TEST_CRD_OP(c.sext.b, x10, 0x00000000, 0x8000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x12, rs1_val == 1, +// opcode: c.sext.b ; op1=dest:x12 ; op1val:0x1; +TEST_CRD_OP(c.sext.b, x12, 0x00000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x8, rs1_val == 4294967294, +// opcode: c.sext.b ; op1=dest:x8 ; op1val:0xfffffffe; +TEST_CRD_OP(c.sext.b, x8, 0x00000000, 0xfffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x9, rs1_val == 4294967293, +// opcode: c.sext.b ; op1=dest:x9 ; op1val:0xfffffffd; +TEST_CRD_OP(c.sext.b, x9, 0x00000000, 0xfffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x14, rs1_val == 4294967291, +// opcode: c.sext.b ; op1=dest:x14 ; op1val:0xfffffffb; +TEST_CRD_OP(c.sext.b, x14, 0x00000000, 0xfffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x11, rs1_val == 4294967287, +// opcode: c.sext.b ; op1=dest:x11 ; op1val:0xfffffff7; +TEST_CRD_OP(c.sext.b, x11, 0x00000000, 0xfffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 4294967279, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffef; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 4294967263, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffdf; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 4294967231, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffbf; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 4294967167, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffff7f; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 4294967039, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffeff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 4294966783, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffdff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 4294966271, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffbff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 4294965247, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffff7ff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 4294963199, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffefff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 4294959103, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffdfff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 4294950911, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffbfff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 4294934527, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffff7fff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 4294901759, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffeffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 4294836223, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffdffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 4294705151, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffbffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 4294443007, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfff7ffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 4293918719, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffefffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 4292870143, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffdfffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 4290772991, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffbfffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 4286578687, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xff7fffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 4278190079, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfeffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 4261412863, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfdffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 4227858431, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfbffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xfbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 4160749567, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xf7ffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xf7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 4026531839, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xefffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 3758096383, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xdfffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 536870912, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x20000000, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 1073741824, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x40000000, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 2147483648, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x80000000, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 3221225471, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xbfffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0xbfffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 2147483647, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x7fffffff; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x7fffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 2, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x2, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 4, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x4, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 8, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x8, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 16, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x10, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 32, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x20, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 64, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x40, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 256, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x100, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 512, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x200, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 1024, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x400, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 2048, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x800, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 4096, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x1000, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 8192, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x2000, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 16384, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x4000, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 65536, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x10000, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 131072, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x20000, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 262144, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x40000, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 524288, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x80000, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 1048576, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x100000, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 2097152, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x200000, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 4194304, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x400000, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 8388608, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x800000, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 16777216, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x1000000, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 33554432, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x2000000, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 67108864, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x4000000, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 134217728, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x8000000, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 268435456, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.sext.b, x15, 0x00000000, 0x10000000, x1, 64*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 65*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/csext.h-01.S b/riscv-test-suite/rv32i_m/C/src/csext.h-01.S new file mode 100644 index 000000000..778001bdf --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/csext.h-01.S @@ -0,0 +1,417 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sext.h instruction of the RISC-V RV32_Zca_Zcb_Zbb extension for the csext.h covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb_Zbb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zbb.*);def TEST_CASE_1=True;",csext.h) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x9, rs1_val == 0, +// opcode: c.sext.h ; op1=dest:x9 ; op1val:0x0; +TEST_CRD_OP(c.sext.h, x9, 0x00000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x12, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.sext.h ; op1=dest:x12 ; op1val:0x800; +TEST_CRD_OP(c.sext.h, x12, 0x00000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x10, rs1_val == 0xFF80, +// opcode: c.sext.h ; op1=dest:x10 ; op1val:0xff80; +TEST_CRD_OP(c.sext.h, x10, 0x00000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x15, rs1_val == 1, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x14, rs1_val == 4294967294, +// opcode: c.sext.h ; op1=dest:x14 ; op1val:0xfffffffe; +TEST_CRD_OP(c.sext.h, x14, 0x00000000, 0xfffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x13, rs1_val == 4294967293, +// opcode: c.sext.h ; op1=dest:x13 ; op1val:0xfffffffd; +TEST_CRD_OP(c.sext.h, x13, 0x00000000, 0xfffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x11, rs1_val == 4294967291, +// opcode: c.sext.h ; op1=dest:x11 ; op1val:0xfffffffb; +TEST_CRD_OP(c.sext.h, x11, 0x00000000, 0xfffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x8, rs1_val == 4294967287, +// opcode: c.sext.h ; op1=dest:x8 ; op1val:0xfffffff7; +TEST_CRD_OP(c.sext.h, x8, 0x00000000, 0xfffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 4294967279, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffef; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 4294967263, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffdf; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 4294967231, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffbf; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 4294967167, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffff7f; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 4294967039, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffeff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 4294966783, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffdff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 4294966271, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffbff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 4294965247, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffff7ff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 4294963199, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffefff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 4294959103, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffdfff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 4294950911, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffbfff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 4294934527, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffff7fff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 4294901759, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffeffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 4294836223, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffdffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 4294705151, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffbffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 4294443007, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfff7ffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 4293918719, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffefffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 4292870143, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffdfffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 4290772991, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffbfffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 4286578687, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xff7fffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 4278190079, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfeffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 4261412863, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfdffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 4227858431, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfbffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xfbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 4160749567, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xf7ffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xf7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 4026531839, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xefffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 3758096383, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xdfffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 3221225471, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xbfffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0xbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 536870912, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x20000000, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 1073741824, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x40000000, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 2147483648, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x80000000, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 2147483647, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x7fffffff; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x7fffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 2, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x2, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 4, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x4, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 8, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x8, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 16, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x10, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 32, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x20, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 64, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x40, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 128, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x80, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 256, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x100, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 512, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x200, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 1024, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x400, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 4096, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x1000, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 8192, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x2000, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 16384, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x4000, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 32768, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x8000, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 65536, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x10000, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 131072, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x20000, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 262144, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x40000, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 524288, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x80000, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 1048576, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x100000, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 2097152, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x200000, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 4194304, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x400000, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 8388608, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x800000, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 16777216, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x1000000, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 33554432, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x2000000, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 67108864, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x4000000, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 134217728, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x8000000, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 268435456, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.sext.h, x15, 0x00000000, 0x10000000, x1, 65*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 66*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/czext.b-01.S b/riscv-test-suite/rv32i_m/C/src/czext.b-01.S new file mode 100644 index 000000000..cf6275897 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/czext.b-01.S @@ -0,0 +1,412 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.zext.b instruction of the RISC-V RV32_Zca_Zcb extension for the czext.b covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",czext.b) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x15, rs1_val == 0, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x0; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x9, rs1_val == 0x80, rs1_val == 128 +// opcode: c.zext.b ; op1=dest:x9 ; op1val:0x80; +TEST_CRD_OP(c.zext.b, x9, 0x00000000, 0x80, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x12, rs1_val == 0x8000, rs1_val == 32768 +// opcode: c.zext.b ; op1=dest:x12 ; op1val:0x8000; +TEST_CRD_OP(c.zext.b, x12, 0x00000000, 0x8000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x14, rs1_val == 1, +// opcode: c.zext.b ; op1=dest:x14 ; op1val:0x1; +TEST_CRD_OP(c.zext.b, x14, 0x00000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x13, rs1_val == 4294967294, +// opcode: c.zext.b ; op1=dest:x13 ; op1val:0xfffffffe; +TEST_CRD_OP(c.zext.b, x13, 0x00000000, 0xfffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x11, rs1_val == 4294967293, +// opcode: c.zext.b ; op1=dest:x11 ; op1val:0xfffffffd; +TEST_CRD_OP(c.zext.b, x11, 0x00000000, 0xfffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x8, rs1_val == 4294967291, +// opcode: c.zext.b ; op1=dest:x8 ; op1val:0xfffffffb; +TEST_CRD_OP(c.zext.b, x8, 0x00000000, 0xfffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x10, rs1_val == 4294967287, +// opcode: c.zext.b ; op1=dest:x10 ; op1val:0xfffffff7; +TEST_CRD_OP(c.zext.b, x10, 0x00000000, 0xfffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 4294967279, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffef; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 4294967263, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffdf; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 4294967231, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffbf; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 4294967167, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffff7f; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 4294967039, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffeff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 4294966783, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffdff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 4294966271, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffbff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 4294965247, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffff7ff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 4294963199, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffefff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 4294959103, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffdfff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 4294950911, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffbfff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 4294934527, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffff7fff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 4294901759, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffeffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 4294836223, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffdffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 4294705151, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffbffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 4294443007, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfff7ffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 4293918719, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffefffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 4292870143, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffdfffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 4290772991, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffbfffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 4286578687, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xff7fffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 4278190079, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfeffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 4261412863, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfdffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 4227858431, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfbffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xfbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 4160749567, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xf7ffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xf7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 4026531839, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xefffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 3758096383, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xdfffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 536870912, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x20000000, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 1073741824, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x40000000, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 2147483648, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x80000000, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 3221225471, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xbfffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0xbfffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 2147483647, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x7fffffff; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x7fffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 2, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x2, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 4, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x4, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 8, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x8, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 16, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x10, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 32, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x20, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 64, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x40, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 256, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x100, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 512, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x200, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 1024, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x400, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 2048, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x800, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 4096, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x1000, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 8192, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x2000, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 16384, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x4000, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 65536, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x10000, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 131072, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x20000, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 262144, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x40000, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 524288, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x80000, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 1048576, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x100000, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 2097152, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x200000, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 4194304, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x400000, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 8388608, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x800000, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 16777216, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x1000000, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 33554432, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x2000000, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 67108864, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x4000000, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 134217728, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x8000000, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 268435456, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.zext.b, x15, 0x00000000, 0x10000000, x1, 64*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 65*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/czext.h-01.S b/riscv-test-suite/rv32i_m/C/src/czext.h-01.S new file mode 100644 index 000000000..a250968a5 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/czext.h-01.S @@ -0,0 +1,417 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.zext.h instruction of the RISC-V RV32_Zca_Zcb_Zbb extension for the czext.h covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb_Zbb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zbb.*);def TEST_CASE_1=True;",czext.h) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x11, rs1_val == 0, +// opcode: c.zext.h ; op1=dest:x11 ; op1val:0x0; +TEST_CRD_OP(c.zext.h, x11, 0x00000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x13, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.zext.h ; op1=dest:x13 ; op1val:0x800; +TEST_CRD_OP(c.zext.h, x13, 0x00000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x12, rs1_val == 0xFF80, +// opcode: c.zext.h ; op1=dest:x12 ; op1val:0xff80; +TEST_CRD_OP(c.zext.h, x12, 0x00000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x14, rs1_val == 1, +// opcode: c.zext.h ; op1=dest:x14 ; op1val:0x1; +TEST_CRD_OP(c.zext.h, x14, 0x00000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x15, rs1_val == 4294967294, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffe; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x10, rs1_val == 4294967293, +// opcode: c.zext.h ; op1=dest:x10 ; op1val:0xfffffffd; +TEST_CRD_OP(c.zext.h, x10, 0x00000000, 0xfffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x8, rs1_val == 4294967291, +// opcode: c.zext.h ; op1=dest:x8 ; op1val:0xfffffffb; +TEST_CRD_OP(c.zext.h, x8, 0x00000000, 0xfffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x9, rs1_val == 4294967287, +// opcode: c.zext.h ; op1=dest:x9 ; op1val:0xfffffff7; +TEST_CRD_OP(c.zext.h, x9, 0x00000000, 0xfffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 4294967279, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffef; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 4294967263, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffdf; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 4294967231, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffbf; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 4294967167, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffff7f; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 4294967039, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffeff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 4294966783, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffdff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 4294966271, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffbff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 4294965247, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffff7ff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 4294963199, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffefff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 4294959103, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffdfff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 4294950911, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffbfff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 4294934527, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffff7fff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 4294901759, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffeffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 4294836223, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffdffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 4294705151, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffbffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 4294443007, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfff7ffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 4293918719, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffefffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 4292870143, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffdfffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 4290772991, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffbfffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 4286578687, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xff7fffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 4278190079, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfeffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 4261412863, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfdffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 4227858431, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfbffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xfbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 4160749567, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xf7ffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xf7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 4026531839, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xefffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 3758096383, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xdfffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 3221225471, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xbfffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0xbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 536870912, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x20000000, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 1073741824, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x40000000, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 2147483648, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x80000000, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 2147483647, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x7fffffff; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x7fffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 2, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x2, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 4, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x4, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 8, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x8, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 16, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x10, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 32, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x20, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 64, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x40, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 128, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x80, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 256, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x100, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 512, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x200, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 1024, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x400, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 4096, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x1000, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 8192, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x2000, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 16384, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x4000, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 32768, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x8000, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 65536, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x10000, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 131072, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x20000, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 262144, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x40000, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 524288, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x80000, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 1048576, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x100000, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 2097152, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x200000, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 4194304, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x400000, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 8388608, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x800000, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 16777216, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x1000000, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 33554432, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x2000000, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 67108864, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x4000000, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 134217728, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x8000000, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 268435456, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.zext.h, x15, 0x00000000, 0x10000000, x1, 65*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 66*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/csext.b-01.S b/riscv-test-suite/rv64i_m/C/src/csext.b-01.S new file mode 100644 index 000000000..ddad7072a --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/csext.b-01.S @@ -0,0 +1,732 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sext.b instruction of the RISC-V RV64_Zca_Zcb_Zbb extension for the csext.b covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb_Zbb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zbb.*);def TEST_CASE_1=True;",csext.b) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x12, rs1_val == 0, +// opcode: c.sext.b ; op1=dest:x12 ; op1val:0x0; +TEST_CRD_OP(c.sext.b, x12, 0x0000000000000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x15, rs1_val == 0x80, rs1_val == 128 +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x80, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x14, rs1_val == 0x8000, rs1_val == 32768 +// opcode: c.sext.b ; op1=dest:x14 ; op1val:0x8000; +TEST_CRD_OP(c.sext.b, x14, 0x0000000000000000, 0x8000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x11, rs1_val == 1, +// opcode: c.sext.b ; op1=dest:x11 ; op1val:0x1; +TEST_CRD_OP(c.sext.b, x11, 0x0000000000000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x13, rs1_val == 18446744073709551614, +// opcode: c.sext.b ; op1=dest:x13 ; op1val:0xfffffffffffffffe; +TEST_CRD_OP(c.sext.b, x13, 0x0000000000000000, 0xfffffffffffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x8, rs1_val == 18446744073709551613, +// opcode: c.sext.b ; op1=dest:x8 ; op1val:0xfffffffffffffffd; +TEST_CRD_OP(c.sext.b, x8, 0x0000000000000000, 0xfffffffffffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x9, rs1_val == 18446744073709551611, +// opcode: c.sext.b ; op1=dest:x9 ; op1val:0xfffffffffffffffb; +TEST_CRD_OP(c.sext.b, x9, 0x0000000000000000, 0xfffffffffffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x10, rs1_val == 18446744073709551607, +// opcode: c.sext.b ; op1=dest:x10 ; op1val:0xfffffffffffffff7; +TEST_CRD_OP(c.sext.b, x10, 0x0000000000000000, 0xfffffffffffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 18446744073709551599, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffffef; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 18446744073709551583, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffffdf; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 18446744073709551551, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffffbf; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 18446744073709551487, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffff7f; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 18446744073709551359, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffffeff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 18446744073709551103, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffffdff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 18446744073709550591, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffffbff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 18446744073709549567, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffff7ff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 18446744073709547519, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffefff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 18446744073709543423, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffdfff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 18446744073709535231, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffffbfff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 18446744073709518847, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffff7fff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 18446744073709486079, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffeffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 18446744073709420543, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffdffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 18446744073709289471, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffffbffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 18446744073709027327, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffff7ffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 18446744073708503039, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffefffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 18446744073707454463, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffdfffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 18446744073705357311, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffffbfffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 18446744073701163007, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffff7fffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 18446744073692774399, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffeffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 18446744073675997183, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffdffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 18446744073642442751, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffffbffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffffbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 18446744073575333887, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffff7ffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffff7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 18446744073441116159, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffefffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 18446744073172680703, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffdfffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 18446744072635809791, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffffbfffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffffbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 18446744071562067967, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffff7fffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffff7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 18446744069414584319, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffeffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffeffffffff, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 18446744065119617023, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffdffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffdffffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 18446744056529682431, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffffbffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffffbffffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 18446744039349813247, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffff7ffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffff7ffffffff, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 18446744004990074879, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffefffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffefffffffff, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 18446743936270598143, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffdfffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffdfffffffff, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 18446743798831644671, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffffbfffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffffbfffffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 18446743523953737727, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffff7fffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffff7fffffffff, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 18446742974197923839, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffeffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffeffffffffff, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 18446741874686296063, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffdffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffdffffffffff, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 18446739675663040511, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffffbffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffffbffffffffff, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 18446735277616529407, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffff7ffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffff7ffffffffff, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 18446726481523507199, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffefffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffefffffffffff, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 18446708889337462783, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffdfffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffdfffffffffff, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 18446673704965373951, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffffbfffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffffbfffffffffff, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 18446603336221196287, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffff7fffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffff7fffffffffff, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 18446462598732840959, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffeffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffeffffffffffff, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 18446181123756130303, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffdffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffdffffffffffff, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 18445618173802708991, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfffbffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfffbffffffffffff, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 18444492273895866367, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfff7ffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfff7ffffffffffff, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 18442240474082181119, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffefffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffefffffffffffff, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 18437736874454810623, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffdfffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffdfffffffffffff, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 18428729675200069631, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xffbfffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xffbfffffffffffff, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 18410715276690587647, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xff7fffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xff7fffffffffffff, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 18374686479671623679, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfeffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfeffffffffffffff, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 18302628885633695743, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfdffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfdffffffffffffff, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 18158513697557839871, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xfbffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xfbffffffffffffff, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 17870283321406128127, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xf7ffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xf7ffffffffffffff, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 17293822569102704639, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xefffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xefffffffffffffff, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 16140901064495857663, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xdfffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xdfffffffffffffff, x1, 65*XLEN/8, x2) + +inst_66: +// rs1_val == 2305843009213693952, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x2000000000000000, x1, 66*XLEN/8, x2) + +inst_67: +// rs1_val == 4611686018427387904, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x4000000000000000, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == 9223372036854775808, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8000000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x8000000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == 13835058055282163711, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0xbfffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0xbfffffffffffffff, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == 9223372036854775807, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x7fffffffffffffff; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x7fffffffffffffff, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == 2, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x2, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == 4, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x4, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == 8, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x8, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == 16, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x10, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == 32, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x20, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == 64, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x40, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == 256, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x100, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == 512, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x200, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == 1024, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x400, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == 2048, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x800, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == 4096, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x1000, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == 8192, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x2000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 16384, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x4000, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 65536, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x10000, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 131072, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x20000, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 262144, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x40000, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 524288, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x80000, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 1048576, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x100000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 2097152, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x200000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 4194304, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x400000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 8388608, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x800000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 16777216, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x1000000, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 33554432, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x2000000, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 67108864, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x4000000, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 134217728, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x8000000, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 268435456, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x10000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 536870912, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x20000000, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 1073741824, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x40000000, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 2147483648, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x80000000, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 4294967296, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x100000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 8589934592, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x200000000, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 17179869184, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x400000000, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 34359738368, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x800000000, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == 68719476736, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x1000000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == 137438953472, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x2000000000, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == 274877906944, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x4000000000, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == 549755813888, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x8000000000, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == 1099511627776, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x10000000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val == 2199023255552, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x20000000000, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val == 4398046511104, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x40000000000, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val == 8796093022208, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x80000000000, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val == 17592186044416, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x100000000000, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val == 35184372088832, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x200000000000, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val == 70368744177664, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x400000000000, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val == 140737488355328, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x800000000000, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val == 281474976710656, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x1000000000000, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val == 562949953421312, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x2000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x2000000000000, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val == 1125899906842624, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x4000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x4000000000000, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val == 2251799813685248, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x8000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x8000000000000, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val == 4503599627370496, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x10000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x10000000000000, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val == 9007199254740992, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x20000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x20000000000000, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val == 18014398509481984, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x40000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x40000000000000, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val == 36028797018963968, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x80000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x80000000000000, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val == 72057594037927936, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x100000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x100000000000000, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val == 144115188075855872, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x200000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x200000000000000, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val == 288230376151711744, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x400000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x400000000000000, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val == 576460752303423488, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x800000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x800000000000000, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val == 1152921504606846976, +// opcode: c.sext.b ; op1=dest:x15 ; op1val:0x1000000000000000; +TEST_CRD_OP(c.sext.b, x15, 0x0000000000000000, 0x1000000000000000, x1, 128*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 129*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/csext.h-01.S b/riscv-test-suite/rv64i_m/C/src/csext.h-01.S new file mode 100644 index 000000000..9d5cb95ff --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/csext.h-01.S @@ -0,0 +1,737 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.sext.h instruction of the RISC-V RV64_Zca_Zcb_Zbb extension for the csext.h covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb_Zbb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zbb.*);def TEST_CASE_1=True;",csext.h) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x15, rs1_val == 0, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x0; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x12, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.sext.h ; op1=dest:x12 ; op1val:0x800; +TEST_CRD_OP(c.sext.h, x12, 0x0000000000000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x11, rs1_val == 0xFF80, +// opcode: c.sext.h ; op1=dest:x11 ; op1val:0xff80; +TEST_CRD_OP(c.sext.h, x11, 0x0000000000000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x8, rs1_val == 1, +// opcode: c.sext.h ; op1=dest:x8 ; op1val:0x1; +TEST_CRD_OP(c.sext.h, x8, 0x0000000000000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x9, rs1_val == 18446744073709551614, +// opcode: c.sext.h ; op1=dest:x9 ; op1val:0xfffffffffffffffe; +TEST_CRD_OP(c.sext.h, x9, 0x0000000000000000, 0xfffffffffffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x10, rs1_val == 18446744073709551613, +// opcode: c.sext.h ; op1=dest:x10 ; op1val:0xfffffffffffffffd; +TEST_CRD_OP(c.sext.h, x10, 0x0000000000000000, 0xfffffffffffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x14, rs1_val == 18446744073709551611, +// opcode: c.sext.h ; op1=dest:x14 ; op1val:0xfffffffffffffffb; +TEST_CRD_OP(c.sext.h, x14, 0x0000000000000000, 0xfffffffffffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x13, rs1_val == 18446744073709551607, +// opcode: c.sext.h ; op1=dest:x13 ; op1val:0xfffffffffffffff7; +TEST_CRD_OP(c.sext.h, x13, 0x0000000000000000, 0xfffffffffffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 18446744073709551599, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffffef; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 18446744073709551583, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffffdf; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 18446744073709551551, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffffbf; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 18446744073709551487, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffff7f; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 18446744073709551359, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffffeff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 18446744073709551103, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffffdff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 18446744073709550591, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffffbff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 18446744073709549567, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffff7ff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 18446744073709547519, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffefff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 18446744073709543423, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffdfff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 18446744073709535231, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffffbfff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 18446744073709518847, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffff7fff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 18446744073709486079, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffeffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 18446744073709420543, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffdffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 18446744073709289471, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffffbffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 18446744073709027327, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffff7ffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 18446744073708503039, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffefffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 18446744073707454463, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffdfffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 18446744073705357311, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffffbfffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 18446744073701163007, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffff7fffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 18446744073692774399, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffeffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 18446744073675997183, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffdffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 18446744073642442751, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffffbffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffffbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 18446744073575333887, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffff7ffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffff7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 18446744073441116159, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffefffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 18446744073172680703, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffdfffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 18446744072635809791, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffffbfffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffffbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 18446744071562067967, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffff7fffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffff7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 18446744069414584319, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffeffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffeffffffff, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 18446744065119617023, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffdffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffdffffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 18446744056529682431, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffffbffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffffbffffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 18446744039349813247, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffff7ffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffff7ffffffff, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 18446744004990074879, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffefffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffefffffffff, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 18446743936270598143, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffdfffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffdfffffffff, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 18446743798831644671, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffffbfffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffffbfffffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 18446743523953737727, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffff7fffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffff7fffffffff, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 18446742974197923839, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffeffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffeffffffffff, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 18446741874686296063, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffdffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffdffffffffff, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 18446739675663040511, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffffbffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffffbffffffffff, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 18446735277616529407, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffff7ffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffff7ffffffffff, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 18446726481523507199, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffefffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffefffffffffff, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 18446708889337462783, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffdfffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffdfffffffffff, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 18446673704965373951, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffffbfffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffffbfffffffffff, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 18446603336221196287, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffff7fffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffff7fffffffffff, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 18446462598732840959, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffeffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffeffffffffffff, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 18446181123756130303, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffdffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffdffffffffffff, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 18445618173802708991, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfffbffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfffbffffffffffff, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 18444492273895866367, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfff7ffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfff7ffffffffffff, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 18442240474082181119, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffefffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffefffffffffffff, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 18437736874454810623, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffdfffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffdfffffffffffff, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 18428729675200069631, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xffbfffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xffbfffffffffffff, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 18410715276690587647, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xff7fffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xff7fffffffffffff, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 18374686479671623679, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfeffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfeffffffffffffff, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 18302628885633695743, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfdffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfdffffffffffffff, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 18158513697557839871, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xfbffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xfbffffffffffffff, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 17870283321406128127, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xf7ffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xf7ffffffffffffff, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 17293822569102704639, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xefffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xefffffffffffffff, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 16140901064495857663, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xdfffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xdfffffffffffffff, x1, 65*XLEN/8, x2) + +inst_66: +// rs1_val == 13835058055282163711, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0xbfffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0xbfffffffffffffff, x1, 66*XLEN/8, x2) + +inst_67: +// rs1_val == 2305843009213693952, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x2000000000000000, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == 4611686018427387904, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x4000000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == 9223372036854775808, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x8000000000000000, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == 9223372036854775807, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x7fffffffffffffff; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x7fffffffffffffff, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == 2, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x2, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == 4, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x4, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == 8, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x8, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == 16, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x10, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == 32, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x20, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == 64, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x40, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == 128, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x80, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == 256, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x100, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == 512, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x200, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == 1024, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x400, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == 4096, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x1000, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == 8192, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x2000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 16384, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x4000, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 32768, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x8000, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 65536, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x10000, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 131072, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x20000, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 262144, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x40000, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 524288, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x80000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 1048576, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x100000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 2097152, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x200000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 4194304, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x400000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 8388608, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x800000, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 16777216, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x1000000, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 33554432, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x2000000, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 67108864, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x4000000, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 134217728, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x8000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 268435456, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x10000000, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 536870912, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x20000000, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 1073741824, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x40000000, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 2147483648, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x80000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 4294967296, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x100000000, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 8589934592, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x200000000, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 17179869184, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x400000000, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == 34359738368, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x800000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x800000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == 68719476736, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x1000000000, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == 137438953472, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x2000000000, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == 274877906944, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x4000000000, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == 549755813888, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x8000000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val == 1099511627776, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x10000000000, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val == 2199023255552, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x20000000000, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val == 4398046511104, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x40000000000, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val == 8796093022208, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x80000000000, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val == 17592186044416, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x100000000000, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val == 35184372088832, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x200000000000, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val == 70368744177664, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x400000000000, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val == 140737488355328, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x800000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x800000000000, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val == 281474976710656, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x1000000000000, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val == 562949953421312, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x2000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x2000000000000, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val == 1125899906842624, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x4000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x4000000000000, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val == 2251799813685248, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x8000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x8000000000000, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val == 4503599627370496, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x10000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x10000000000000, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val == 9007199254740992, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x20000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x20000000000000, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val == 18014398509481984, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x40000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x40000000000000, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val == 36028797018963968, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x80000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x80000000000000, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val == 72057594037927936, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x100000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x100000000000000, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val == 144115188075855872, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x200000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x200000000000000, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val == 288230376151711744, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x400000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x400000000000000, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val == 576460752303423488, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x800000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x800000000000000, x1, 128*XLEN/8, x2) + +inst_129: +// rs1_val == 1152921504606846976, +// opcode: c.sext.h ; op1=dest:x15 ; op1val:0x1000000000000000; +TEST_CRD_OP(c.sext.h, x15, 0x0000000000000000, 0x1000000000000000, x1, 129*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 130*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/czext.b-01.S b/riscv-test-suite/rv64i_m/C/src/czext.b-01.S new file mode 100644 index 000000000..4755d29b8 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/czext.b-01.S @@ -0,0 +1,732 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.zext.b instruction of the RISC-V RV64_Zca_Zcb extension for the czext.b covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",czext.b) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x13, rs1_val == 0, +// opcode: c.zext.b ; op1=dest:x13 ; op1val:0x0; +TEST_CRD_OP(c.zext.b, x13, 0x0000000000000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x8, rs1_val == 0x80, rs1_val == 128 +// opcode: c.zext.b ; op1=dest:x8 ; op1val:0x80; +TEST_CRD_OP(c.zext.b, x8, 0x0000000000000000, 0x80, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x14, rs1_val == 0x8000, rs1_val == 32768 +// opcode: c.zext.b ; op1=dest:x14 ; op1val:0x8000; +TEST_CRD_OP(c.zext.b, x14, 0x0000000000000000, 0x8000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x9, rs1_val == 1, +// opcode: c.zext.b ; op1=dest:x9 ; op1val:0x1; +TEST_CRD_OP(c.zext.b, x9, 0x0000000000000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x11, rs1_val == 18446744073709551614, +// opcode: c.zext.b ; op1=dest:x11 ; op1val:0xfffffffffffffffe; +TEST_CRD_OP(c.zext.b, x11, 0x0000000000000000, 0xfffffffffffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x12, rs1_val == 18446744073709551613, +// opcode: c.zext.b ; op1=dest:x12 ; op1val:0xfffffffffffffffd; +TEST_CRD_OP(c.zext.b, x12, 0x0000000000000000, 0xfffffffffffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x10, rs1_val == 18446744073709551611, +// opcode: c.zext.b ; op1=dest:x10 ; op1val:0xfffffffffffffffb; +TEST_CRD_OP(c.zext.b, x10, 0x0000000000000000, 0xfffffffffffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x15, rs1_val == 18446744073709551607, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffffff7; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 18446744073709551599, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffffef; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 18446744073709551583, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffffdf; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 18446744073709551551, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffffbf; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 18446744073709551487, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffff7f; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 18446744073709551359, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffffeff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 18446744073709551103, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffffdff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 18446744073709550591, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffffbff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 18446744073709549567, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffff7ff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 18446744073709547519, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffefff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 18446744073709543423, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffdfff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 18446744073709535231, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffffbfff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 18446744073709518847, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffff7fff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 18446744073709486079, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffeffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 18446744073709420543, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffdffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 18446744073709289471, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffffbffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 18446744073709027327, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffff7ffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 18446744073708503039, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffefffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 18446744073707454463, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffdfffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 18446744073705357311, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffffbfffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 18446744073701163007, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffff7fffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 18446744073692774399, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffeffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 18446744073675997183, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffdffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 18446744073642442751, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffffbffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffffbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 18446744073575333887, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffff7ffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffff7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 18446744073441116159, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffefffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 18446744073172680703, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffdfffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 18446744072635809791, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffffbfffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffffbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 18446744071562067967, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffff7fffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffff7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 18446744069414584319, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffeffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffeffffffff, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 18446744065119617023, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffdffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffdffffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 18446744056529682431, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffffbffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffffbffffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 18446744039349813247, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffff7ffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffff7ffffffff, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 18446744004990074879, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffefffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffefffffffff, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 18446743936270598143, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffdfffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffdfffffffff, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 18446743798831644671, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffffbfffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffffbfffffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 18446743523953737727, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffff7fffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffff7fffffffff, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 18446742974197923839, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffeffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffeffffffffff, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 18446741874686296063, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffdffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffdffffffffff, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 18446739675663040511, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffffbffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffffbffffffffff, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 18446735277616529407, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffff7ffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffff7ffffffffff, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 18446726481523507199, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffefffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffefffffffffff, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 18446708889337462783, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffdfffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffdfffffffffff, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 18446673704965373951, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffffbfffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffffbfffffffffff, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 18446603336221196287, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffff7fffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffff7fffffffffff, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 18446462598732840959, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffeffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffeffffffffffff, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 18446181123756130303, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffdffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffdffffffffffff, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 18445618173802708991, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfffbffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfffbffffffffffff, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 18444492273895866367, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfff7ffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfff7ffffffffffff, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 18442240474082181119, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffefffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffefffffffffffff, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 18437736874454810623, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffdfffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffdfffffffffffff, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 18428729675200069631, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xffbfffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xffbfffffffffffff, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 18410715276690587647, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xff7fffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xff7fffffffffffff, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 18374686479671623679, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfeffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfeffffffffffffff, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 18302628885633695743, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfdffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfdffffffffffffff, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 18158513697557839871, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xfbffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xfbffffffffffffff, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 17870283321406128127, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xf7ffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xf7ffffffffffffff, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 17293822569102704639, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xefffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xefffffffffffffff, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 16140901064495857663, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xdfffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xdfffffffffffffff, x1, 65*XLEN/8, x2) + +inst_66: +// rs1_val == 2305843009213693952, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x2000000000000000, x1, 66*XLEN/8, x2) + +inst_67: +// rs1_val == 4611686018427387904, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x4000000000000000, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == 9223372036854775808, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8000000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x8000000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == 13835058055282163711, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0xbfffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0xbfffffffffffffff, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == 9223372036854775807, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x7fffffffffffffff; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x7fffffffffffffff, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == 2, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x2, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == 4, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x4, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == 8, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x8, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == 16, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x10, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == 32, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x20, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == 64, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x40, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == 256, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x100, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == 512, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x200, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == 1024, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x400, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == 2048, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x800, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == 4096, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x1000, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == 8192, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x2000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 16384, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x4000, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 65536, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x10000, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 131072, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x20000, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 262144, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x40000, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 524288, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x80000, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 1048576, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x100000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 2097152, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x200000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 4194304, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x400000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 8388608, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x800000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 16777216, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x1000000, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 33554432, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x2000000, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 67108864, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x4000000, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 134217728, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x8000000, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 268435456, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x10000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 536870912, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x20000000, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 1073741824, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x40000000, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 2147483648, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x80000000, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 4294967296, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x100000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 8589934592, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x200000000, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 17179869184, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x400000000, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 34359738368, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x800000000, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == 68719476736, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x1000000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == 137438953472, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x2000000000, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == 274877906944, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x4000000000, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == 549755813888, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x8000000000, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == 1099511627776, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x10000000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val == 2199023255552, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x20000000000, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val == 4398046511104, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x40000000000, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val == 8796093022208, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x80000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x80000000000, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val == 17592186044416, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x100000000000, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val == 35184372088832, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x200000000000, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val == 70368744177664, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x400000000000, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val == 140737488355328, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x800000000000, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val == 281474976710656, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x1000000000000, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val == 562949953421312, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x2000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x2000000000000, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val == 1125899906842624, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x4000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x4000000000000, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val == 2251799813685248, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x8000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x8000000000000, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val == 4503599627370496, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x10000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x10000000000000, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val == 9007199254740992, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x20000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x20000000000000, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val == 18014398509481984, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x40000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x40000000000000, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val == 36028797018963968, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x80000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x80000000000000, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val == 72057594037927936, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x100000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x100000000000000, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val == 144115188075855872, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x200000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x200000000000000, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val == 288230376151711744, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x400000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x400000000000000, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val == 576460752303423488, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x800000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x800000000000000, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val == 1152921504606846976, +// opcode: c.zext.b ; op1=dest:x15 ; op1val:0x1000000000000000; +TEST_CRD_OP(c.zext.b, x15, 0x0000000000000000, 0x1000000000000000, x1, 128*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 129*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/czext.h-01.S b/riscv-test-suite/rv64i_m/C/src/czext.h-01.S new file mode 100644 index 000000000..689cc31e9 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/czext.h-01.S @@ -0,0 +1,737 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.zext.h instruction of the RISC-V RV64_Zca_Zcb_Zbb extension for the czext.h covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb_Zbb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zbb.*);def TEST_CASE_1=True;",czext.h) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x8, rs1_val == 0, +// opcode: c.zext.h ; op1=dest:x8 ; op1val:0x0; +TEST_CRD_OP(c.zext.h, x8, 0x0000000000000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x14, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.zext.h ; op1=dest:x14 ; op1val:0x800; +TEST_CRD_OP(c.zext.h, x14, 0x0000000000000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x10, rs1_val == 0xFF80, +// opcode: c.zext.h ; op1=dest:x10 ; op1val:0xff80; +TEST_CRD_OP(c.zext.h, x10, 0x0000000000000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x15, rs1_val == 1, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x13, rs1_val == 18446744073709551614, +// opcode: c.zext.h ; op1=dest:x13 ; op1val:0xfffffffffffffffe; +TEST_CRD_OP(c.zext.h, x13, 0x0000000000000000, 0xfffffffffffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x9, rs1_val == 18446744073709551613, +// opcode: c.zext.h ; op1=dest:x9 ; op1val:0xfffffffffffffffd; +TEST_CRD_OP(c.zext.h, x9, 0x0000000000000000, 0xfffffffffffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x12, rs1_val == 18446744073709551611, +// opcode: c.zext.h ; op1=dest:x12 ; op1val:0xfffffffffffffffb; +TEST_CRD_OP(c.zext.h, x12, 0x0000000000000000, 0xfffffffffffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x11, rs1_val == 18446744073709551607, +// opcode: c.zext.h ; op1=dest:x11 ; op1val:0xfffffffffffffff7; +TEST_CRD_OP(c.zext.h, x11, 0x0000000000000000, 0xfffffffffffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 18446744073709551599, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffffef; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 18446744073709551583, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffffdf; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 18446744073709551551, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffffbf; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 18446744073709551487, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffff7f; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 18446744073709551359, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffffeff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 18446744073709551103, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffffdff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 18446744073709550591, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffffbff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 18446744073709549567, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffff7ff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 18446744073709547519, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffefff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 18446744073709543423, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffdfff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 18446744073709535231, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffffbfff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 18446744073709518847, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffff7fff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 18446744073709486079, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffeffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 18446744073709420543, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffdffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 18446744073709289471, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffffbffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 18446744073709027327, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffff7ffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 18446744073708503039, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffefffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 18446744073707454463, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffdfffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 18446744073705357311, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffffbfffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 18446744073701163007, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffff7fffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 18446744073692774399, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffeffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 18446744073675997183, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffdffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 18446744073642442751, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffffbffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffffbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 18446744073575333887, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffff7ffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffff7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 18446744073441116159, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffefffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 18446744073172680703, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffdfffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 18446744072635809791, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffffbfffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffffbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 18446744071562067967, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffff7fffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffff7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 18446744069414584319, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffeffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffeffffffff, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 18446744065119617023, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffdffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffdffffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 18446744056529682431, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffffbffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffffbffffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 18446744039349813247, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffff7ffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffff7ffffffff, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 18446744004990074879, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffefffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffefffffffff, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 18446743936270598143, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffdfffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffdfffffffff, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 18446743798831644671, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffffbfffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffffbfffffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 18446743523953737727, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffff7fffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffff7fffffffff, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 18446742974197923839, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffeffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffeffffffffff, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 18446741874686296063, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffdffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffdffffffffff, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 18446739675663040511, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffffbffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffffbffffffffff, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 18446735277616529407, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffff7ffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffff7ffffffffff, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 18446726481523507199, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffefffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffefffffffffff, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 18446708889337462783, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffdfffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffdfffffffffff, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 18446673704965373951, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffffbfffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffffbfffffffffff, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 18446603336221196287, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffff7fffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffff7fffffffffff, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 18446462598732840959, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffeffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffeffffffffffff, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 18446181123756130303, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffdffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffdffffffffffff, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 18445618173802708991, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfffbffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfffbffffffffffff, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 18444492273895866367, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfff7ffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfff7ffffffffffff, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 18442240474082181119, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffefffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffefffffffffffff, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 18437736874454810623, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffdfffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffdfffffffffffff, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 18428729675200069631, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xffbfffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xffbfffffffffffff, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 18410715276690587647, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xff7fffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xff7fffffffffffff, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 18374686479671623679, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfeffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfeffffffffffffff, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 18302628885633695743, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfdffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfdffffffffffffff, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 18158513697557839871, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xfbffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xfbffffffffffffff, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 17870283321406128127, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xf7ffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xf7ffffffffffffff, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 17293822569102704639, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xefffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xefffffffffffffff, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 16140901064495857663, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xdfffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xdfffffffffffffff, x1, 65*XLEN/8, x2) + +inst_66: +// rs1_val == 13835058055282163711, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0xbfffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0xbfffffffffffffff, x1, 66*XLEN/8, x2) + +inst_67: +// rs1_val == 2305843009213693952, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x2000000000000000, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == 4611686018427387904, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x4000000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == 9223372036854775808, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x8000000000000000, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == 9223372036854775807, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x7fffffffffffffff; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x7fffffffffffffff, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == 2, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x2, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == 4, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x4, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == 8, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x8, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == 16, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x10, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == 32, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x20, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == 64, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x40, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == 128, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x80, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == 256, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x100, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == 512, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x200, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == 1024, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x400, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == 4096, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x1000, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == 8192, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x2000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 16384, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x4000, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 32768, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x8000, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 65536, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x10000, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 131072, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x20000, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 262144, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x40000, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 524288, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x80000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 1048576, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x100000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 2097152, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x200000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 4194304, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x400000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 8388608, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x800000, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 16777216, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x1000000, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 33554432, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x2000000, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 67108864, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x4000000, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 134217728, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x8000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 268435456, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x10000000, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 536870912, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x20000000, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 1073741824, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x40000000, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 2147483648, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x80000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 4294967296, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x100000000, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 8589934592, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x200000000, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 17179869184, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x400000000, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == 34359738368, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x800000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x800000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == 68719476736, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x1000000000, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == 137438953472, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x2000000000, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == 274877906944, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x4000000000, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == 549755813888, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x8000000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val == 1099511627776, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x10000000000, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val == 2199023255552, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x20000000000, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val == 4398046511104, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x40000000000, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val == 8796093022208, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x80000000000, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val == 17592186044416, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x100000000000, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val == 35184372088832, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x200000000000, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val == 70368744177664, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x400000000000, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val == 140737488355328, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x800000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x800000000000, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val == 281474976710656, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x1000000000000, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val == 562949953421312, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x2000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x2000000000000, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val == 1125899906842624, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x4000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x4000000000000, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val == 2251799813685248, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x8000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x8000000000000, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val == 4503599627370496, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x10000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x10000000000000, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val == 9007199254740992, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x20000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x20000000000000, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val == 18014398509481984, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x40000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x40000000000000, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val == 36028797018963968, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x80000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x80000000000000, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val == 72057594037927936, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x100000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x100000000000000, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val == 144115188075855872, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x200000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x200000000000000, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val == 288230376151711744, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x400000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x400000000000000, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val == 576460752303423488, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x800000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x800000000000000, x1, 128*XLEN/8, x2) + +inst_129: +// rs1_val == 1152921504606846976, +// opcode: c.zext.h ; op1=dest:x15 ; op1val:0x1000000000000000; +TEST_CRD_OP(c.zext.h, x15, 0x0000000000000000, 0x1000000000000000, x1, 129*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 130*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/czext.w-01.S b/riscv-test-suite/rv64i_m/C/src/czext.w-01.S new file mode 100644 index 000000000..a4a710048 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/czext.w-01.S @@ -0,0 +1,737 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.zext.w instruction of the RISC-V RV64_Zca_Zcb_Zba extension for the czext.w covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb_Zba") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*.Zba.*);def TEST_CASE_1=True;",czext.w) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x15, rs1_val == 0, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x0; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x12, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.zext.w ; op1=dest:x12 ; op1val:0x800; +TEST_CRD_OP(c.zext.w, x12, 0x0000000000000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x11, rs1_val == 0xFF80, +// opcode: c.zext.w ; op1=dest:x11 ; op1val:0xff80; +TEST_CRD_OP(c.zext.w, x11, 0x0000000000000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x10, rs1_val == 1, +// opcode: c.zext.w ; op1=dest:x10 ; op1val:0x1; +TEST_CRD_OP(c.zext.w, x10, 0x0000000000000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x9, rs1_val == 18446744073709551614, +// opcode: c.zext.w ; op1=dest:x9 ; op1val:0xfffffffffffffffe; +TEST_CRD_OP(c.zext.w, x9, 0x0000000000000000, 0xfffffffffffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x8, rs1_val == 18446744073709551613, +// opcode: c.zext.w ; op1=dest:x8 ; op1val:0xfffffffffffffffd; +TEST_CRD_OP(c.zext.w, x8, 0x0000000000000000, 0xfffffffffffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x14, rs1_val == 18446744073709551611, +// opcode: c.zext.w ; op1=dest:x14 ; op1val:0xfffffffffffffffb; +TEST_CRD_OP(c.zext.w, x14, 0x0000000000000000, 0xfffffffffffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x13, rs1_val == 18446744073709551607, +// opcode: c.zext.w ; op1=dest:x13 ; op1val:0xfffffffffffffff7; +TEST_CRD_OP(c.zext.w, x13, 0x0000000000000000, 0xfffffffffffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 18446744073709551599, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffffef; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 18446744073709551583, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffffdf; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 18446744073709551551, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffffbf; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 18446744073709551487, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffff7f; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 18446744073709551359, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffffeff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 18446744073709551103, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffffdff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 18446744073709550591, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffffbff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 18446744073709549567, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffff7ff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 18446744073709547519, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffefff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 18446744073709543423, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffdfff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 18446744073709535231, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffffbfff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 18446744073709518847, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffff7fff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 18446744073709486079, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffeffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 18446744073709420543, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffdffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 18446744073709289471, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffffbffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 18446744073709027327, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffff7ffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 18446744073708503039, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffefffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 18446744073707454463, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffdfffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 18446744073705357311, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffffbfffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 18446744073701163007, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffff7fffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 18446744073692774399, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffeffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 18446744073675997183, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffdffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 18446744073642442751, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffffbffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffffbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 18446744073575333887, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffff7ffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffff7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 18446744073441116159, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffefffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 18446744073172680703, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffdfffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 18446744072635809791, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffffbfffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffffbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 18446744071562067967, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffff7fffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffff7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 18446744069414584319, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffeffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffeffffffff, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 18446744065119617023, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffdffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffdffffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 18446744056529682431, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffffbffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffffbffffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 18446744039349813247, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffff7ffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffff7ffffffff, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 18446744004990074879, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffefffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffefffffffff, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 18446743936270598143, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffdfffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffdfffffffff, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 18446743798831644671, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffffbfffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffffbfffffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 18446743523953737727, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffff7fffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffff7fffffffff, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 18446742974197923839, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffeffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffeffffffffff, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 18446741874686296063, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffdffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffdffffffffff, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 18446739675663040511, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffffbffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffffbffffffffff, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 18446735277616529407, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffff7ffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffff7ffffffffff, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 18446726481523507199, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffefffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffefffffffffff, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 18446708889337462783, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffdfffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffdfffffffffff, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 18446673704965373951, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffffbfffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffffbfffffffffff, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 18446603336221196287, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffff7fffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffff7fffffffffff, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 18446462598732840959, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffeffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffeffffffffffff, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 18446181123756130303, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffdffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffdffffffffffff, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 18445618173802708991, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfffbffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfffbffffffffffff, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 18444492273895866367, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfff7ffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfff7ffffffffffff, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 18442240474082181119, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffefffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffefffffffffffff, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 18437736874454810623, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffdfffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffdfffffffffffff, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 18428729675200069631, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xffbfffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xffbfffffffffffff, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 18410715276690587647, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xff7fffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xff7fffffffffffff, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 18374686479671623679, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfeffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfeffffffffffffff, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 18302628885633695743, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfdffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfdffffffffffffff, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 18158513697557839871, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xfbffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xfbffffffffffffff, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 17870283321406128127, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xf7ffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xf7ffffffffffffff, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 17293822569102704639, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xefffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xefffffffffffffff, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 16140901064495857663, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xdfffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xdfffffffffffffff, x1, 65*XLEN/8, x2) + +inst_66: +// rs1_val == 13835058055282163711, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0xbfffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0xbfffffffffffffff, x1, 66*XLEN/8, x2) + +inst_67: +// rs1_val == 2305843009213693952, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x2000000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x2000000000000000, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == 4611686018427387904, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x4000000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x4000000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == 9223372036854775808, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x8000000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x8000000000000000, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == 9223372036854775807, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x7fffffffffffffff; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x7fffffffffffffff, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == 2, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x2, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == 4, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x4, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == 8, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x8, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == 16, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x10, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == 32, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x20, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == 64, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x40, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == 128, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x80, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == 256, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x100, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == 512, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x200, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == 1024, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x400, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == 4096, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x1000, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == 8192, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x2000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 16384, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x4000, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 32768, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x8000, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 65536, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x10000, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 131072, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x20000, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 262144, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x40000, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 524288, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x80000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 1048576, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x100000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 2097152, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x200000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 4194304, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x400000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 8388608, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x800000, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 16777216, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x1000000, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 33554432, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x2000000, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 67108864, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x4000000, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 134217728, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x8000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 268435456, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x10000000, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 536870912, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x20000000, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 1073741824, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x40000000, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 2147483648, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x80000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 4294967296, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x100000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x100000000, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 8589934592, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x200000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x200000000, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 17179869184, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x400000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x400000000, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == 34359738368, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x800000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x800000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == 68719476736, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x1000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x1000000000, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == 137438953472, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x2000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x2000000000, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == 274877906944, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x4000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x4000000000, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == 549755813888, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x8000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x8000000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val == 1099511627776, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x10000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x10000000000, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val == 2199023255552, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x20000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x20000000000, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val == 4398046511104, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x40000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x40000000000, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val == 8796093022208, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x80000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x80000000000, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val == 17592186044416, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x100000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x100000000000, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val == 35184372088832, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x200000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x200000000000, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val == 70368744177664, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x400000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x400000000000, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val == 140737488355328, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x800000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x800000000000, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val == 281474976710656, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x1000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x1000000000000, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val == 562949953421312, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x2000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x2000000000000, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val == 1125899906842624, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x4000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x4000000000000, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val == 2251799813685248, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x8000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x8000000000000, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val == 4503599627370496, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x10000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x10000000000000, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val == 9007199254740992, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x20000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x20000000000000, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val == 18014398509481984, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x40000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x40000000000000, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val == 36028797018963968, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x80000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x80000000000000, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val == 72057594037927936, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x100000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x100000000000000, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val == 144115188075855872, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x200000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x200000000000000, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val == 288230376151711744, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x400000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x400000000000000, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val == 576460752303423488, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x800000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x800000000000000, x1, 128*XLEN/8, x2) + +inst_129: +// rs1_val == 1152921504606846976, +// opcode: c.zext.w ; op1=dest:x15 ; op1val:0x1000000000000000; +TEST_CRD_OP(c.zext.w, x15, 0x0000000000000000, 0x1000000000000000, x1, 129*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 130*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END From 6e4a21832a15ebbc0d2cefcce6d40ff3b01008a2 Mon Sep 17 00:00:00 2001 From: Abdul Wadood Date: Tue, 20 Jun 2023 16:28:17 +0500 Subject: [PATCH 5/7] Added cnot and cmul test suites Signed-off-by: Abdul Wadood --- riscv-test-suite/rv32i_m/C/src/cmul-01.S | 3042 +++++++++++++++++++ riscv-test-suite/rv32i_m/C/src/cnot-01.S | 417 +++ riscv-test-suite/rv64i_m/C/src/cmul-01.S | 3482 ++++++++++++++++++++++ riscv-test-suite/rv64i_m/C/src/cnot-01.S | 737 +++++ 4 files changed, 7678 insertions(+) create mode 100644 riscv-test-suite/rv32i_m/C/src/cmul-01.S create mode 100644 riscv-test-suite/rv32i_m/C/src/cnot-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/cmul-01.S create mode 100644 riscv-test-suite/rv64i_m/C/src/cnot-01.S diff --git a/riscv-test-suite/rv32i_m/C/src/cmul-01.S b/riscv-test-suite/rv32i_m/C/src/cmul-01.S new file mode 100644 index 000000000..766a928b2 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/cmul-01.S @@ -0,0 +1,3042 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.mul instruction of the RISC-V RV32M_Zca_Zcb extension for the cmul covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IM_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*M.*Zca.*Zcb.*);def TEST_CASE_1=True;",cmul) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 != rs2, rs1==x12, rs2==x10, rs1_val != rs2_val, rs1_val == 4096, rs1_val > 0 and rs2_val < 0 +// opcode: c.mul; op1:x12; op2:x10; op1val:0x1000; op2val:-0x1 +TEST_CR_OP( c.mul, x12, x10, 0xfffff000, 0x1000, -0x1, x1, 0*XLEN/8, x2) + +inst_1: +// rs1 == rs2, rs1==x15, rs2==x15, rs1_val < 0 and rs2_val < 0, rs2_val == -2049 +// opcode: c.mul; op1:x15; op2:x15; op1val:-0xb503; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x15, 0x7ffd3e09, -0xb503, -0xb503, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x13, rs2==x9, rs1_val < 0 and rs2_val > 0, rs2_val == 262144 +// opcode: c.mul; op1:x13; op2:x9; op1val:-0x1; op2val:0x40000 +TEST_CR_OP( c.mul, x13, x9, 0xfffc0000, -0x1, 0x40000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x14, rs2==x8, rs1_val == (-2**(xlen-1)), rs1_val == -2147483648, rs2_val == 512 +// opcode: c.mul; op1:x14; op2:x8; op1val:-0x80000000; op2val:0x200 +TEST_CR_OP( c.mul, x14, x8, 0x0, -0x80000000, 0x200, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x11, rs2==x14, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs1_val == 2147483647 +// opcode: c.mul; op1:x11; op2:x14; op1val:0x7fffffff; op2val:0x3fffffff +TEST_CR_OP( c.mul, x11, x14, 0x40000001, 0x7fffffff, 0x3fffffff, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x10, rs2==x13, rs1_val == 0, rs2_val == -262145 +// opcode: c.mul; op1:x10; op2:x13; op1val:0x0; op2val:-0x40001 +TEST_CR_OP( c.mul, x10, x13, 0x0, 0x0, -0x40001, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x8, rs2==x11, rs2_val == -2, rs1_val == -1431655766 +// opcode: c.mul; op1:x8; op2:x11; op1val:-0x55555556; op2val:-0x2 +TEST_CR_OP( c.mul, x8, x11, 0xaaaaaaac, -0x55555556, -0x2, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x9, rs2==x12, rs2_val == -3, +// opcode: c.mul; op1:x9; op2:x12; op1val:0x66666666; op2val:-0x3 +TEST_CR_OP( c.mul, x9, x12, 0xccccccce, 0x66666666, -0x3, x1, 7*XLEN/8, x2) + +inst_8: +// rs2_val == -5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x7fffffff; op2val:-0x5 +TEST_CR_OP( c.mul, x15, x14, 0x80000005, 0x7fffffff, -0x5, x1, 8*XLEN/8, x2) + +inst_9: +// rs2_val == -9, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000000; op2val:-0x9 +TEST_CR_OP( c.mul, x15, x14, 0x40000000, -0x40000000, -0x9, x1, 9*XLEN/8, x2) + +inst_10: +// rs2_val == -17, rs1_val == -33554433 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2000001; op2val:-0x11 +TEST_CR_OP( c.mul, x15, x14, 0x22000011, -0x2000001, -0x11, x1, 10*XLEN/8, x2) + +inst_11: +// rs2_val == -33, rs1_val == 4 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x21 +TEST_CR_OP( c.mul, x15, x14, 0xffffff7c, 0x4, -0x21, x1, 11*XLEN/8, x2) + +inst_12: +// rs2_val == -65, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0x41 +TEST_CR_OP( c.mul, x15, x14, 0xffffff3d, 0x3, -0x41, x1, 12*XLEN/8, x2) + +inst_13: +// rs2_val == -129, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000000; op2val:-0x81 +TEST_CR_OP( c.mul, x15, x14, 0x40000000, -0x40000000, -0x81, x1, 13*XLEN/8, x2) + +inst_14: +// rs2_val == -257, rs1_val == 2048 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800; op2val:-0x101 +TEST_CR_OP( c.mul, x15, x14, 0xfff7f800, 0x800, -0x101, x1, 14*XLEN/8, x2) + +inst_15: +// rs2_val == -513, rs1_val == 4194304 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400000; op2val:-0x201 +TEST_CR_OP( c.mul, x15, x14, 0x7fc00000, 0x400000, -0x201, x1, 15*XLEN/8, x2) + +inst_16: +// rs2_val == -1025, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x7fffffff; op2val:-0x401 +TEST_CR_OP( c.mul, x15, x14, 0x80000401, 0x7fffffff, -0x401, x1, 16*XLEN/8, x2) + +inst_17: +// rs2_val == -4097, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:-0x1001 +TEST_CR_OP( c.mul, x15, x14, 0xb50e503, -0xb503, -0x1001, x1, 17*XLEN/8, x2) + +inst_18: +// rs2_val == -8193, rs1_val == 536870912 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20000000; op2val:-0x2001 +TEST_CR_OP( c.mul, x15, x14, 0xe0000000, 0x20000000, -0x2001, x1, 18*XLEN/8, x2) + +inst_19: +// rs2_val == -16385, rs1_val == -131073 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20001; op2val:-0x4001 +TEST_CR_OP( c.mul, x15, x14, 0x80024001, -0x20001, -0x4001, x1, 19*XLEN/8, x2) + +inst_20: +// rs2_val == -32769, rs1_val == 128 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80; op2val:-0x8001 +TEST_CR_OP( c.mul, x15, x14, 0xffbfff80, 0x80, -0x8001, x1, 20*XLEN/8, x2) + +inst_21: +// rs2_val == -65537, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3fffffff; op2val:-0x10001 +TEST_CR_OP( c.mul, x15, x14, 0xc0010001, 0x3fffffff, -0x10001, x1, 21*XLEN/8, x2) + +inst_22: +// rs2_val == -131073, rs1_val == -268435457 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10000001; op2val:-0x20001 +TEST_CR_OP( c.mul, x15, x14, 0x10020001, -0x10000001, -0x20001, x1, 22*XLEN/8, x2) + +inst_23: +// rs2_val == -524289, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:-0x80001 +TEST_CR_OP( c.mul, x15, x14, 0x57e74afd, 0xb503, -0x80001, x1, 23*XLEN/8, x2) + +inst_24: +// rs2_val == -1048577, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:-0x100001 +TEST_CR_OP( c.mul, x15, x14, 0x33299999, 0x66666667, -0x100001, x1, 24*XLEN/8, x2) + +inst_25: +// rs2_val == -2097153, rs1_val == -3 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x3; op2val:-0x200001 +TEST_CR_OP( c.mul, x15, x14, 0x600003, -0x3, -0x200001, x1, 25*XLEN/8, x2) + +inst_26: +// rs2_val == -4194305, rs1_val == -32769 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8001; op2val:-0x400001 +TEST_CR_OP( c.mul, x15, x14, 0x408001, -0x8001, -0x400001, x1, 26*XLEN/8, x2) + +inst_27: +// rs2_val == -8388609, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x6; op2val:-0x800001 +TEST_CR_OP( c.mul, x15, x14, 0x3000006, -0x6, -0x800001, x1, 27*XLEN/8, x2) + +inst_28: +// rs2_val == -16777217, rs1_val == -33 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x21; op2val:-0x1000001 +TEST_CR_OP( c.mul, x15, x14, 0x21000021, -0x21, -0x1000001, x1, 28*XLEN/8, x2) + +inst_29: +// rs2_val == -33554433, rs1_val == -67108865 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000001; op2val:-0x2000001 +TEST_CR_OP( c.mul, x15, x14, 0x6000001, -0x4000001, -0x2000001, x1, 29*XLEN/8, x2) + +inst_30: +// rs2_val == -67108865, rs1_val == 2 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0x4000001 +TEST_CR_OP( c.mul, x15, x14, 0xf7fffffe, 0x2, -0x4000001, x1, 30*XLEN/8, x2) + +inst_31: +// rs2_val == -134217729, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x8000001 +TEST_CR_OP( c.mul, x15, x14, 0xd7fffffb, 0x5, -0x8000001, x1, 31*XLEN/8, x2) + +inst_32: +// rs2_val == -268435457, rs1_val == 32 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20; op2val:-0x10000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffe0, 0x20, -0x10000001, x1, 32*XLEN/8, x2) + +inst_33: +// rs2_val == -536870913, rs1_val == 16384 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000; op2val:-0x20000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffc000, 0x4000, -0x20000001, x1, 33*XLEN/8, x2) + +inst_34: +// rs2_val == -1073741825, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x3; op2val:-0x40000001 +TEST_CR_OP( c.mul, x15, x14, 0xc0000003, -0x3, -0x40000001, x1, 34*XLEN/8, x2) + +inst_35: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1), rs1_val == -536870913 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20000001; op2val:0x7fffffff +TEST_CR_OP( c.mul, x15, x14, 0xa0000001, -0x20000001, 0x7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == -2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0xfffe95f6, -0x2, 0xb505, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == -5, rs2_val == 0 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x5, 0x0, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == -9, rs2_val == 16 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x9; op2val:0x10 +TEST_CR_OP( c.mul, x15, x14, 0xffffff70, -0x9, 0x10, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == -17, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x11; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfff3fabc, -0x11, 0xb504, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == -65, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x41; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xd, -0x41, 0x33333333, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == -129, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x81; op2val:-0x8 +TEST_CR_OP( c.mul, x15, x14, 0x408, -0x81, -0x8, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == -257, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x101; op2val:0x3fffffff +TEST_CR_OP( c.mul, x15, x14, 0xc0000101, -0x101, 0x3fffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == -513, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x201; op2val:-0x20001 +TEST_CR_OP( c.mul, x15, x14, 0x4020201, -0x201, -0x20001, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == -1025, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x401; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xffffe7fa, -0x401, 0x6, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == -2049, rs2_val == 1073741824 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x801; op2val:0x40000000 +TEST_CR_OP( c.mul, x15, x14, 0xc0000000, -0x801, 0x40000000, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == -4097, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1001; op2val:-0x41 +TEST_CR_OP( c.mul, x15, x14, 0x41041, -0x1001, -0x41, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == -8193, rs2_val == 8192 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2001; op2val:0x2000 +TEST_CR_OP( c.mul, x15, x14, 0xfbffe000, -0x2001, 0x2000, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == -16385, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4001; op2val:-0x41 +TEST_CR_OP( c.mul, x15, x14, 0x104041, -0x4001, -0x41, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == -65537, rs2_val == 33554432 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10001; op2val:0x2000000 +TEST_CR_OP( c.mul, x15, x14, 0xfe000000, -0x10001, 0x2000000, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == -262145, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40001; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xfffd9999, -0x40001, 0x66666667, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == -524289, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80001; op2val:-0x3 +TEST_CR_OP( c.mul, x15, x14, 0x180003, -0x80001, -0x3, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == -1048577, rs2_val == -1431655766 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100001; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaab55556, -0x100001, -0x55555556, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == -2097153, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x200001; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x200001, 0x0, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == -4194305, rs2_val == 2 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x400001; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xff7ffffe, -0x400001, 0x2, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == -8388609, rs2_val == 32 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x800001; op2val:0x20 +TEST_CR_OP( c.mul, x15, x14, 0xefffffe0, -0x800001, 0x20, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == -16777217, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1000001; op2val:0x20 +TEST_CR_OP( c.mul, x15, x14, 0xdfffffe0, -0x1000001, 0x20, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == -134217729, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8000001; op2val:-0x41 +TEST_CR_OP( c.mul, x15, x14, 0x8000041, -0x8000001, -0x41, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == -1073741825, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000001; op2val:-0x9 +TEST_CR_OP( c.mul, x15, x14, 0x40000009, -0x40000001, -0x9, x1, 58*XLEN/8, x2) + +inst_59: +// rs2_val == 1, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x201; op2val:0x1 +TEST_CR_OP( c.mul, x15, x14, 0xfffffdff, -0x201, 0x1, x1, 59*XLEN/8, x2) + +inst_60: +// rs2_val == 4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100001; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xffbffffc, -0x100001, 0x4, x1, 60*XLEN/8, x2) + +inst_61: +// rs2_val == 8, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x8 +TEST_CR_OP( c.mul, x15, x14, 0x999999a0, 0x33333334, 0x8, x1, 61*XLEN/8, x2) + +inst_62: +// rs2_val == 64, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000001; op2val:0x40 +TEST_CR_OP( c.mul, x15, x14, 0xffffffc0, -0x40000001, 0x40, x1, 62*XLEN/8, x2) + +inst_63: +// rs2_val == 128, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x80 +TEST_CR_OP( c.mul, x15, x14, 0x280, 0x5, 0x80, x1, 63*XLEN/8, x2) + +inst_64: +// rs2_val == 256, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xa; op2val:0x100 +TEST_CR_OP( c.mul, x15, x14, 0xfffff600, -0xa, 0x100, x1, 64*XLEN/8, x2) + +inst_65: +// rs2_val == 1024, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x400 +TEST_CR_OP( c.mul, x15, x14, 0xfd2bf000, -0xb504, 0x400, x1, 65*XLEN/8, x2) + +inst_66: +// rs2_val == 2048, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x201; op2val:0x800 +TEST_CR_OP( c.mul, x15, x14, 0xffeff800, -0x201, 0x800, x1, 66*XLEN/8, x2) + +inst_67: +// rs2_val == 4096, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x1000 +TEST_CR_OP( c.mul, x15, x14, 0xf4afc000, -0xb504, 0x1000, x1, 67*XLEN/8, x2) + +inst_68: +// rs2_val == 16384, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x6; op2val:0x4000 +TEST_CR_OP( c.mul, x15, x14, 0xfffe8000, -0x6, 0x4000, x1, 68*XLEN/8, x2) + +inst_69: +// rs2_val == 32768, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x8000 +TEST_CR_OP( c.mul, x15, x14, 0x5a818000, 0xb503, 0x8000, x1, 69*XLEN/8, x2) + +inst_70: +// rs2_val == 65536, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x801; op2val:0x10000 +TEST_CR_OP( c.mul, x15, x14, 0xf7ff0000, -0x801, 0x10000, x1, 70*XLEN/8, x2) + +inst_71: +// rs2_val == 131072, rs1_val == 512 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200; op2val:0x20000 +TEST_CR_OP( c.mul, x15, x14, 0x4000000, 0x200, 0x20000, x1, 71*XLEN/8, x2) + +inst_72: +// rs2_val == 524288, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x41; op2val:0x80000 +TEST_CR_OP( c.mul, x15, x14, 0xfdf80000, -0x41, 0x80000, x1, 72*XLEN/8, x2) + +inst_73: +// rs2_val == 1048576, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000001; op2val:0x100000 +TEST_CR_OP( c.mul, x15, x14, 0xfff00000, -0x40000001, 0x100000, x1, 73*XLEN/8, x2) + +inst_74: +// rs2_val == 2097152, rs1_val == 1431655765 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x200000 +TEST_CR_OP( c.mul, x15, x14, 0xaaa00000, 0x55555555, 0x200000, x1, 74*XLEN/8, x2) + +inst_75: +// rs2_val == 4194304, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x401; op2val:0x400000 +TEST_CR_OP( c.mul, x15, x14, 0xffc00000, -0x401, 0x400000, x1, 75*XLEN/8, x2) + +inst_76: +// rs2_val == 8388608, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x400001; op2val:0x800000 +TEST_CR_OP( c.mul, x15, x14, 0xff800000, -0x400001, 0x800000, x1, 76*XLEN/8, x2) + +inst_77: +// rs2_val == 16777216, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x1000000 +TEST_CR_OP( c.mul, x15, x14, 0x67000000, 0x66666667, 0x1000000, x1, 77*XLEN/8, x2) + +inst_78: +// rs2_val == 67108864, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x4000000 +TEST_CR_OP( c.mul, x15, x14, 0xa8000000, -0x55555556, 0x4000000, x1, 78*XLEN/8, x2) + +inst_79: +// rs2_val == 134217728, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x7; op2val:0x8000000 +TEST_CR_OP( c.mul, x15, x14, 0xc8000000, -0x7, 0x8000000, x1, 79*XLEN/8, x2) + +inst_80: +// rs2_val == 268435456, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20001; op2val:0x10000000 +TEST_CR_OP( c.mul, x15, x14, 0xf0000000, -0x20001, 0x10000000, x1, 80*XLEN/8, x2) + +inst_81: +// rs2_val == 536870912, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200; op2val:0x20000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x200, 0x20000000, x1, 81*XLEN/8, x2) + +inst_82: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20000000; op2val:-0x80000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x20000000, -0x80000000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 1, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1; op2val:-0x2000001 +TEST_CR_OP( c.mul, x15, x14, 0xfdffffff, 0x1, -0x2000001, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 8, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8; op2val:-0xa +TEST_CR_OP( c.mul, x15, x14, 0xffffffb0, 0x8, -0xa, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 16, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x40, 0x10, 0x4, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 64, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40; op2val:0x400 +TEST_CR_OP( c.mul, x15, x14, 0x10000, 0x40, 0x400, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 256, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100; op2val:-0x2 +TEST_CR_OP( c.mul, x15, x14, 0xfffffe00, 0x100, -0x2, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 1024, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400; op2val:0x10000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x400, 0x10000000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 8192, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000; op2val:0x400000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x2000, 0x400000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 32768, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8000; op2val:0x2000 +TEST_CR_OP( c.mul, x15, x14, 0x10000000, 0x8000, 0x2000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 65536, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10000; op2val:0x1000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x10000, 0x1000000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 131072, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20000; op2val:-0x41 +TEST_CR_OP( c.mul, x15, x14, 0xff7e0000, 0x20000, -0x41, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 262144, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000; op2val:-0x4000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffc0000, 0x40000, -0x4000001, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 524288, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000; op2val:0x8 +TEST_CR_OP( c.mul, x15, x14, 0x400000, 0x80000, 0x8, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 1048576, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100000; op2val:0x100 +TEST_CR_OP( c.mul, x15, x14, 0x10000000, 0x100000, 0x100, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 2097152, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000; op2val:0x20000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x200000, 0x20000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 8388608, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800000; op2val:-0x200001 +TEST_CR_OP( c.mul, x15, x14, 0xff800000, 0x800000, -0x200001, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 16777216, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1000000; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x1000000, 0x0, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 33554432, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000000; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xc000000, 0x2000000, 0x6, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 67108864, rs1_val == rs2_val +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000000; op2val:0x4000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x4000000, 0x4000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 134217728, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8000000; op2val:-0x2000001 +TEST_CR_OP( c.mul, x15, x14, 0xf8000000, 0x8000000, -0x2000001, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 268435456, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10000000; op2val:0x3fffffff +TEST_CR_OP( c.mul, x15, x14, 0xf0000000, 0x10000000, 0x3fffffff, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 1073741824, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000000; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x40000000, 0x0, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val==3 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x9, 0x3, 0x3, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val==3 and rs2_val==1431655765, rs2_val == 1431655765 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff, 0x3, 0x55555555, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val==3 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe, 0x3, -0x55555556, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val==3 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xf, 0x3, 0x5, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val==3 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x99999999, 0x3, 0x33333333, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val==3 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x33333332, 0x3, 0x66666666, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val==3 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfffde0f4, 0x3, -0xb504, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val==3 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x21f0c, 0x3, 0xb504, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val==3 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x6, 0x3, 0x2, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val==3 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc, 0x3, 0x55555554, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val==3 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x3, 0x0, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val==3 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x3, 0x4, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val==3 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x99999996, 0x3, 0x33333332, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val==3 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x3333332f, 0x3, 0x66666665, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val==3 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x21f09, 0x3, 0xb503, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val==3 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x2, 0x3, 0x55555556, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x1, 0x3, -0x55555555, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val==3 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x12, 0x3, 0x6, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val==3 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x9999999c, 0x3, 0x33333334, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val==3 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x33333335, 0x3, 0x66666667, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val==3 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xfffde0f7, 0x3, -0xb503, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val==3 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x21f0f, 0x3, 0xb505, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val==1431655765 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff, 0x55555555, 0x3, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e39, 0x55555555, 0x55555555, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c72, 0x55555555, -0x55555556, x1, 128*XLEN/8, x2) + +inst_129: +// rs1_val==1431655765 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa9, 0x55555555, 0x5, x1, 129*XLEN/8, x2) + +inst_130: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeef, 0x55555555, 0x33333333, x1, 130*XLEN/8, x2) + +inst_131: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xddddddde, 0x55555555, 0x66666666, x1, 131*XLEN/8, x2) + +inst_132: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x555591ac, 0x55555555, -0xb504, x1, 132*XLEN/8, x2) + +inst_133: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa6e54, 0x55555555, 0xb504, x1, 133*XLEN/8, x2) + +inst_134: +// rs1_val==1431655765 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa, 0x55555555, 0x2, x1, 134*XLEN/8, x2) + +inst_135: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e4, 0x55555555, 0x55555554, x1, 135*XLEN/8, x2) + +inst_136: +// rs1_val==1431655765 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x55555555, 0x0, x1, 136*XLEN/8, x2) + +inst_137: +// rs1_val==1431655765 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x55555554, 0x55555555, 0x4, x1, 137*XLEN/8, x2) + +inst_138: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a, 0x55555555, 0x33333332, x1, 138*XLEN/8, x2) + +inst_139: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x88888889, 0x55555555, 0x66666665, x1, 139*XLEN/8, x2) + +inst_140: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x555518ff, 0x55555555, 0xb503, x1, 140*XLEN/8, x2) + +inst_141: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e, 0x55555555, 0x55555556, x1, 141*XLEN/8, x2) + +inst_142: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c7, 0x55555555, -0x55555555, x1, 142*XLEN/8, x2) + +inst_143: +// rs1_val==1431655765 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe, 0x55555555, 0x6, x1, 143*XLEN/8, x2) + +inst_144: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x44444444, 0x55555555, 0x33333334, x1, 144*XLEN/8, x2) + +inst_145: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x33333333, 0x55555555, 0x66666667, x1, 145*XLEN/8, x2) + +inst_146: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xaaaae701, 0x55555555, -0xb503, x1, 146*XLEN/8, x2) + +inst_147: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555555; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0xffffc3a9, 0x55555555, 0xb505, x1, 147*XLEN/8, x2) + +inst_148: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe, -0x55555556, 0x3, x1, 148*XLEN/8, x2) + +inst_149: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c72, -0x55555556, 0x55555555, x1, 149*XLEN/8, x2) + +inst_150: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e4, -0x55555556, -0x55555556, x1, 150*XLEN/8, x2) + +inst_151: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x55555552, -0x55555556, 0x5, x1, 151*XLEN/8, x2) + +inst_152: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xddddddde, -0x55555556, 0x33333333, x1, 152*XLEN/8, x2) + +inst_153: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbc, -0x55555556, 0x66666666, x1, 153*XLEN/8, x2) + +inst_154: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xaaab2358, -0x55555556, -0xb504, x1, 154*XLEN/8, x2) + +inst_155: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x5554dca8, -0x55555556, 0xb504, x1, 155*XLEN/8, x2) + +inst_156: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x55555554, -0x55555556, 0x2, x1, 156*XLEN/8, x2) + +inst_157: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c8, -0x55555556, 0x55555554, x1, 157*XLEN/8, x2) + +inst_158: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x55555556, 0x0, x1, 158*XLEN/8, x2) + +inst_159: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa8, -0x55555556, 0x4, x1, 159*XLEN/8, x2) + +inst_160: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x33333334, -0x55555556, 0x33333332, x1, 160*XLEN/8, x2) + +inst_161: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x11111112, -0x55555556, 0x66666665, x1, 161*XLEN/8, x2) + +inst_162: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa31fe, -0x55555556, 0xb503, x1, 162*XLEN/8, x2) + +inst_163: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c, -0x55555556, 0x55555556, x1, 163*XLEN/8, x2) + +inst_164: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e, -0x55555556, -0x55555555, x1, 164*XLEN/8, x2) + +inst_165: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc, -0x55555556, 0x6, x1, 165*XLEN/8, x2) + +inst_166: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x88888888, -0x55555556, 0x33333334, x1, 166*XLEN/8, x2) + +inst_167: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x66666666, -0x55555556, 0x66666667, x1, 167*XLEN/8, x2) + +inst_168: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x5555ce02, -0x55555556, -0xb503, x1, 168*XLEN/8, x2) + +inst_169: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555556; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0xffff8752, -0x55555556, 0xb505, x1, 169*XLEN/8, x2) + +inst_170: +// rs1_val==5 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xf, 0x5, 0x3, x1, 170*XLEN/8, x2) + +inst_171: +// rs1_val==5 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa9, 0x5, 0x55555555, x1, 171*XLEN/8, x2) + +inst_172: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555552, 0x5, -0x55555556, x1, 172*XLEN/8, x2) + +inst_173: +// rs1_val==5 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x19, 0x5, 0x5, x1, 173*XLEN/8, x2) + +inst_174: +// rs1_val==5 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff, 0x5, 0x33333333, x1, 174*XLEN/8, x2) + +inst_175: +// rs1_val==5 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe, 0x5, 0x66666666, x1, 175*XLEN/8, x2) + +inst_176: +// rs1_val==5 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfffc76ec, 0x5, -0xb504, x1, 176*XLEN/8, x2) + +inst_177: +// rs1_val==5 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x38914, 0x5, 0xb504, x1, 177*XLEN/8, x2) + +inst_178: +// rs1_val==5 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xa, 0x5, 0x2, x1, 178*XLEN/8, x2) + +inst_179: +// rs1_val==5 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa4, 0x5, 0x55555554, x1, 179*XLEN/8, x2) + +inst_180: +// rs1_val==5 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x5, 0x0, x1, 180*XLEN/8, x2) + +inst_181: +// rs1_val==5 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x14, 0x5, 0x4, x1, 181*XLEN/8, x2) + +inst_182: +// rs1_val==5 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffa, 0x5, 0x33333332, x1, 182*XLEN/8, x2) + +inst_183: +// rs1_val==5 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff9, 0x5, 0x66666665, x1, 183*XLEN/8, x2) + +inst_184: +// rs1_val==5 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x3890f, 0x5, 0xb503, x1, 184*XLEN/8, x2) + +inst_185: +// rs1_val==5 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaae, 0x5, 0x55555556, x1, 185*XLEN/8, x2) + +inst_186: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x55555557, 0x5, -0x55555555, x1, 186*XLEN/8, x2) + +inst_187: +// rs1_val==5 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x1e, 0x5, 0x6, x1, 187*XLEN/8, x2) + +inst_188: +// rs1_val==5 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x5, 0x33333334, x1, 188*XLEN/8, x2) + +inst_189: +// rs1_val==5 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x3, 0x5, 0x66666667, x1, 189*XLEN/8, x2) + +inst_190: +// rs1_val==5 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xfffc76f1, 0x5, -0xb503, x1, 190*XLEN/8, x2) + +inst_191: +// rs1_val==5 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x38919, 0x5, 0xb505, x1, 191*XLEN/8, x2) + +inst_192: +// rs1_val==858993459 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x99999999, 0x33333333, 0x3, x1, 192*XLEN/8, x2) + +inst_193: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeef, 0x33333333, 0x55555555, x1, 193*XLEN/8, x2) + +inst_194: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xddddddde, 0x33333333, -0x55555556, x1, 194*XLEN/8, x2) + +inst_195: +// rs1_val==858993459 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff, 0x33333333, 0x5, x1, 195*XLEN/8, x2) + +inst_196: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xc28f5c29, 0x33333333, 0x33333333, x1, 196*XLEN/8, x2) + +inst_197: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x851eb852, 0x33333333, 0x66666666, x1, 197*XLEN/8, x2) + +inst_198: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x2434, 0x33333333, -0xb504, x1, 198*XLEN/8, x2) + +inst_199: +// rs1_val==858993459 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xffffdbcc, 0x33333333, 0xb504, x1, 199*XLEN/8, x2) + +inst_200: +// rs1_val==858993459 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x66666666, 0x33333333, 0x2, x1, 200*XLEN/8, x2) + +inst_201: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbc, 0x33333333, 0x55555554, x1, 201*XLEN/8, x2) + +inst_202: +// rs1_val==858993459 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x33333333, 0x0, x1, 202*XLEN/8, x2) + +inst_203: +// rs1_val==858993459 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x33333333, 0x4, x1, 203*XLEN/8, x2) + +inst_204: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x8f5c28f6, 0x33333333, 0x33333332, x1, 204*XLEN/8, x2) + +inst_205: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851f, 0x33333333, 0x66666665, x1, 205*XLEN/8, x2) + +inst_206: +// rs1_val==858993459 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xcccca899, 0x33333333, 0xb503, x1, 206*XLEN/8, x2) + +inst_207: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x22222222, 0x33333333, 0x55555556, x1, 207*XLEN/8, x2) + +inst_208: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x11111111, 0x33333333, -0x55555555, x1, 208*XLEN/8, x2) + +inst_209: +// rs1_val==858993459 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x33333332, 0x33333333, 0x6, x1, 209*XLEN/8, x2) + +inst_210: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xf5c28f5c, 0x33333333, 0x33333334, x1, 210*XLEN/8, x2) + +inst_211: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb85, 0x33333333, 0x66666667, x1, 211*XLEN/8, x2) + +inst_212: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x33335767, 0x33333333, -0xb503, x1, 212*XLEN/8, x2) + +inst_213: +// rs1_val==858993459 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333333; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x33330eff, 0x33333333, 0xb505, x1, 213*XLEN/8, x2) + +inst_214: +// rs1_val==1717986918 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x33333332, 0x66666666, 0x3, x1, 214*XLEN/8, x2) + +inst_215: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xddddddde, 0x66666666, 0x55555555, x1, 215*XLEN/8, x2) + +inst_216: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbc, 0x66666666, -0x55555556, x1, 216*XLEN/8, x2) + +inst_217: +// rs1_val==1717986918 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe, 0x66666666, 0x5, x1, 217*XLEN/8, x2) + +inst_218: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x851eb852, 0x66666666, 0x33333333, x1, 218*XLEN/8, x2) + +inst_219: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a4, 0x66666666, 0x66666666, x1, 219*XLEN/8, x2) + +inst_220: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x4868, 0x66666666, -0xb504, x1, 220*XLEN/8, x2) + +inst_221: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xffffb798, 0x66666666, 0xb504, x1, 221*XLEN/8, x2) + +inst_222: +// rs1_val==1717986918 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x66666666, 0x2, x1, 222*XLEN/8, x2) + +inst_223: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x77777778, 0x66666666, 0x55555554, x1, 223*XLEN/8, x2) + +inst_224: +// rs1_val==1717986918 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x66666666, 0x0, x1, 224*XLEN/8, x2) + +inst_225: +// rs1_val==1717986918 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x99999998, 0x66666666, 0x4, x1, 225*XLEN/8, x2) + +inst_226: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x1eb851ec, 0x66666666, 0x33333332, x1, 226*XLEN/8, x2) + +inst_227: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3e, 0x66666666, 0x66666665, x1, 227*XLEN/8, x2) + +inst_228: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x99995132, 0x66666666, 0xb503, x1, 228*XLEN/8, x2) + +inst_229: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x44444444, 0x66666666, 0x55555556, x1, 229*XLEN/8, x2) + +inst_230: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x22222222, 0x66666666, -0x55555555, x1, 230*XLEN/8, x2) + +inst_231: +// rs1_val==1717986918 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x66666664, 0x66666666, 0x6, x1, 231*XLEN/8, x2) + +inst_232: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eb8, 0x66666666, 0x33333334, x1, 232*XLEN/8, x2) + +inst_233: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x70a3d70a, 0x66666666, 0x66666667, x1, 233*XLEN/8, x2) + +inst_234: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x6666aece, 0x66666666, -0xb503, x1, 234*XLEN/8, x2) + +inst_235: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666666; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x66661dfe, 0x66666666, 0xb505, x1, 235*XLEN/8, x2) + +inst_236: +// rs1_val==-46340 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffde0f4, -0xb504, 0x3, x1, 236*XLEN/8, x2) + +inst_237: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x555591ac, -0xb504, 0x55555555, x1, 237*XLEN/8, x2) + +inst_238: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaab2358, -0xb504, -0x55555556, x1, 238*XLEN/8, x2) + +inst_239: +// rs1_val==-46340 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffc76ec, -0xb504, 0x5, x1, 239*XLEN/8, x2) + +inst_240: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x2434, -0xb504, 0x33333333, x1, 240*XLEN/8, x2) + +inst_241: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x4868, -0xb504, 0x66666666, x1, 241*XLEN/8, x2) + +inst_242: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x7ffea810, -0xb504, -0xb504, x1, 242*XLEN/8, x2) + +inst_243: +// rs1_val==-46340 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x800157f0, -0xb504, 0xb504, x1, 243*XLEN/8, x2) + +inst_244: +// rs1_val==-46340 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xfffe95f8, -0xb504, 0x2, x1, 244*XLEN/8, x2) + +inst_245: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x555646b0, -0xb504, 0x55555554, x1, 245*XLEN/8, x2) + +inst_246: +// rs1_val==-46340 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0xb504, 0x0, x1, 246*XLEN/8, x2) + +inst_247: +// rs1_val==-46340 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xfffd2bf0, -0xb504, 0x4, x1, 247*XLEN/8, x2) + +inst_248: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xd938, -0xb504, 0x33333332, x1, 248*XLEN/8, x2) + +inst_249: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xfd6c, -0xb504, 0x66666665, x1, 249*XLEN/8, x2) + +inst_250: +// rs1_val==-46340 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x80020cf4, -0xb504, 0xb503, x1, 250*XLEN/8, x2) + +inst_251: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x5554dca8, -0xb504, 0x55555556, x1, 251*XLEN/8, x2) + +inst_252: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa6e54, -0xb504, -0x55555555, x1, 252*XLEN/8, x2) + +inst_253: +// rs1_val==-46340 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffbc1e8, -0xb504, 0x6, x1, 253*XLEN/8, x2) + +inst_254: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xffff6f30, -0xb504, 0x33333334, x1, 254*XLEN/8, x2) + +inst_255: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xffff9364, -0xb504, 0x66666667, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_256: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x7ffdf30c, -0xb504, -0xb503, x1, 0*XLEN/8, x2) + +inst_257: +// rs1_val==-46340 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x8000a2ec, -0xb504, 0xb505, x1, 1*XLEN/8, x2) + +inst_258: +// rs1_val==46340 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x21f0c, 0xb504, 0x3, x1, 2*XLEN/8, x2) + +inst_259: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa6e54, 0xb504, 0x55555555, x1, 3*XLEN/8, x2) + +inst_260: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x5554dca8, 0xb504, -0x55555556, x1, 4*XLEN/8, x2) + +inst_261: +// rs1_val==46340 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x38914, 0xb504, 0x5, x1, 5*XLEN/8, x2) + +inst_262: +// rs1_val==46340 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xffffdbcc, 0xb504, 0x33333333, x1, 6*XLEN/8, x2) + +inst_263: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xffffb798, 0xb504, 0x66666666, x1, 7*XLEN/8, x2) + +inst_264: +// rs1_val==46340 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x800157f0, 0xb504, -0xb504, x1, 8*XLEN/8, x2) + +inst_265: +// rs1_val==46340 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x7ffea810, 0xb504, 0xb504, x1, 9*XLEN/8, x2) + +inst_266: +// rs1_val==46340 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x16a08, 0xb504, 0x2, x1, 10*XLEN/8, x2) + +inst_267: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaa9b950, 0xb504, 0x55555554, x1, 11*XLEN/8, x2) + +inst_268: +// rs1_val==46340 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0xb504, 0x0, x1, 12*XLEN/8, x2) + +inst_269: +// rs1_val==46340 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x2d410, 0xb504, 0x4, x1, 13*XLEN/8, x2) + +inst_270: +// rs1_val==46340 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xffff26c8, 0xb504, 0x33333332, x1, 14*XLEN/8, x2) + +inst_271: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xffff0294, 0xb504, 0x66666665, x1, 15*XLEN/8, x2) + +inst_272: +// rs1_val==46340 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x7ffdf30c, 0xb504, 0xb503, x1, 16*XLEN/8, x2) + +inst_273: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaab2358, 0xb504, 0x55555556, x1, 17*XLEN/8, x2) + +inst_274: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x555591ac, 0xb504, -0x55555555, x1, 18*XLEN/8, x2) + +inst_275: +// rs1_val==46340 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x43e18, 0xb504, 0x6, x1, 19*XLEN/8, x2) + +inst_276: +// rs1_val==46340 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x90d0, 0xb504, 0x33333334, x1, 20*XLEN/8, x2) + +inst_277: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x6c9c, 0xb504, 0x66666667, x1, 21*XLEN/8, x2) + +inst_278: +// rs1_val==46340 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x80020cf4, 0xb504, -0xb503, x1, 22*XLEN/8, x2) + +inst_279: +// rs1_val==46340 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x7fff5d14, 0xb504, 0xb505, x1, 23*XLEN/8, x2) + +inst_280: +// rs1_val==2 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x6, 0x2, 0x3, x1, 24*XLEN/8, x2) + +inst_281: +// rs1_val==2 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa, 0x2, 0x55555555, x1, 25*XLEN/8, x2) + +inst_282: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555554, 0x2, -0x55555556, x1, 26*XLEN/8, x2) + +inst_283: +// rs1_val==2 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xa, 0x2, 0x5, x1, 27*XLEN/8, x2) + +inst_284: +// rs1_val==2 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x66666666, 0x2, 0x33333333, x1, 28*XLEN/8, x2) + +inst_285: +// rs1_val==2 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x2, 0x66666666, x1, 29*XLEN/8, x2) + +inst_286: +// rs1_val==2 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfffe95f8, 0x2, -0xb504, x1, 30*XLEN/8, x2) + +inst_287: +// rs1_val==2 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x16a08, 0x2, 0xb504, x1, 31*XLEN/8, x2) + +inst_288: +// rs1_val==2 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x2, 0x2, x1, 32*XLEN/8, x2) + +inst_289: +// rs1_val==2 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa8, 0x2, 0x55555554, x1, 33*XLEN/8, x2) + +inst_290: +// rs1_val==2 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x2, 0x0, x1, 34*XLEN/8, x2) + +inst_291: +// rs1_val==2 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x8, 0x2, 0x4, x1, 35*XLEN/8, x2) + +inst_292: +// rs1_val==2 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x66666664, 0x2, 0x33333332, x1, 36*XLEN/8, x2) + +inst_293: +// rs1_val==2 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xccccccca, 0x2, 0x66666665, x1, 37*XLEN/8, x2) + +inst_294: +// rs1_val==2 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x16a06, 0x2, 0xb503, x1, 38*XLEN/8, x2) + +inst_295: +// rs1_val==2 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaac, 0x2, 0x55555556, x1, 39*XLEN/8, x2) + +inst_296: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x55555556, 0x2, -0x55555555, x1, 40*XLEN/8, x2) + +inst_297: +// rs1_val==2 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x2, 0x6, x1, 41*XLEN/8, x2) + +inst_298: +// rs1_val==2 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x66666668, 0x2, 0x33333334, x1, 42*XLEN/8, x2) + +inst_299: +// rs1_val==2 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xccccccce, 0x2, 0x66666667, x1, 43*XLEN/8, x2) + +inst_300: +// rs1_val==2 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xfffe95fa, 0x2, -0xb503, x1, 44*XLEN/8, x2) + +inst_301: +// rs1_val==2 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x16a0a, 0x2, 0xb505, x1, 45*XLEN/8, x2) + +inst_302: +// rs1_val==1431655764 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc, 0x55555554, 0x3, x1, 46*XLEN/8, x2) + +inst_303: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e4, 0x55555554, 0x55555555, x1, 47*XLEN/8, x2) + +inst_304: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c8, 0x55555554, -0x55555556, x1, 48*XLEN/8, x2) + +inst_305: +// rs1_val==1431655764 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa4, 0x55555554, 0x5, x1, 49*XLEN/8, x2) + +inst_306: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbc, 0x55555554, 0x33333333, x1, 50*XLEN/8, x2) + +inst_307: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x77777778, 0x55555554, 0x66666666, x1, 51*XLEN/8, x2) + +inst_308: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x555646b0, 0x55555554, -0xb504, x1, 52*XLEN/8, x2) + +inst_309: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xaaa9b950, 0x55555554, 0xb504, x1, 53*XLEN/8, x2) + +inst_310: +// rs1_val==1431655764 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa8, 0x55555554, 0x2, x1, 54*XLEN/8, x2) + +inst_311: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e390, 0x55555554, 0x55555554, x1, 55*XLEN/8, x2) + +inst_312: +// rs1_val==1431655764 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x55555554, 0x0, x1, 56*XLEN/8, x2) + +inst_313: +// rs1_val==1431655764 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x55555550, 0x55555554, 0x4, x1, 57*XLEN/8, x2) + +inst_314: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x66666668, 0x55555554, 0x33333332, x1, 58*XLEN/8, x2) + +inst_315: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x22222224, 0x55555554, 0x66666665, x1, 59*XLEN/8, x2) + +inst_316: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x555463fc, 0x55555554, 0xb503, x1, 60*XLEN/8, x2) + +inst_317: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e38, 0x55555554, 0x55555556, x1, 61*XLEN/8, x2) + +inst_318: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c, 0x55555554, -0x55555555, x1, 62*XLEN/8, x2) + +inst_319: +// rs1_val==1431655764 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff8, 0x55555554, 0x6, x1, 63*XLEN/8, x2) + +inst_320: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x11111110, 0x55555554, 0x33333334, x1, 64*XLEN/8, x2) + +inst_321: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x55555554, 0x66666667, x1, 65*XLEN/8, x2) + +inst_322: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xaaab9c04, 0x55555554, -0xb503, x1, 66*XLEN/8, x2) + +inst_323: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555554; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0xffff0ea4, 0x55555554, 0xb505, x1, 67*XLEN/8, x2) + +inst_324: +// rs1_val==0 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x3, x1, 68*XLEN/8, x2) + +inst_325: +// rs1_val==0 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x55555555, x1, 69*XLEN/8, x2) + +inst_326: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0x55555556, x1, 70*XLEN/8, x2) + +inst_327: +// rs1_val==0 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x5, x1, 71*XLEN/8, x2) + +inst_328: +// rs1_val==0 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x33333333, x1, 72*XLEN/8, x2) + +inst_329: +// rs1_val==0 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x66666666, x1, 73*XLEN/8, x2) + +inst_330: +// rs1_val==0 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0xb504, x1, 74*XLEN/8, x2) + +inst_331: +// rs1_val==0 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0xb504, x1, 75*XLEN/8, x2) + +inst_332: +// rs1_val==0 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x2, x1, 76*XLEN/8, x2) + +inst_333: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e39, -0x55555555, -0x55555555, x1, 77*XLEN/8, x2) + +inst_334: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x2, -0x55555555, 0x6, x1, 78*XLEN/8, x2) + +inst_335: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbc, -0x55555555, 0x33333334, x1, 79*XLEN/8, x2) + +inst_336: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccd, -0x55555555, 0x66666667, x1, 80*XLEN/8, x2) + +inst_337: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x555518ff, -0x55555555, -0xb503, x1, 81*XLEN/8, x2) + +inst_338: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x3c57, -0x55555555, 0xb505, x1, 82*XLEN/8, x2) + +inst_339: +// rs1_val==6 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x12, 0x6, 0x3, x1, 83*XLEN/8, x2) + +inst_340: +// rs1_val==6 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe, 0x6, 0x55555555, x1, 84*XLEN/8, x2) + +inst_341: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc, 0x6, -0x55555556, x1, 85*XLEN/8, x2) + +inst_342: +// rs1_val==6 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x1e, 0x6, 0x5, x1, 86*XLEN/8, x2) + +inst_343: +// rs1_val==6 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x33333332, 0x6, 0x33333333, x1, 87*XLEN/8, x2) + +inst_344: +// rs1_val==6 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x66666664, 0x6, 0x66666666, x1, 88*XLEN/8, x2) + +inst_345: +// rs1_val==6 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfffbc1e8, 0x6, -0xb504, x1, 89*XLEN/8, x2) + +inst_346: +// rs1_val==6 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x43e18, 0x6, 0xb504, x1, 90*XLEN/8, x2) + +inst_347: +// rs1_val==6 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x6, 0x2, x1, 91*XLEN/8, x2) + +inst_348: +// rs1_val==6 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff8, 0x6, 0x55555554, x1, 92*XLEN/8, x2) + +inst_349: +// rs1_val==6 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x6, 0x0, x1, 93*XLEN/8, x2) + +inst_350: +// rs1_val==6 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x18, 0x6, 0x4, x1, 94*XLEN/8, x2) + +inst_351: +// rs1_val==6 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x3333332c, 0x6, 0x33333332, x1, 95*XLEN/8, x2) + +inst_352: +// rs1_val==6 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x6666665e, 0x6, 0x66666665, x1, 96*XLEN/8, x2) + +inst_353: +// rs1_val==6 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x43e12, 0x6, 0xb503, x1, 97*XLEN/8, x2) + +inst_354: +// rs1_val==6 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x6, 0x55555556, x1, 98*XLEN/8, x2) + +inst_355: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x2, 0x6, -0x55555555, x1, 99*XLEN/8, x2) + +inst_356: +// rs1_val==6 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x24, 0x6, 0x6, x1, 100*XLEN/8, x2) + +inst_357: +// rs1_val==6 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x33333338, 0x6, 0x33333334, x1, 101*XLEN/8, x2) + +inst_358: +// rs1_val==6 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x6666666a, 0x6, 0x66666667, x1, 102*XLEN/8, x2) + +inst_359: +// rs1_val==6 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xfffbc1ee, 0x6, -0xb503, x1, 103*XLEN/8, x2) + +inst_360: +// rs1_val==6 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x43e1e, 0x6, 0xb505, x1, 104*XLEN/8, x2) + +inst_361: +// rs1_val==858993460 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x9999999c, 0x33333334, 0x3, x1, 105*XLEN/8, x2) + +inst_362: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x44444444, 0x33333334, 0x55555555, x1, 106*XLEN/8, x2) + +inst_363: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x88888888, 0x33333334, -0x55555556, x1, 107*XLEN/8, x2) + +inst_364: +// rs1_val==858993460 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x33333334, 0x5, x1, 108*XLEN/8, x2) + +inst_365: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xf5c28f5c, 0x33333334, 0x33333333, x1, 109*XLEN/8, x2) + +inst_366: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eb8, 0x33333334, 0x66666666, x1, 110*XLEN/8, x2) + +inst_367: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xffff6f30, 0x33333334, -0xb504, x1, 111*XLEN/8, x2) + +inst_368: +// rs1_val==858993460 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x90d0, 0x33333334, 0xb504, x1, 112*XLEN/8, x2) + +inst_369: +// rs1_val==858993460 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x66666668, 0x33333334, 0x2, x1, 113*XLEN/8, x2) + +inst_370: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x11111110, 0x33333334, 0x55555554, x1, 114*XLEN/8, x2) + +inst_371: +// rs1_val==858993460 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x33333334, 0x0, x1, 115*XLEN/8, x2) + +inst_372: +// rs1_val==858993460 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xccccccd0, 0x33333334, 0x4, x1, 116*XLEN/8, x2) + +inst_373: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xc28f5c28, 0x33333334, 0x33333332, x1, 117*XLEN/8, x2) + +inst_374: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb84, 0x33333334, 0x66666665, x1, 118*XLEN/8, x2) + +inst_375: +// rs1_val==858993460 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xcccd5d9c, 0x33333334, 0xb503, x1, 119*XLEN/8, x2) + +inst_376: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x77777778, 0x33333334, 0x55555556, x1, 120*XLEN/8, x2) + +inst_377: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbc, 0x33333334, -0x55555555, x1, 121*XLEN/8, x2) + +inst_378: +// rs1_val==858993460 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x33333338, 0x33333334, 0x6, x1, 122*XLEN/8, x2) + +inst_379: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x28f5c290, 0x33333334, 0x33333334, x1, 123*XLEN/8, x2) + +inst_380: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x1eb851ec, 0x33333334, 0x66666667, x1, 124*XLEN/8, x2) + +inst_381: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x3332a264, 0x33333334, -0xb503, x1, 125*XLEN/8, x2) + +inst_382: +// rs1_val==858993460 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333334; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x3333c404, 0x33333334, 0xb505, x1, 126*XLEN/8, x2) + +inst_383: +// rs1_val==1717986919 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x33333335, 0x66666667, 0x3, x1, 127*XLEN/8, x2) + +inst_384: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x33333333, 0x66666667, 0x55555555, x1, 128*XLEN/8, x2) + +inst_385: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x66666666, 0x66666667, -0x55555556, x1, 129*XLEN/8, x2) + +inst_386: +// rs1_val==1717986919 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x3, 0x66666667, 0x5, x1, 130*XLEN/8, x2) + +inst_387: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb85, 0x66666667, 0x33333333, x1, 131*XLEN/8, x2) + +inst_388: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x70a3d70a, 0x66666667, 0x66666666, x1, 132*XLEN/8, x2) + +inst_389: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xffff9364, 0x66666667, -0xb504, x1, 133*XLEN/8, x2) + +inst_390: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x6c9c, 0x66666667, 0xb504, x1, 134*XLEN/8, x2) + +inst_391: +// rs1_val==1717986919 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xccccccce, 0x66666667, 0x2, x1, 135*XLEN/8, x2) + +inst_392: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x66666667, 0x55555554, x1, 136*XLEN/8, x2) + +inst_393: +// rs1_val==1717986919 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x66666667, 0x0, x1, 137*XLEN/8, x2) + +inst_394: +// rs1_val==1717986919 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x9999999c, 0x66666667, 0x4, x1, 138*XLEN/8, x2) + +inst_395: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851e, 0x66666667, 0x33333332, x1, 139*XLEN/8, x2) + +inst_396: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3, 0x66666667, 0x66666665, x1, 140*XLEN/8, x2) + +inst_397: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x999a0635, 0x66666667, 0xb503, x1, 141*XLEN/8, x2) + +inst_398: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a, 0x66666667, 0x55555556, x1, 142*XLEN/8, x2) + +inst_399: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccd, 0x66666667, -0x55555555, x1, 143*XLEN/8, x2) + +inst_400: +// rs1_val==1717986919 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x6666666a, 0x66666667, 0x6, x1, 144*XLEN/8, x2) + +inst_401: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x1eb851ec, 0x66666667, 0x33333334, x1, 145*XLEN/8, x2) + +inst_402: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xd70a3d71, 0x66666667, 0x66666667, x1, 146*XLEN/8, x2) + +inst_403: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x6665f9cb, 0x66666667, -0xb503, x1, 147*XLEN/8, x2) + +inst_404: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666667; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x6666d303, 0x66666667, 0xb505, x1, 148*XLEN/8, x2) + +inst_405: +// rs1_val==-46339 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffde0f7, -0xb503, 0x3, x1, 149*XLEN/8, x2) + +inst_406: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaae701, -0xb503, 0x55555555, x1, 150*XLEN/8, x2) + +inst_407: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x5555ce02, -0xb503, -0x55555556, x1, 151*XLEN/8, x2) + +inst_408: +// rs1_val==-46339 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffc76f1, -0xb503, 0x5, x1, 152*XLEN/8, x2) + +inst_409: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x33335767, -0xb503, 0x33333333, x1, 153*XLEN/8, x2) + +inst_410: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x6666aece, -0xb503, 0x66666666, x1, 154*XLEN/8, x2) + +inst_411: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x7ffdf30c, -0xb503, -0xb504, x1, 155*XLEN/8, x2) + +inst_412: +// rs1_val==-46339 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x80020cf4, -0xb503, 0xb504, x1, 156*XLEN/8, x2) + +inst_413: +// rs1_val==-46339 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xfffe95fa, -0xb503, 0x2, x1, 157*XLEN/8, x2) + +inst_414: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaab9c04, -0xb503, 0x55555554, x1, 158*XLEN/8, x2) + +inst_415: +// rs1_val==-46339 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0xb503, 0x0, x1, 159*XLEN/8, x2) + +inst_416: +// rs1_val==-46339 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xfffd2bf4, -0xb503, 0x4, x1, 160*XLEN/8, x2) + +inst_417: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x33340c6a, -0xb503, 0x33333332, x1, 161*XLEN/8, x2) + +inst_418: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x666763d1, -0xb503, 0x66666665, x1, 162*XLEN/8, x2) + +inst_419: +// rs1_val==-46339 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x8002c1f7, -0xb503, 0xb503, x1, 163*XLEN/8, x2) + +inst_420: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa31fe, -0xb503, 0x55555556, x1, 164*XLEN/8, x2) + +inst_421: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x555518ff, -0xb503, -0x55555555, x1, 165*XLEN/8, x2) + +inst_422: +// rs1_val==-46339 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffbc1ee, -0xb503, 0x6, x1, 166*XLEN/8, x2) + +inst_423: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x3332a264, -0xb503, 0x33333334, x1, 167*XLEN/8, x2) + +inst_424: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x6665f9cb, -0xb503, 0x66666667, x1, 168*XLEN/8, x2) + +inst_425: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x7ffd3e09, -0xb503, -0xb503, x1, 169*XLEN/8, x2) + +inst_426: +// rs1_val==-46339 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x800157f1, -0xb503, 0xb505, x1, 170*XLEN/8, x2) + +inst_427: +// rs1_val==46341 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x21f0f, 0xb505, 0x3, x1, 171*XLEN/8, x2) + +inst_428: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xffffc3a9, 0xb505, 0x55555555, x1, 172*XLEN/8, x2) + +inst_429: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xffff8752, 0xb505, -0x55555556, x1, 173*XLEN/8, x2) + +inst_430: +// rs1_val==46341 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x38919, 0xb505, 0x5, x1, 174*XLEN/8, x2) + +inst_431: +// rs1_val==46341 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x33330eff, 0xb505, 0x33333333, x1, 175*XLEN/8, x2) + +inst_432: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x66661dfe, 0xb505, 0x66666666, x1, 176*XLEN/8, x2) + +inst_433: +// rs1_val==46341 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x8000a2ec, 0xb505, -0xb504, x1, 177*XLEN/8, x2) + +inst_434: +// rs1_val==46341 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x7fff5d14, 0xb505, 0xb504, x1, 178*XLEN/8, x2) + +inst_435: +// rs1_val==46341 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x16a0a, 0xb505, 0x2, x1, 179*XLEN/8, x2) + +inst_436: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0xffff0ea4, 0xb505, 0x55555554, x1, 180*XLEN/8, x2) + +inst_437: +// rs1_val==46341 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0xb505, 0x0, x1, 181*XLEN/8, x2) + +inst_438: +// rs1_val==46341 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x2d414, 0xb505, 0x4, x1, 182*XLEN/8, x2) + +inst_439: +// rs1_val==46341 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x333259fa, 0xb505, 0x33333332, x1, 183*XLEN/8, x2) + +inst_440: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x666568f9, 0xb505, 0x66666665, x1, 184*XLEN/8, x2) + +inst_441: +// rs1_val==46341 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x7ffea80f, 0xb505, 0xb503, x1, 185*XLEN/8, x2) + +inst_442: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x78ae, 0xb505, 0x55555556, x1, 186*XLEN/8, x2) + +inst_443: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x3c57, 0xb505, -0x55555555, x1, 187*XLEN/8, x2) + +inst_444: +// rs1_val==46341 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x43e1e, 0xb505, 0x6, x1, 188*XLEN/8, x2) + +inst_445: +// rs1_val==46341 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x3333c404, 0xb505, 0x33333334, x1, 189*XLEN/8, x2) + +inst_446: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x6666d303, 0xb505, 0x66666667, x1, 190*XLEN/8, x2) + +inst_447: +// rs1_val==46341 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x800157f1, 0xb505, -0xb503, x1, 191*XLEN/8, x2) + +inst_448: +// rs1_val==46341 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb505; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x80001219, 0xb505, 0xb505, x1, 192*XLEN/8, x2) + +inst_449: +// rs1_val==0 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x55555554, x1, 193*XLEN/8, x2) + +inst_450: +// rs1_val==0 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x0, x1, 194*XLEN/8, x2) + +inst_451: +// rs1_val==0 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x4, x1, 195*XLEN/8, x2) + +inst_452: +// rs1_val==0 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x33333332, x1, 196*XLEN/8, x2) + +inst_453: +// rs1_val==0 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x66666665, x1, 197*XLEN/8, x2) + +inst_454: +// rs1_val==0 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0xb503, x1, 198*XLEN/8, x2) + +inst_455: +// rs1_val==0 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x55555556, x1, 199*XLEN/8, x2) + +inst_456: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0x55555555, x1, 200*XLEN/8, x2) + +inst_457: +// rs1_val==0 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x6, x1, 201*XLEN/8, x2) + +inst_458: +// rs1_val==0 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x33333334, x1, 202*XLEN/8, x2) + +inst_459: +// rs1_val==0 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x66666667, x1, 203*XLEN/8, x2) + +inst_460: +// rs1_val==0 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0xb503, x1, 204*XLEN/8, x2) + +inst_461: +// rs1_val==0 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0xb505, x1, 205*XLEN/8, x2) + +inst_462: +// rs1_val==4 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x4, 0x3, x1, 206*XLEN/8, x2) + +inst_463: +// rs1_val==4 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x55555554, 0x4, 0x55555555, x1, 207*XLEN/8, x2) + +inst_464: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa8, 0x4, -0x55555556, x1, 208*XLEN/8, x2) + +inst_465: +// rs1_val==4 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x14, 0x4, 0x5, x1, 209*XLEN/8, x2) + +inst_466: +// rs1_val==4 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x4, 0x33333333, x1, 210*XLEN/8, x2) + +inst_467: +// rs1_val==4 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x99999998, 0x4, 0x66666666, x1, 211*XLEN/8, x2) + +inst_468: +// rs1_val==4 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfffd2bf0, 0x4, -0xb504, x1, 212*XLEN/8, x2) + +inst_469: +// rs1_val==4 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x2d410, 0x4, 0xb504, x1, 213*XLEN/8, x2) + +inst_470: +// rs1_val==4 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x8, 0x4, 0x2, x1, 214*XLEN/8, x2) + +inst_471: +// rs1_val==4 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x55555550, 0x4, 0x55555554, x1, 215*XLEN/8, x2) + +inst_472: +// rs1_val==4 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x4, 0x0, x1, 216*XLEN/8, x2) + +inst_473: +// rs1_val==4 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x10, 0x4, 0x4, x1, 217*XLEN/8, x2) + +inst_474: +// rs1_val==4 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xccccccc8, 0x4, 0x33333332, x1, 218*XLEN/8, x2) + +inst_475: +// rs1_val==4 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x99999994, 0x4, 0x66666665, x1, 219*XLEN/8, x2) + +inst_476: +// rs1_val==4 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x2d40c, 0x4, 0xb503, x1, 220*XLEN/8, x2) + +inst_477: +// rs1_val==4 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555558, 0x4, 0x55555556, x1, 221*XLEN/8, x2) + +inst_478: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaac, 0x4, -0x55555555, x1, 222*XLEN/8, x2) + +inst_479: +// rs1_val==4 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x18, 0x4, 0x6, x1, 223*XLEN/8, x2) + +inst_480: +// rs1_val==4 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xccccccd0, 0x4, 0x33333334, x1, 224*XLEN/8, x2) + +inst_481: +// rs1_val==4 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x9999999c, 0x4, 0x66666667, x1, 225*XLEN/8, x2) + +inst_482: +// rs1_val==4 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xfffd2bf4, 0x4, -0xb503, x1, 226*XLEN/8, x2) + +inst_483: +// rs1_val==4 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x2d414, 0x4, 0xb505, x1, 227*XLEN/8, x2) + +inst_484: +// rs1_val==858993458 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x99999996, 0x33333332, 0x3, x1, 228*XLEN/8, x2) + +inst_485: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a, 0x33333332, 0x55555555, x1, 229*XLEN/8, x2) + +inst_486: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x33333334, 0x33333332, -0x55555556, x1, 230*XLEN/8, x2) + +inst_487: +// rs1_val==858993458 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffa, 0x33333332, 0x5, x1, 231*XLEN/8, x2) + +inst_488: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x8f5c28f6, 0x33333332, 0x33333333, x1, 232*XLEN/8, x2) + +inst_489: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x1eb851ec, 0x33333332, 0x66666666, x1, 233*XLEN/8, x2) + +inst_490: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xd938, 0x33333332, -0xb504, x1, 234*XLEN/8, x2) + +inst_491: +// rs1_val==858993458 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xffff26c8, 0x33333332, 0xb504, x1, 235*XLEN/8, x2) + +inst_492: +// rs1_val==858993458 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x66666664, 0x33333332, 0x2, x1, 236*XLEN/8, x2) + +inst_493: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x66666668, 0x33333332, 0x55555554, x1, 237*XLEN/8, x2) + +inst_494: +// rs1_val==858993458 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x33333332, 0x0, x1, 238*XLEN/8, x2) + +inst_495: +// rs1_val==858993458 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xccccccc8, 0x33333332, 0x4, x1, 239*XLEN/8, x2) + +inst_496: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x5c28f5c4, 0x33333332, 0x33333332, x1, 240*XLEN/8, x2) + +inst_497: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eba, 0x33333332, 0x66666665, x1, 241*XLEN/8, x2) + +inst_498: +// rs1_val==858993458 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xcccbf396, 0x33333332, 0xb503, x1, 242*XLEN/8, x2) + +inst_499: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x33333332, 0x55555556, x1, 243*XLEN/8, x2) + +inst_500: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x66666666, 0x33333332, -0x55555555, x1, 244*XLEN/8, x2) + +inst_501: +// rs1_val==858993458 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x3333332c, 0x33333332, 0x6, x1, 245*XLEN/8, x2) + +inst_502: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xc28f5c28, 0x33333332, 0x33333334, x1, 246*XLEN/8, x2) + +inst_503: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851e, 0x33333332, 0x66666667, x1, 247*XLEN/8, x2) + +inst_504: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x33340c6a, 0x33333332, -0xb503, x1, 248*XLEN/8, x2) + +inst_505: +// rs1_val==858993458 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x33333332; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x333259fa, 0x33333332, 0xb505, x1, 249*XLEN/8, x2) + +inst_506: +// rs1_val==1717986917 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x3333332f, 0x66666665, 0x3, x1, 250*XLEN/8, x2) + +inst_507: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x88888889, 0x66666665, 0x55555555, x1, 251*XLEN/8, x2) + +inst_508: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x11111112, 0x66666665, -0x55555556, x1, 252*XLEN/8, x2) + +inst_509: +// rs1_val==1717986917 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff9, 0x66666665, 0x5, x1, 253*XLEN/8, x2) + +inst_510: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851f, 0x66666665, 0x33333333, x1, 254*XLEN/8, x2) + +inst_511: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3e, 0x66666665, 0x66666666, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_3) + +inst_512: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xfd6c, 0x66666665, -0xb504, x1, 0*XLEN/8, x2) + +inst_513: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xffff0294, 0x66666665, 0xb504, x1, 1*XLEN/8, x2) + +inst_514: +// rs1_val==1717986917 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xccccccca, 0x66666665, 0x2, x1, 2*XLEN/8, x2) + +inst_515: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x22222224, 0x66666665, 0x55555554, x1, 3*XLEN/8, x2) + +inst_516: +// rs1_val==1717986917 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x66666665, 0x0, x1, 4*XLEN/8, x2) + +inst_517: +// rs1_val==1717986917 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x99999994, 0x66666665, 0x4, x1, 5*XLEN/8, x2) + +inst_518: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eba, 0x66666665, 0x33333332, x1, 6*XLEN/8, x2) + +inst_519: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x3d70a3d9, 0x66666665, 0x66666665, x1, 7*XLEN/8, x2) + +inst_520: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x99989c2f, 0x66666665, 0xb503, x1, 8*XLEN/8, x2) + +inst_521: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeee, 0x66666665, 0x55555556, x1, 9*XLEN/8, x2) + +inst_522: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x77777777, 0x66666665, -0x55555555, x1, 10*XLEN/8, x2) + +inst_523: +// rs1_val==1717986917 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x6666665e, 0x66666665, 0x6, x1, 11*XLEN/8, x2) + +inst_524: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb84, 0x66666665, 0x33333334, x1, 12*XLEN/8, x2) + +inst_525: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3, 0x66666665, 0x66666667, x1, 13*XLEN/8, x2) + +inst_526: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x666763d1, 0x66666665, -0xb503, x1, 14*XLEN/8, x2) + +inst_527: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x66666665; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x666568f9, 0x66666665, 0xb505, x1, 15*XLEN/8, x2) + +inst_528: +// rs1_val==46339 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x21f09, 0xb503, 0x3, x1, 16*XLEN/8, x2) + +inst_529: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x555518ff, 0xb503, 0x55555555, x1, 17*XLEN/8, x2) + +inst_530: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa31fe, 0xb503, -0x55555556, x1, 18*XLEN/8, x2) + +inst_531: +// rs1_val==46339 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x3890f, 0xb503, 0x5, x1, 19*XLEN/8, x2) + +inst_532: +// rs1_val==46339 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0xcccca899, 0xb503, 0x33333333, x1, 20*XLEN/8, x2) + +inst_533: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x99995132, 0xb503, 0x66666666, x1, 21*XLEN/8, x2) + +inst_534: +// rs1_val==46339 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x80020cf4, 0xb503, -0xb504, x1, 22*XLEN/8, x2) + +inst_535: +// rs1_val==46339 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x7ffdf30c, 0xb503, 0xb504, x1, 23*XLEN/8, x2) + +inst_536: +// rs1_val==46339 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x16a06, 0xb503, 0x2, x1, 24*XLEN/8, x2) + +inst_537: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x555463fc, 0xb503, 0x55555554, x1, 25*XLEN/8, x2) + +inst_538: +// rs1_val==46339 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0xb503, 0x0, x1, 26*XLEN/8, x2) + +inst_539: +// rs1_val==46339 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x2d40c, 0xb503, 0x4, x1, 27*XLEN/8, x2) + +inst_540: +// rs1_val==46339 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xcccbf396, 0xb503, 0x33333332, x1, 28*XLEN/8, x2) + +inst_541: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x99989c2f, 0xb503, 0x66666665, x1, 29*XLEN/8, x2) + +inst_542: +// rs1_val==46339 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x7ffd3e09, 0xb503, 0xb503, x1, 30*XLEN/8, x2) + +inst_543: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x5555ce02, 0xb503, 0x55555556, x1, 31*XLEN/8, x2) + +inst_544: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaae701, 0xb503, -0x55555555, x1, 32*XLEN/8, x2) + +inst_545: +// rs1_val==46339 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x43e12, 0xb503, 0x6, x1, 33*XLEN/8, x2) + +inst_546: +// rs1_val==46339 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0xcccd5d9c, 0xb503, 0x33333334, x1, 34*XLEN/8, x2) + +inst_547: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x999a0635, 0xb503, 0x66666667, x1, 35*XLEN/8, x2) + +inst_548: +// rs1_val==46339 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x8002c1f7, 0xb503, -0xb503, x1, 36*XLEN/8, x2) + +inst_549: +// rs1_val==46339 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb503; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x7ffea80f, 0xb503, 0xb505, x1, 37*XLEN/8, x2) + +inst_550: +// rs1_val==1431655766 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x2, 0x55555556, 0x3, x1, 38*XLEN/8, x2) + +inst_551: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e, 0x55555556, 0x55555555, x1, 39*XLEN/8, x2) + +inst_552: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c, 0x55555556, -0x55555556, x1, 40*XLEN/8, x2) + +inst_553: +// rs1_val==1431655766 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaae, 0x55555556, 0x5, x1, 41*XLEN/8, x2) + +inst_554: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x22222222, 0x55555556, 0x33333333, x1, 42*XLEN/8, x2) + +inst_555: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x44444444, 0x55555556, 0x66666666, x1, 43*XLEN/8, x2) + +inst_556: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x5554dca8, 0x55555556, -0xb504, x1, 44*XLEN/8, x2) + +inst_557: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xaaab2358, 0x55555556, 0xb504, x1, 45*XLEN/8, x2) + +inst_558: +// rs1_val==1431655766 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaac, 0x55555556, 0x2, x1, 46*XLEN/8, x2) + +inst_559: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e38, 0x55555556, 0x55555554, x1, 47*XLEN/8, x2) + +inst_560: +// rs1_val==1431655766 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x55555556, 0x0, x1, 48*XLEN/8, x2) + +inst_561: +// rs1_val==1431655766 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x55555558, 0x55555556, 0x4, x1, 49*XLEN/8, x2) + +inst_562: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc, 0x55555556, 0x33333332, x1, 50*XLEN/8, x2) + +inst_563: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeee, 0x55555556, 0x66666665, x1, 51*XLEN/8, x2) + +inst_564: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0x5555ce02, 0x55555556, 0xb503, x1, 52*XLEN/8, x2) + +inst_565: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e4, 0x55555556, 0x55555556, x1, 53*XLEN/8, x2) + +inst_566: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:-0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c72, 0x55555556, -0x55555555, x1, 54*XLEN/8, x2) + +inst_567: +// rs1_val==1431655766 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x55555556, 0x6, x1, 55*XLEN/8, x2) + +inst_568: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x33333334 +TEST_CR_OP( c.mul, x15, x14, 0x77777778, 0x55555556, 0x33333334, x1, 56*XLEN/8, x2) + +inst_569: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0x66666667 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a, 0x55555556, 0x66666667, x1, 57*XLEN/8, x2) + +inst_570: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:-0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa31fe, 0x55555556, -0xb503, x1, 58*XLEN/8, x2) + +inst_571: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x55555556; op2val:0xb505 +TEST_CR_OP( c.mul, x15, x14, 0x78ae, 0x55555556, 0xb505, x1, 59*XLEN/8, x2) + +inst_572: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x1, -0x55555555, 0x3, x1, 60*XLEN/8, x2) + +inst_573: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x55555555 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c7, -0x55555555, 0x55555555, x1, 61*XLEN/8, x2) + +inst_574: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:-0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e, -0x55555555, -0x55555556, x1, 62*XLEN/8, x2) + +inst_575: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x55555557, -0x55555555, 0x5, x1, 63*XLEN/8, x2) + +inst_576: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x33333333 +TEST_CR_OP( c.mul, x15, x14, 0x11111111, -0x55555555, 0x33333333, x1, 64*XLEN/8, x2) + +inst_577: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x66666666 +TEST_CR_OP( c.mul, x15, x14, 0x22222222, -0x55555555, 0x66666666, x1, 65*XLEN/8, x2) + +inst_578: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:-0xb504 +TEST_CR_OP( c.mul, x15, x14, 0xaaaa6e54, -0x55555555, -0xb504, x1, 66*XLEN/8, x2) + +inst_579: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0xb504 +TEST_CR_OP( c.mul, x15, x14, 0x555591ac, -0x55555555, 0xb504, x1, 67*XLEN/8, x2) + +inst_580: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x55555556, -0x55555555, 0x2, x1, 68*XLEN/8, x2) + +inst_581: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x55555554 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c, -0x55555555, 0x55555554, x1, 69*XLEN/8, x2) + +inst_582: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x55555555, 0x0, x1, 70*XLEN/8, x2) + +inst_583: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaac, -0x55555555, 0x4, x1, 71*XLEN/8, x2) + +inst_584: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x33333332 +TEST_CR_OP( c.mul, x15, x14, 0x66666666, -0x55555555, 0x33333332, x1, 72*XLEN/8, x2) + +inst_585: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x66666665 +TEST_CR_OP( c.mul, x15, x14, 0x77777777, -0x55555555, 0x66666665, x1, 73*XLEN/8, x2) + +inst_586: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0xb503 +TEST_CR_OP( c.mul, x15, x14, 0xaaaae701, -0x55555555, 0xb503, x1, 74*XLEN/8, x2) + +inst_587: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x55555555; op2val:0x55555556 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c72, -0x55555555, 0x55555556, x1, 75*XLEN/8, x2) + +inst_588: +// rs1_val < 0 and rs2_val < 0, rs2_val == -2049 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb503; op2val:-0x801 +TEST_CR_OP( c.mul, x15, x14, 0x5a8cd03, -0xb503, -0x801, x1, 76*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_3: + .fill 77*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv32i_m/C/src/cnot-01.S b/riscv-test-suite/rv32i_m/C/src/cnot-01.S new file mode 100644 index 000000000..f185b87b8 --- /dev/null +++ b/riscv-test-suite/rv32i_m/C/src/cnot-01.S @@ -0,0 +1,417 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:43:04 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv32i_zcb.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.not instruction of the RISC-V RV32_Zca_Zcb extension for the cnot covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",cnot) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x14, rs1_val == 0, +// opcode: c.not ; op1=dest:x14 ; op1val:0x0; +TEST_CRD_OP(c.not, x14, 0x00000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x8, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.not ; op1=dest:x8 ; op1val:0x800; +TEST_CRD_OP(c.not, x8, 0x00000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x9, rs1_val == 0xFF80, +// opcode: c.not ; op1=dest:x9 ; op1val:0xff80; +TEST_CRD_OP(c.not, x9, 0x00000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x11, rs1_val == 1, +// opcode: c.not ; op1=dest:x11 ; op1val:0x1; +TEST_CRD_OP(c.not, x11, 0x00000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x12, rs1_val == 4294967294, +// opcode: c.not ; op1=dest:x12 ; op1val:0xfffffffe; +TEST_CRD_OP(c.not, x12, 0x00000000, 0xfffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x15, rs1_val == 4294967293, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffd; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x13, rs1_val == 4294967291, +// opcode: c.not ; op1=dest:x13 ; op1val:0xfffffffb; +TEST_CRD_OP(c.not, x13, 0x00000000, 0xfffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x10, rs1_val == 4294967287, +// opcode: c.not ; op1=dest:x10 ; op1val:0xfffffff7; +TEST_CRD_OP(c.not, x10, 0x00000000, 0xfffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 4294967279, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffef; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 4294967263, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffdf; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 4294967231, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffbf; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 4294967167, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffff7f; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 4294967039, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffeff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 4294966783, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffdff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 4294966271, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffbff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 4294965247, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffff7ff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 4294963199, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffefff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 4294959103, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffdfff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 4294950911, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffbfff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 4294934527, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffff7fff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 4294901759, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffeffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 4294836223, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffdffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 4294705151, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffbffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 4294443007, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfff7ffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 4293918719, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffefffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 4292870143, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffdfffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 4290772991, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffbfffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 4286578687, +// opcode: c.not ; op1=dest:x15 ; op1val:0xff7fffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 4278190079, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfeffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 4261412863, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfdffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 4227858431, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfbffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xfbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 4160749567, +// opcode: c.not ; op1=dest:x15 ; op1val:0xf7ffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xf7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 4026531839, +// opcode: c.not ; op1=dest:x15 ; op1val:0xefffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 3758096383, +// opcode: c.not ; op1=dest:x15 ; op1val:0xdfffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 3221225471, +// opcode: c.not ; op1=dest:x15 ; op1val:0xbfffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0xbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 536870912, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x20000000, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 1073741824, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x40000000, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 2147483648, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x80000000, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 2147483647, +// opcode: c.not ; op1=dest:x15 ; op1val:0x7fffffff; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x7fffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 2, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x2, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 4, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x4, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 8, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x8, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 16, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x10, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 32, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x20, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 64, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x40, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 128, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x80, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 256, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x100, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 512, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x200, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 1024, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x400, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 4096, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x1000, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 8192, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x2000, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 16384, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x4000, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 32768, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x8000, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 65536, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x10000, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 131072, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x20000, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 262144, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x40000, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 524288, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x80000, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 1048576, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x100000, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 2097152, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x200000, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 4194304, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x400000, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 8388608, +// opcode: c.not ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x800000, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 16777216, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x1000000, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 33554432, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x2000000, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 67108864, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x4000000, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 134217728, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x8000000, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 268435456, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.not, x15, 0x00000000, 0x10000000, x1, 65*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 66*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/cmul-01.S b/riscv-test-suite/rv64i_m/C/src/cmul-01.S new file mode 100644 index 000000000..291790454 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/cmul-01.S @@ -0,0 +1,3482 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.mul instruction of the RISC-V RV64M_Zca_Zcb extension for the cmul covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IM_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*M.*Zca.*Zcb.*);def TEST_CASE_1=True;",cmul) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rs2, rs1==x13, rs2==x13, rs1_val != rs2_val, rs2_val == -2147483649, rs1_val > 0 and rs2_val < 0 +// opcode: c.mul; op1:x13; op2:x13; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x13, x13, 0xf5c28f5c28f5c290, 0x3333333333333334, 0x3333333333333334, x1, 0*XLEN/8, x2) + +inst_1: +// rs1 != rs2, rs1==x12, rs2==x10, rs1_val < 0 and rs2_val < 0, rs2_val == -268435457, rs1_val == -144115188075855873 +// opcode: c.mul; op1:x12; op2:x10; op1val:-0x200000000000001; op2val:-0x10000001 +TEST_CR_OP( c.mul, x12, x10, 0x200000010000001, -0x200000000000001, -0x10000001, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x15, rs2==x14, rs1_val < 0 and rs2_val > 0, rs1_val == -288230376151711745, rs2_val == 268435456 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x400000000000001; op2val:0x10000000 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffff0000000, -0x400000000000001, 0x10000000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x14, rs2==x15, rs1_val == (-2**(xlen-1)), rs1_val == -9223372036854775808 +// opcode: c.mul; op1:x14; op2:x15; op1val:-0x8000000000000000; op2val:-0x80000001 +TEST_CR_OP( c.mul, x14, x15, 0x8000000000000000, -0x8000000000000000, -0x80000001, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x10, rs2==x9, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs2_val == 32, rs1_val == 9223372036854775807 +// opcode: c.mul; op1:x10; op2:x9; op1val:0x7fffffffffffffff; op2val:0x20 +TEST_CR_OP( c.mul, x10, x9, 0xffffffffffffffe0, 0x7fffffffffffffff, 0x20, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x11, rs2==x12, rs1_val == 0, rs2_val == 2251799813685248 +// opcode: c.mul; op1:x11; op2:x12; op1val:0x0; op2val:0x8000000000000 +TEST_CR_OP( c.mul, x11, x12, 0x0, 0x0, 0x8000000000000, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x9, rs2==x11, rs2_val == -2, rs1_val == 9007199254740992 +// opcode: c.mul; op1:x9; op2:x11; op1val:0x20000000000000; op2val:-0x2 +TEST_CR_OP( c.mul, x9, x11, 0xffc0000000000000, 0x20000000000000, -0x2, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x8, rs2_val == -3, +// opcode: c.mul; op1:x8; op2:x13; op1val:0x20000000000000; op2val:-0x3 +TEST_CR_OP( c.mul, x8, x13, 0xffa0000000000000, 0x20000000000000, -0x3, x1, 7*XLEN/8, x2) + +inst_8: +// rs2==x8, rs2_val == -5, +// opcode: c.mul; op1:x11; op2:x8; op1val:0x5555555555555556; op2val:-0x5 +TEST_CR_OP( c.mul, x11, x8, 0x5555555555555552, 0x5555555555555556, -0x5, x1, 8*XLEN/8, x2) + +inst_9: +// rs2_val == -9, rs1_val == 4 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x9 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffffdc, 0x4, -0x9, x1, 9*XLEN/8, x2) + +inst_10: +// rs2_val == -17, rs1_val == 4398046511104 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000000000; op2val:-0x11 +TEST_CR_OP( c.mul, x15, x14, 0xffffbc0000000000, 0x40000000000, -0x11, x1, 10*XLEN/8, x2) + +inst_11: +// rs2_val == -33, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x21 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffff7c, 0x4, -0x21, x1, 11*XLEN/8, x2) + +inst_12: +// rs2_val == -65, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:-0x41 +TEST_CR_OP( c.mul, x15, x14, 0xffffffd209be404e, 0xb504f332, -0x41, x1, 12*XLEN/8, x2) + +inst_13: +// rs2_val == -129, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:-0x81 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffffaa, 0x5555555555555556, -0x81, x1, 13*XLEN/8, x2) + +inst_14: +// rs2_val == -257, rs1_val == 1 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1; op2val:-0x101 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffeff, 0x1, -0x101, x1, 14*XLEN/8, x2) + +inst_15: +// rs2_val == -513, rs1_val == 36028797018963968 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000000000000; op2val:-0x201 +TEST_CR_OP( c.mul, x15, x14, 0xff80000000000000, 0x80000000000000, -0x201, x1, 15*XLEN/8, x2) + +inst_16: +// rs2_val == -1025, rs1_val == 6148914691236517205 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:-0x401 +TEST_CR_OP( c.mul, x15, x14, 0x55555555555556ab, 0x5555555555555555, -0x401, x1, 16*XLEN/8, x2) + +inst_17: +// rs2_val == -2049, rs1_val == -2049, rs1_val == rs2_val +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x801; op2val:-0x801 +TEST_CR_OP( c.mul, x15, x14, 0x401001, -0x801, -0x801, x1, 17*XLEN/8, x2) + +inst_18: +// rs2_val == -4097, rs1_val == -35184372088833 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x200000000001; op2val:-0x1001 +TEST_CR_OP( c.mul, x15, x14, 0x200200000001001, -0x200000000001, -0x1001, x1, 18*XLEN/8, x2) + +inst_19: +// rs2_val == -8193, rs1_val == -68719476737 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1000000001; op2val:-0x2001 +TEST_CR_OP( c.mul, x15, x14, 0x2001000002001, -0x1000000001, -0x2001, x1, 19*XLEN/8, x2) + +inst_20: +// rs2_val == -16385, rs1_val == -524289 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80001; op2val:-0x4001 +TEST_CR_OP( c.mul, x15, x14, 0x200084001, -0x80001, -0x4001, x1, 20*XLEN/8, x2) + +inst_21: +// rs2_val == -32769, rs1_val == 2097152 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000; op2val:-0x8001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffefffe00000, 0x200000, -0x8001, x1, 21*XLEN/8, x2) + +inst_22: +// rs2_val == -65537, rs1_val == 274877906944 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000000000; op2val:-0x10001 +TEST_CR_OP( c.mul, x15, x14, 0xffbfffc000000000, 0x4000000000, -0x10001, x1, 22*XLEN/8, x2) + +inst_23: +// rs2_val == -131073, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4; op2val:-0x20001 +TEST_CR_OP( c.mul, x15, x14, 0x80004, -0x4, -0x20001, x1, 23*XLEN/8, x2) + +inst_24: +// rs2_val == -262145, rs1_val == -1048577 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100001; op2val:-0x40001 +TEST_CR_OP( c.mul, x15, x14, 0x4000140001, -0x100001, -0x40001, x1, 24*XLEN/8, x2) + +inst_25: +// rs2_val == -524289, rs1_val == -9 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x9; op2val:-0x80001 +TEST_CR_OP( c.mul, x15, x14, 0x480009, -0x9, -0x80001, x1, 25*XLEN/8, x2) + +inst_26: +// rs2_val == -1048577, rs1_val == 4503599627370496 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10000000000000; op2val:-0x100001 +TEST_CR_OP( c.mul, x15, x14, 0xfff0000000000000, 0x10000000000000, -0x100001, x1, 26*XLEN/8, x2) + +inst_27: +// rs2_val == -2097153, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:-0x200001 +TEST_CR_OP( c.mul, x15, x14, 0x16a09f1b44f332, -0xb504f332, -0x200001, x1, 27*XLEN/8, x2) + +inst_28: +// rs2_val == -4194305, rs1_val == -4294967297 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100000001; op2val:-0x400001 +TEST_CR_OP( c.mul, x15, x14, 0x40000100400001, -0x100000001, -0x400001, x1, 28*XLEN/8, x2) + +inst_29: +// rs2_val == -8388609, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:-0x800001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffaaaaaa, 0x5555555555555556, -0x800001, x1, 29*XLEN/8, x2) + +inst_30: +// rs2_val == -16777217, rs1_val == 262144 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000; op2val:-0x1000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffbfffffc0000, 0x40000, -0x1000001, x1, 30*XLEN/8, x2) + +inst_31: +// rs2_val == -33554433, rs1_val == -34359738369 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x800000001; op2val:-0x2000001 +TEST_CR_OP( c.mul, x15, x14, 0x1000000802000001, -0x800000001, -0x2000001, x1, 31*XLEN/8, x2) + +inst_32: +// rs2_val == -67108865, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x4000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffebfffffb, 0x5, -0x4000001, x1, 32*XLEN/8, x2) + +inst_33: +// rs2_val == -134217729, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x9; op2val:-0x8000001 +TEST_CR_OP( c.mul, x15, x14, 0x48000009, -0x9, -0x8000001, x1, 33*XLEN/8, x2) + +inst_34: +// rs2_val == -536870913, rs1_val == 8589934592 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000000; op2val:-0x20000001 +TEST_CR_OP( c.mul, x15, x14, 0xbffffffe00000000, 0x200000000, -0x20000001, x1, 34*XLEN/8, x2) + +inst_35: +// rs2_val == -1073741825, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x9; op2val:-0x40000001 +TEST_CR_OP( c.mul, x15, x14, 0x240000009, -0x9, -0x40000001, x1, 35*XLEN/8, x2) + +inst_36: +// rs2_val == -4294967297, rs1_val == 137438953472 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000000000; op2val:-0x100000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffe000000000, 0x2000000000, -0x100000001, x1, 36*XLEN/8, x2) + +inst_37: +// rs2_val == -8589934593, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000; op2val:-0x200000001 +TEST_CR_OP( c.mul, x15, x14, 0xfff7fffffffc0000, 0x40000, -0x200000001, x1, 37*XLEN/8, x2) + +inst_38: +// rs2_val == -17179869185, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0x400000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff3fffffffd, 0x3, -0x400000001, x1, 38*XLEN/8, x2) + +inst_39: +// rs2_val == -34359738369, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1; op2val:-0x800000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff7ffffffff, 0x1, -0x800000001, x1, 39*XLEN/8, x2) + +inst_40: +// rs2_val == -68719476737, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x1000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffbffffffffc, 0x4, -0x1000000001, x1, 40*XLEN/8, x2) + +inst_41: +// rs2_val == -137438953473, rs1_val == 281474976710656 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1000000000000; op2val:-0x2000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffff000000000000, 0x1000000000000, -0x2000000001, x1, 41*XLEN/8, x2) + +inst_42: +// rs2_val == -274877906945, rs1_val == -2305843009213693953 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2000000000000001; op2val:-0x4000000001 +TEST_CR_OP( c.mul, x15, x14, 0x2000004000000001, -0x2000000000000001, -0x4000000001, x1, 42*XLEN/8, x2) + +inst_43: +// rs2_val == -549755813889, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0x8000000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffcfffffffffa, 0x6, -0x8000000001, x1, 43*XLEN/8, x2) + +inst_44: +// rs2_val == -1099511627777, rs1_val == -2251799813685249 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8000000000001; op2val:-0x10000000001 +TEST_CR_OP( c.mul, x15, x14, 0x8010000000001, -0x8000000000001, -0x10000000001, x1, 44*XLEN/8, x2) + +inst_45: +// rs2_val == -2199023255553, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x800000001; op2val:-0x20000000001 +TEST_CR_OP( c.mul, x15, x14, 0x20800000001, -0x800000001, -0x20000000001, x1, 45*XLEN/8, x2) + +inst_46: +// rs2_val == -4398046511105, rs1_val == 35184372088832 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000000000; op2val:-0x40000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffe00000000000, 0x200000000000, -0x40000000001, x1, 46*XLEN/8, x2) + +inst_47: +// rs2_val == -8796093022209, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x80000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffd7fffffffffb, 0x5, -0x80000000001, x1, 47*XLEN/8, x2) + +inst_48: +// rs2_val == -17592186044417, rs1_val == 4294967296 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100000000; op2val:-0x100000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff00000000, 0x100000000, -0x100000000001, x1, 48*XLEN/8, x2) + +inst_49: +// rs2_val == -35184372088833, rs1_val == 131072 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20000; op2val:-0x200000000001 +TEST_CR_OP( c.mul, x15, x14, 0xbffffffffffe0000, 0x20000, -0x200000000001, x1, 49*XLEN/8, x2) + +inst_50: +// rs2_val == -70368744177665, rs1_val == 524288 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000; op2val:-0x400000000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffff80000, 0x80000, -0x400000000001, x1, 50*XLEN/8, x2) + +inst_51: +// rs2_val == -140737488355329, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100000001; op2val:-0x800000000001 +TEST_CR_OP( c.mul, x15, x14, 0x800100000001, -0x100000001, -0x800000000001, x1, 51*XLEN/8, x2) + +inst_52: +// rs2_val == -281474976710657, rs1_val == 536870912 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20000000; op2val:-0x1000000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffe0000000, 0x20000000, -0x1000000000001, x1, 52*XLEN/8, x2) + +inst_53: +// rs2_val == -562949953421313, rs1_val == -1125899906842625 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000000001; op2val:-0x2000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x6000000000001, -0x4000000000001, -0x2000000000001, x1, 53*XLEN/8, x2) + +inst_54: +// rs2_val == -1125899906842625, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000000; op2val:-0x4000000000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe00000000, 0x200000000, -0x4000000000001, x1, 54*XLEN/8, x2) + +inst_55: +// rs2_val == -2251799813685249, rs1_val == -17 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x11; op2val:-0x8000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x88000000000011, -0x11, -0x8000000000001, x1, 55*XLEN/8, x2) + +inst_56: +// rs2_val == -4503599627370497, rs1_val == -4503599627370497 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10000000000001; op2val:-0x10000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x20000000000001, -0x10000000000001, -0x10000000000001, x1, 56*XLEN/8, x2) + +inst_57: +// rs2_val == -9007199254740993, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x200000000001; op2val:-0x20000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x20200000000001, -0x200000000001, -0x20000000000001, x1, 57*XLEN/8, x2) + +inst_58: +// rs2_val == -18014398509481985, rs1_val == -4097 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1001; op2val:-0x40000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x40000000001001, -0x1001, -0x40000000000001, x1, 58*XLEN/8, x2) + +inst_59: +// rs2_val == -36028797018963969, rs1_val == -70368744177665 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x400000000001; op2val:-0x80000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x80400000000001, -0x400000000001, -0x80000000000001, x1, 59*XLEN/8, x2) + +inst_60: +// rs2_val == -72057594037927937, rs1_val == -32769 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8001; op2val:-0x100000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x100000000008001, -0x8001, -0x100000000000001, x1, 60*XLEN/8, x2) + +inst_61: +// rs2_val == -144115188075855873, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000000000; op2val:-0x200000000000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffc0000000000, 0x40000000000, -0x200000000000001, x1, 61*XLEN/8, x2) + +inst_62: +// rs2_val == -288230376151711745, rs1_val == -140737488355329 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x800000000001; op2val:-0x400000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x400800000000001, -0x800000000001, -0x400000000000001, x1, 62*XLEN/8, x2) + +inst_63: +// rs2_val == -576460752303423489, rs1_val == 34359738368 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800000000; op2val:-0x800000000000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffffff800000000, 0x800000000, -0x800000000000001, x1, 63*XLEN/8, x2) + +inst_64: +// rs2_val == -1152921504606846977, rs1_val == -536870913 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20000001; op2val:-0x1000000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x1000000020000001, -0x20000001, -0x1000000000000001, x1, 64*XLEN/8, x2) + +inst_65: +// rs2_val == -2305843009213693953, rs1_val == -6148914691236517206 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:-0x2000000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x1555555555555556, -0x5555555555555556, -0x2000000000000001, x1, 65*XLEN/8, x2) + +inst_66: +// rs2_val == -4611686018427387905, rs1_val == -262145 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40001; op2val:-0x4000000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x4000000000040001, -0x40001, -0x4000000000000001, x1, 66*XLEN/8, x2) + +inst_67: +// rs2_val == 9223372036854775807, rs1_val == -134217729, rs2_val == (2**(xlen-1)-1) +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8000001; op2val:0x7fffffffffffffff +TEST_CR_OP( c.mul, x15, x14, 0x8000000008000001, -0x8000001, 0x7fffffffffffffff, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == -2, rs2_val == 1125899906842624 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2; op2val:0x4000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xfff8000000000000, -0x2, 0x4000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == -3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x3; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffde0f12664, -0x3, 0xb504f334, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == -5, rs2_val == 512 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5; op2val:0x200 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffff600, -0x5, 0x200, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == -33, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x21; op2val:-0x400000001 +TEST_CR_OP( c.mul, x15, x14, 0x8400000021, -0x21, -0x400000001, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == -65, rs2_val == 4611686018427387904 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x41; op2val:0x4000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xc000000000000000, -0x41, 0x4000000000000000, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == -129, rs2_val == 4194304 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x81; op2val:0x400000 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffdfc00000, -0x81, 0x400000, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == -257, rs2_val == 137438953472 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x101; op2val:0x2000000000 +TEST_CR_OP( c.mul, x15, x14, 0xffffdfe000000000, -0x101, 0x2000000000, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == -513, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x201; op2val:-0x8001 +TEST_CR_OP( c.mul, x15, x14, 0x1008201, -0x201, -0x8001, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == -1025, rs2_val == 9007199254740992 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x401; op2val:0x20000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x7fe0000000000000, -0x401, 0x20000000000000, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == -8193, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2001; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xffffe95eac94accd, -0x2001, 0xb504f333, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == -16385, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4001; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffe7ffa, -0x4001, 0x6, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == -65537, rs2_val == 4503599627370496 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10001; op2val:0x10000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xfff0000000000000, -0x10001, 0x10000000000000, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == -131073, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20001; op2val:-0x4000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x4000000020001, -0x20001, -0x4000000000001, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == -2097153, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x200001; op2val:-0x3 +TEST_CR_OP( c.mul, x15, x14, 0x600003, -0x200001, -0x3, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == -4194305, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x400001; op2val:0x8000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xfff8000000000000, -0x400001, 0x8000000000000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == -8388609, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x800001; op2val:-0x1000001 +TEST_CR_OP( c.mul, x15, x14, 0x800001800001, -0x800001, -0x1000001, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == -16777217, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1000001; op2val:-0x100000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x100000001000001, -0x1000001, -0x100000000000001, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == -33554433, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2000001; op2val:-0x1001 +TEST_CR_OP( c.mul, x15, x14, 0x2002001001, -0x2000001, -0x1001, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == -67108865, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000001; op2val:-0x400000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x400000004000001, -0x4000001, -0x400000000000001, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == -268435457, rs2_val == 0 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10000001; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x10000001, 0x0, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == -1073741825, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000001; op2val:-0x2000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x2000040000001, -0x40000001, -0x2000000000001, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == -2147483649, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80000001; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffd7ffffffb, -0x80000001, 0x5, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == -8589934593, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x200000001; op2val:-0x4000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x4000200000001, -0x200000001, -0x4000000000001, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == -17179869185, rs2_val == 2097152 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x400000001; op2val:0x200000 +TEST_CR_OP( c.mul, x15, x14, 0xff7fffffffe00000, -0x400000001, 0x200000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == -137438953473, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2000000001; op2val:-0x4000000000001 +TEST_CR_OP( c.mul, x15, x14, 0x4002000000001, -0x2000000001, -0x4000000000001, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == -274877906945, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000001; op2val:0x200 +TEST_CR_OP( c.mul, x15, x14, 0xffff7ffffffffe00, -0x4000000001, 0x200, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == -549755813889, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8000000001; op2val:-0x1 +TEST_CR_OP( c.mul, x15, x14, 0x8000000001, -0x8000000001, -0x1, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == -1099511627777, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10000000001; op2val:-0x2000000001 +TEST_CR_OP( c.mul, x15, x14, 0x12000000001, -0x10000000001, -0x2000000001, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == -2199023255553, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20000000001; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffff9fffffffffd, -0x20000000001, 0x3, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == -4398046511105, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000000001; op2val:-0x200001 +TEST_CR_OP( c.mul, x15, x14, 0x8000040000200001, -0x40000000001, -0x200001, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == -8796093022209, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80000000001; op2val:-0x7 +TEST_CR_OP( c.mul, x15, x14, 0x380000000007, -0x80000000001, -0x7, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == -17592186044417, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100000000001; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaa55555555555, -0x100000000001, -0x5555555555555555, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == -281474976710657, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1000000000001; op2val:0x4000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xc000000000000000, -0x1000000000001, 0x4000000000000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == -562949953421313, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2000000000001; op2val:-0x4001 +TEST_CR_OP( c.mul, x15, x14, 0x8002000000004001, -0x2000000000001, -0x4001, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == -9007199254740993, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20000000000001; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x66600000b504f333, -0x20000000000001, -0xb504f333, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == -18014398509481985, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x40000000000001; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x32ffffff4afb0ccc, -0x40000000000001, 0xb504f334, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == -36028797018963969, rs2_val == 36028797018963968 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80000000000001; op2val:0x80000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xff80000000000000, -0x80000000000001, 0x80000000000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == -72057594037927937, rs2_val == 1024 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100000000000001; op2val:0x400 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffc00, -0x100000000000001, 0x400, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == -576460752303423489, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x800000000000001; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x6199999999999999, -0x800000000000001, 0x6666666666666667, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == -1152921504606846977, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1000000000000001; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x1000000000000001, 0x0, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == -4611686018427387905, rs2_val == 2147483648 +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000000000001; op2val:0x80000000 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff80000000, -0x4000000000000001, 0x80000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs2_val == 1, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2; op2val:0x1 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, -0x2, 0x1, x1, 109*XLEN/8, x2) + +inst_110: +// rs2_val == 2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x1000000000001; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xfffdfffffffffffe, -0x1000000000001, 0x2, x1, 110*XLEN/8, x2) + +inst_111: +// rs2_val == 4, rs1_val==7378697629483820645 and rs2_val==4 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999994, 0x6666666666666665, 0x4, x1, 111*XLEN/8, x2) + +inst_112: +// rs2_val == 8, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100000000001; op2val:0x8 +TEST_CR_OP( c.mul, x15, x14, 0xffff7ffffffffff8, -0x100000000001, 0x8, x1, 112*XLEN/8, x2) + +inst_113: +// rs2_val == 16, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000000001; op2val:0x10 +TEST_CR_OP( c.mul, x15, x14, 0xffbffffffffffff0, -0x4000000000001, 0x10, x1, 113*XLEN/8, x2) + +inst_114: +// rs2_val == 64, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x40 +TEST_CR_OP( c.mul, x15, x14, 0x100, 0x4, 0x40, x1, 114*XLEN/8, x2) + +inst_115: +// rs2_val == 128, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000000001; op2val:0x80 +TEST_CR_OP( c.mul, x15, x14, 0xfdffffffffffff80, -0x4000000000001, 0x80, x1, 115*XLEN/8, x2) + +inst_116: +// rs2_val == 256, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80000000001; op2val:0x100 +TEST_CR_OP( c.mul, x15, x14, 0xfff7ffffffffff00, -0x80000000001, 0x100, x1, 116*XLEN/8, x2) + +inst_117: +// rs2_val == 2048, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x800 +TEST_CR_OP( c.mul, x15, x14, 0xfffffa57d8667000, -0xb504f332, 0x800, x1, 117*XLEN/8, x2) + +inst_118: +// rs2_val == 4096, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000000000; op2val:0x1000 +TEST_CR_OP( c.mul, x15, x14, 0x40000000000000, 0x40000000000, 0x1000, x1, 118*XLEN/8, x2) + +inst_119: +// rs2_val == 8192, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100000000001; op2val:0x2000 +TEST_CR_OP( c.mul, x15, x14, 0xfdffffffffffe000, -0x100000000001, 0x2000, x1, 119*XLEN/8, x2) + +inst_120: +// rs2_val == 16384, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000000000; op2val:0x4000 +TEST_CR_OP( c.mul, x15, x14, 0x800000000000000, 0x200000000000, 0x4000, x1, 120*XLEN/8, x2) + +inst_121: +// rs2_val == 32768, rs1_val == 2048 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800; op2val:0x8000 +TEST_CR_OP( c.mul, x15, x14, 0x4000000, 0x800, 0x8000, x1, 121*XLEN/8, x2) + +inst_122: +// rs2_val == 65536, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x2000000001; op2val:0x10000 +TEST_CR_OP( c.mul, x15, x14, 0xffdfffffffff0000, -0x2000000001, 0x10000, x1, 122*XLEN/8, x2) + +inst_123: +// rs2_val == 131072, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000000000000; op2val:0x20000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x80000000000000, 0x20000, x1, 123*XLEN/8, x2) + +inst_124: +// rs2_val == 262144, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80000001; op2val:0x40000 +TEST_CR_OP( c.mul, x15, x14, 0xfffdfffffffc0000, -0x80000001, 0x40000, x1, 124*XLEN/8, x2) + +inst_125: +// rs2_val == 524288, rs1_val == 8796093022208 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000000000; op2val:0x80000 +TEST_CR_OP( c.mul, x15, x14, 0x4000000000000000, 0x80000000000, 0x80000, x1, 125*XLEN/8, x2) + +inst_126: +// rs2_val == 1048576, rs1_val == 128 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80; op2val:0x100000 +TEST_CR_OP( c.mul, x15, x14, 0x8000000, 0x80, 0x100000, x1, 126*XLEN/8, x2) + +inst_127: +// rs2_val == 8388608, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x800000 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333800000, 0x6666666666666667, 0x800000, x1, 127*XLEN/8, x2) + +inst_128: +// rs2_val == 16777216, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000000000000; op2val:0x1000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x80000000000000, 0x1000000, x1, 128*XLEN/8, x2) + +inst_129: +// rs2_val == 33554432, rs1_val == 8 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8; op2val:0x2000000 +TEST_CR_OP( c.mul, x15, x14, 0x10000000, 0x8, 0x2000000, x1, 129*XLEN/8, x2) + +inst_130: +// rs2_val == 67108864, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x4000000 +TEST_CR_OP( c.mul, x15, x14, 0x10000000, 0x4, 0x4000000, x1, 130*XLEN/8, x2) + +inst_131: +// rs2_val == 134217728, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x8000000001; op2val:0x8000000 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffff8000000, -0x8000000001, 0x8000000, x1, 131*XLEN/8, x2) + +inst_132: +// rs2_val == 536870912, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x20000000 +TEST_CR_OP( c.mul, x15, x14, 0xa0000000, 0x5, 0x20000000, x1, 132*XLEN/8, x2) + +inst_133: +// rs2_val == 1073741824, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20000000000001; op2val:0x40000000 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffc0000000, -0x20000000000001, 0x40000000, x1, 133*XLEN/8, x2) + +inst_134: +// rs2_val == 4294967296, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x100000000 +TEST_CR_OP( c.mul, x15, x14, 0xb504f33200000000, 0xb504f332, 0x100000000, x1, 134*XLEN/8, x2) + +inst_135: +// rs2_val == 8589934592, rs1_val == 65536 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10000; op2val:0x200000000 +TEST_CR_OP( c.mul, x15, x14, 0x2000000000000, 0x10000, 0x200000000, x1, 135*XLEN/8, x2) + +inst_136: +// rs2_val == 17179869184, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000; op2val:0x400000000 +TEST_CR_OP( c.mul, x15, x14, 0x20000000000000, 0x80000, 0x400000000, x1, 136*XLEN/8, x2) + +inst_137: +// rs2_val == 34359738368, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x10001; op2val:0x800000000 +TEST_CR_OP( c.mul, x15, x14, 0xfff7fff800000000, -0x10001, 0x800000000, x1, 137*XLEN/8, x2) + +inst_138: +// rs2_val == 68719476736, rs1_val == 134217728 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8000000; op2val:0x1000000000 +TEST_CR_OP( c.mul, x15, x14, 0x8000000000000000, 0x8000000, 0x1000000000, x1, 138*XLEN/8, x2) + +inst_139: +// rs2_val == 274877906944, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x7fffffffffffffff; op2val:0x4000000000 +TEST_CR_OP( c.mul, x15, x14, 0xffffffc000000000, 0x7fffffffffffffff, 0x4000000000, x1, 139*XLEN/8, x2) + +inst_140: +// rs2_val == 549755813888, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x8000000000 +TEST_CR_OP( c.mul, x15, x14, 0x20000000000, 0x4, 0x8000000000, x1, 140*XLEN/8, x2) + +inst_141: +// rs2_val == 1099511627776, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5; op2val:0x10000000000 +TEST_CR_OP( c.mul, x15, x14, 0xfffffb0000000000, -0x5, 0x10000000000, x1, 141*XLEN/8, x2) + +inst_142: +// rs2_val == 2199023255552, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x20000000000 +TEST_CR_OP( c.mul, x15, x14, 0x9e6660000000000, 0xb504f333, 0x20000000000, x1, 142*XLEN/8, x2) + +inst_143: +// rs2_val == 4398046511104, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000000000000; op2val:0x40000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x4000000000000000, 0x40000000000, x1, 143*XLEN/8, x2) + +inst_144: +// rs2_val == 8796093022208, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x80000000000 +TEST_CR_OP( c.mul, x15, x14, 0x2799980000000000, 0xb504f333, 0x80000000000, x1, 144*XLEN/8, x2) + +inst_145: +// rs2_val == 17592186044416, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x20001; op2val:0x100000000000 +TEST_CR_OP( c.mul, x15, x14, 0xdffff00000000000, -0x20001, 0x100000000000, x1, 145*XLEN/8, x2) + +inst_146: +// rs2_val == 35184372088832, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x4000000000000001; op2val:0x200000000000 +TEST_CR_OP( c.mul, x15, x14, 0xffffe00000000000, -0x4000000000000001, 0x200000000000, x1, 146*XLEN/8, x2) + +inst_147: +// rs2_val == 70368744177664, rs1_val == 1073741824 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000000; op2val:0x400000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x40000000, 0x400000000000, x1, 147*XLEN/8, x2) + +inst_148: +// rs2_val == 140737488355328, rs1_val == 2 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x800000000000 +TEST_CR_OP( c.mul, x15, x14, 0x1000000000000, 0x2, 0x800000000000, x1, 148*XLEN/8, x2) + +inst_149: +// rs2_val == 281474976710656, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100001; op2val:0x1000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xffff000000000000, -0x100001, 0x1000000000000, x1, 149*XLEN/8, x2) + +inst_150: +// rs2_val == 562949953421312, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x100001; op2val:0x2000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xfffe000000000000, -0x100001, 0x2000000000000, x1, 150*XLEN/8, x2) + +inst_151: +// rs2_val == 18014398509481984, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x80000001; op2val:0x40000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xffc0000000000000, -0x80000001, 0x40000000000000, x1, 151*XLEN/8, x2) + +inst_152: +// rs2_val == 72057594037927936, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xa; op2val:0x100000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xf600000000000000, -0xa, 0x100000000000000, x1, 152*XLEN/8, x2) + +inst_153: +// rs2_val == 144115188075855872, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000000000; op2val:0x200000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x200000000000, 0x200000000000000, x1, 153*XLEN/8, x2) + +inst_154: +// rs2_val == 288230376151711744, rs1_val == 17592186044416 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100000000000; op2val:0x400000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x100000000000, 0x400000000000000, x1, 154*XLEN/8, x2) + +inst_155: +// rs2_val == 576460752303423488, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xa; op2val:0x800000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xb000000000000000, -0xa, 0x800000000000000, x1, 155*XLEN/8, x2) + +inst_156: +// rs2_val == 1152921504606846976, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x41; op2val:0x1000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0xf000000000000000, -0x41, 0x1000000000000000, x1, 156*XLEN/8, x2) + +inst_157: +// rs2_val == 2305843009213693952, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x2000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x6000000000000000, 0xb504f333, 0x2000000000000000, x1, 157*XLEN/8, x2) + +inst_158: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)), rs1_val == 562949953421312 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000000000000; op2val:-0x8000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x2000000000000, -0x8000000000000000, x1, 158*XLEN/8, x2) + +inst_159: +// rs1_val == 16, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10; op2val:-0x8 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffff80, 0x10, -0x8, x1, 159*XLEN/8, x2) + +inst_160: +// rs1_val == 32, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20; op2val:-0x100000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffdfffffffe0, 0x20, -0x100000001, x1, 160*XLEN/8, x2) + +inst_161: +// rs1_val == 64, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40; op2val:-0xa +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffd80, 0x40, -0xa, x1, 161*XLEN/8, x2) + +inst_162: +// rs1_val == 256, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100; op2val:-0x800000001 +TEST_CR_OP( c.mul, x15, x14, 0xfffff7ffffffff00, 0x100, -0x800000001, x1, 162*XLEN/8, x2) + +inst_163: +// rs1_val == 512, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200; op2val:0x9 +TEST_CR_OP( c.mul, x15, x14, 0x1200, 0x200, 0x9, x1, 163*XLEN/8, x2) + +inst_164: +// rs1_val == 1024, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400; op2val:0x80000000 +TEST_CR_OP( c.mul, x15, x14, 0x20000000000, 0x400, 0x80000000, x1, 164*XLEN/8, x2) + +inst_165: +// rs1_val == 4096, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1000; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xb504f334000, 0x1000, 0xb504f334, x1, 165*XLEN/8, x2) + +inst_166: +// rs1_val == 8192, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000; op2val:0x2000000 +TEST_CR_OP( c.mul, x15, x14, 0x4000000000, 0x2000, 0x2000000, x1, 166*XLEN/8, x2) + +inst_167: +// rs1_val == 16384, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000; op2val:0x1000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x4000000000000000, 0x4000, 0x1000000000000, x1, 167*XLEN/8, x2) + +inst_168: +// rs1_val == 32768, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8000; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xffffa57d86670000, 0x8000, -0xb504f332, x1, 168*XLEN/8, x2) + +inst_169: +// rs1_val == 1048576, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100000; op2val:0x7 +TEST_CR_OP( c.mul, x15, x14, 0x700000, 0x100000, 0x7, x1, 169*XLEN/8, x2) + +inst_170: +// rs1_val == 4194304, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400000; op2val:-0x10001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffbfffc00000, 0x400000, -0x10001, x1, 170*XLEN/8, x2) + +inst_171: +// rs1_val == 8388608, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800000; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x1000000, 0x800000, 0x2, x1, 171*XLEN/8, x2) + +inst_172: +// rs1_val == 16777216, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1000000; op2val:-0x4000000000000001 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffff000000, 0x1000000, -0x4000000000000001, x1, 172*XLEN/8, x2) + +inst_173: +// rs1_val == 33554432, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000000; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xfe95f6199c000000, 0x2000000, -0xb504f332, x1, 173*XLEN/8, x2) + +inst_174: +// rs1_val == 67108864, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000000; op2val:-0x100000001 +TEST_CR_OP( c.mul, x15, x14, 0xfbfffffffc000000, 0x4000000, -0x100000001, x1, 174*XLEN/8, x2) + +inst_175: +// rs1_val == 268435456, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10000000; op2val:0x10 +TEST_CR_OP( c.mul, x15, x14, 0x100000000, 0x10000000, 0x10, x1, 175*XLEN/8, x2) + +inst_176: +// rs1_val == 2147483648, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x80000000; op2val:-0x801 +TEST_CR_OP( c.mul, x15, x14, 0xfffffbff80000000, 0x80000000, -0x801, x1, 176*XLEN/8, x2) + +inst_177: +// rs1_val == 17179869184, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400000000; op2val:0x40000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x400000000, 0x40000000000, x1, 177*XLEN/8, x2) + +inst_178: +// rs1_val == 68719476736, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1000000000; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x5000000000, 0x1000000000, 0x5, x1, 178*XLEN/8, x2) + +inst_179: +// rs1_val == 549755813888, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8000000000; op2val:0x8000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x8000000000, 0x8000000, x1, 179*XLEN/8, x2) + +inst_180: +// rs1_val == 1099511627776, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x10000000000; op2val:-0x11 +TEST_CR_OP( c.mul, x15, x14, 0xffffef0000000000, 0x10000000000, -0x11, x1, 180*XLEN/8, x2) + +inst_181: +// rs1_val == 2199023255552, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x20000000000; op2val:-0x201 +TEST_CR_OP( c.mul, x15, x14, 0xfffbfe0000000000, 0x20000000000, -0x201, x1, 181*XLEN/8, x2) + +inst_182: +// rs1_val == 70368744177664, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400000000000; op2val:-0x401 +TEST_CR_OP( c.mul, x15, x14, 0xfeffc00000000000, 0x400000000000, -0x401, x1, 182*XLEN/8, x2) + +inst_183: +// rs1_val == 140737488355328, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800000000000; op2val:0x20000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x800000000000, 0x20000000, x1, 183*XLEN/8, x2) + +inst_184: +// rs1_val == 1125899906842624, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000000000000; op2val:-0x8000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x4000000000000, -0x8000000000000000, x1, 184*XLEN/8, x2) + +inst_185: +// rs1_val == 2251799813685248, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x8000000000000; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x18000000000000, 0x8000000000000, 0x3, x1, 185*XLEN/8, x2) + +inst_186: +// rs1_val == 18014398509481984, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x40000000000000; op2val:0x100 +TEST_CR_OP( c.mul, x15, x14, 0x4000000000000000, 0x40000000000000, 0x100, x1, 186*XLEN/8, x2) + +inst_187: +// rs1_val == 72057594037927936, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x100000000000000; op2val:-0x8000001 +TEST_CR_OP( c.mul, x15, x14, 0xff00000000000000, 0x100000000000000, -0x8000001, x1, 187*XLEN/8, x2) + +inst_188: +// rs1_val == 144115188075855872, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x200000000000000; op2val:0x4000000000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x200000000000000, 0x4000000000000000, x1, 188*XLEN/8, x2) + +inst_189: +// rs1_val == 288230376151711744, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x400000000000000; op2val:0x4000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x400000000000000, 0x4000, x1, 189*XLEN/8, x2) + +inst_190: +// rs1_val == 576460752303423488, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x800000000000000; op2val:-0x200000000001 +TEST_CR_OP( c.mul, x15, x14, 0xf800000000000000, 0x800000000000000, -0x200000000001, x1, 190*XLEN/8, x2) + +inst_191: +// rs1_val == 1152921504606846976, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x1000000000000000; op2val:-0x100000001 +TEST_CR_OP( c.mul, x15, x14, 0xf000000000000000, 0x1000000000000000, -0x100000001, x1, 191*XLEN/8, x2) + +inst_192: +// rs1_val == 2305843009213693952, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2000000000000000; op2val:0x800000000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x2000000000000000, 0x800000000000, x1, 192*XLEN/8, x2) + +inst_193: +// rs1_val == 4611686018427387904, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4000000000000000; op2val:0x100000000 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x4000000000000000, 0x100000000, x1, 193*XLEN/8, x2) + +inst_194: +// rs1_val==3 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x9, 0x3, 0x3, x1, 194*XLEN/8, x2) + +inst_195: +// rs1_val==3 and rs2_val==6148914691236517205, rs2_val == 6148914691236517205 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffffff, 0x3, 0x5555555555555555, x1, 195*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==-6148914691236517206, rs2_val == -6148914691236517206 +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, 0x3, -0x5555555555555556, x1, 196*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xf, 0x3, 0x5, x1, 197*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999999, 0x3, 0x3333333333333333, x1, 198*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333332, 0x3, 0x6666666666666666, x1, 199*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffde0f12667, 0x3, -0xb504f333, x1, 200*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x21f0ed999, 0x3, 0xb504f333, x1, 201*XLEN/8, x2) + +inst_202: +// rs1_val==3 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x6, 0x3, 0x2, x1, 202*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffc, 0x3, 0x5555555555555554, x1, 203*XLEN/8, x2) + +inst_204: +// rs1_val==3 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x3, 0x0, x1, 204*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x3, 0x4, x1, 205*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999996, 0x3, 0x3333333333333332, x1, 206*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x333333333333332f, 0x3, 0x6666666666666665, x1, 207*XLEN/8, x2) + +inst_208: +// rs1_val==3 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x21f0ed996, 0x3, 0xb504f332, x1, 208*XLEN/8, x2) + +inst_209: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x2, 0x3, 0x5555555555555556, x1, 209*XLEN/8, x2) + +inst_210: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x1, 0x3, -0x5555555555555555, x1, 210*XLEN/8, x2) + +inst_211: +// rs1_val==3 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x12, 0x3, 0x6, x1, 211*XLEN/8, x2) + +inst_212: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999c, 0x3, 0x3333333333333334, x1, 212*XLEN/8, x2) + +inst_213: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333335, 0x3, 0x6666666666666667, x1, 213*XLEN/8, x2) + +inst_214: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffde0f1266a, 0x3, -0xb504f332, x1, 214*XLEN/8, x2) + +inst_215: +// rs1_val==3 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x21f0ed99c, 0x3, 0xb504f334, x1, 215*XLEN/8, x2) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffffff, 0x5555555555555555, 0x3, x1, 216*XLEN/8, x2) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e38e38e39, 0x5555555555555555, 0x5555555555555555, x1, 217*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c71c71c72, 0x5555555555555555, -0x5555555555555556, x1, 218*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa9, 0x5555555555555555, 0x5, x1, 219*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeeeeeeeeeef, 0x5555555555555555, 0x3333333333333333, x1, 220*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xddddddddddddddde, 0x5555555555555555, 0x6666666666666666, x1, 221*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x5555555591ac5111, 0x5555555555555555, -0xb504f333, x1, 222*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa6e53aeef, 0x5555555555555555, 0xb504f333, x1, 223*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaaa, 0x5555555555555555, 0x2, x1, 224*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e38e38e38e4, 0x5555555555555555, 0x5555555555555554, x1, 225*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x5555555555555555, 0x0, x1, 226*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555554, 0x5555555555555555, 0x4, x1, 227*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999a, 0x5555555555555555, 0x3333333333333332, x1, 228*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x8888888888888889, 0x5555555555555555, 0x6666666666666665, x1, 229*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x5555555518fe599a, 0x5555555555555555, 0xb504f332, x1, 230*XLEN/8, x2) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e38e38e38e, 0x5555555555555555, 0x5555555555555556, x1, 231*XLEN/8, x2) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c71c71c71c7, 0x5555555555555555, -0x5555555555555555, x1, 232*XLEN/8, x2) + +inst_233: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, 0x5555555555555555, 0x6, x1, 233*XLEN/8, x2) + +inst_234: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x4444444444444444, 0x5555555555555555, 0x3333333333333334, x1, 234*XLEN/8, x2) + +inst_235: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333333, 0x5555555555555555, 0x6666666666666667, x1, 235*XLEN/8, x2) + +inst_236: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaae701a666, 0x5555555555555555, -0xb504f332, x1, 236*XLEN/8, x2) + +inst_237: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffc3a90444, 0x5555555555555555, 0xb504f334, x1, 237*XLEN/8, x2) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, -0x5555555555555556, 0x3, x1, 238*XLEN/8, x2) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c71c71c72, -0x5555555555555556, 0x5555555555555555, x1, 239*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e38e38e38e4, -0x5555555555555556, -0x5555555555555556, x1, 240*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555552, -0x5555555555555556, 0x5, x1, 241*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xddddddddddddddde, -0x5555555555555556, 0x3333333333333333, x1, 242*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbbbbbbbbbc, -0x5555555555555556, 0x6666666666666666, x1, 243*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaab2358a222, -0x5555555555555556, -0xb504f333, x1, 244*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x55555554dca75dde, -0x5555555555555556, 0xb504f333, x1, 245*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555554, -0x5555555555555556, 0x2, x1, 246*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c71c71c71c8, -0x5555555555555556, 0x5555555555555554, x1, 247*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x5555555555555556, 0x0, x1, 248*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa8, -0x5555555555555556, 0x4, x1, 249*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333334, -0x5555555555555556, 0x3333333333333332, x1, 250*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x1111111111111112, -0x5555555555555556, 0x6666666666666665, x1, 251*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa31fcb334, -0x5555555555555556, 0xb504f332, x1, 252*XLEN/8, x2) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c71c71c71c, -0x5555555555555556, 0x5555555555555556, x1, 253*XLEN/8, x2) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e38e38e38e, -0x5555555555555556, -0x5555555555555555, x1, 254*XLEN/8, x2) + +inst_255: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffc, -0x5555555555555556, 0x6, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_256: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x8888888888888888, -0x5555555555555556, 0x3333333333333334, x1, 0*XLEN/8, x2) + +inst_257: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666666, -0x5555555555555556, 0x6666666666666667, x1, 1*XLEN/8, x2) + +inst_258: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x55555555ce034ccc, -0x5555555555555556, -0xb504f332, x1, 2*XLEN/8, x2) + +inst_259: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff87520888, -0x5555555555555556, 0xb504f334, x1, 3*XLEN/8, x2) + +inst_260: +// rs1_val==5 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xf, 0x5, 0x3, x1, 4*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa9, 0x5, 0x5555555555555555, x1, 5*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555552, 0x5, -0x5555555555555556, x1, 6*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x19, 0x5, 0x5, x1, 7*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffffff, 0x5, 0x3333333333333333, x1, 8*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, 0x5, 0x6666666666666666, x1, 9*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc76e74001, 0x5, -0xb504f333, x1, 10*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x38918bfff, 0x5, 0xb504f333, x1, 11*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xa, 0x5, 0x2, x1, 12*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa4, 0x5, 0x5555555555555554, x1, 13*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x5, 0x0, x1, 14*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x14, 0x5, 0x4, x1, 15*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffa, 0x5, 0x3333333333333332, x1, 16*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffff9, 0x5, 0x6666666666666665, x1, 17*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x38918bffa, 0x5, 0xb504f332, x1, 18*XLEN/8, x2) + +inst_275: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaae, 0x5, 0x5555555555555556, x1, 19*XLEN/8, x2) + +inst_276: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555557, 0x5, -0x5555555555555555, x1, 20*XLEN/8, x2) + +inst_277: +// rs1_val==5 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x1e, 0x5, 0x6, x1, 21*XLEN/8, x2) + +inst_278: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x5, 0x3333333333333334, x1, 22*XLEN/8, x2) + +inst_279: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x3, 0x5, 0x6666666666666667, x1, 23*XLEN/8, x2) + +inst_280: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc76e74006, 0x5, -0xb504f332, x1, 24*XLEN/8, x2) + +inst_281: +// rs1_val==5 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x38918c004, 0x5, 0xb504f334, x1, 25*XLEN/8, x2) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999999, 0x3333333333333333, 0x3, x1, 26*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeeeeeeeeeef, 0x3333333333333333, 0x5555555555555555, x1, 27*XLEN/8, x2) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xddddddddddddddde, 0x3333333333333333, -0x5555555555555556, x1, 28*XLEN/8, x2) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffffffffff, 0x3333333333333333, 0x5, x1, 29*XLEN/8, x2) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x8f5c28f5c28f5c29, 0x3333333333333333, 0x3333333333333333, x1, 30*XLEN/8, x2) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x1eb851eb851eb852, 0x3333333333333333, 0x6666666666666666, x1, 31*XLEN/8, x2) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x33333333576763d7, 0x3333333333333333, -0xb504f333, x1, 32*XLEN/8, x2) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccca8989c29, 0x3333333333333333, 0xb504f333, x1, 33*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666666, 0x3333333333333333, 0x2, x1, 34*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbbbbbbbbbc, 0x3333333333333333, 0x5555555555555554, x1, 35*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x3333333333333333, 0x0, x1, 36*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x3333333333333333, 0x4, x1, 37*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x5c28f5c28f5c28f6, 0x3333333333333333, 0x3333333333333332, x1, 38*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eb851eb851f, 0x3333333333333333, 0x6666666666666665, x1, 39*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x99999999756568f6, 0x3333333333333333, 0xb504f332, x1, 40*XLEN/8, x2) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x2222222222222222, 0x3333333333333333, 0x5555555555555556, x1, 41*XLEN/8, x2) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x1111111111111111, 0x3333333333333333, -0x5555555555555555, x1, 42*XLEN/8, x2) + +inst_299: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333332, 0x3333333333333333, 0x6, x1, 43*XLEN/8, x2) + +inst_300: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0xc28f5c28f5c28f5c, 0x3333333333333333, 0x3333333333333334, x1, 44*XLEN/8, x2) + +inst_301: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851eb851eb85, 0x3333333333333333, 0x6666666666666667, x1, 45*XLEN/8, x2) + +inst_302: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x666666668a9a970a, 0x3333333333333333, -0xb504f332, x1, 46*XLEN/8, x2) + +inst_303: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffdbcbcf5c, 0x3333333333333333, 0xb504f334, x1, 47*XLEN/8, x2) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333332, 0x6666666666666666, 0x3, x1, 48*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xddddddddddddddde, 0x6666666666666666, 0x5555555555555555, x1, 49*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbbbbbbbbbc, 0x6666666666666666, -0x5555555555555556, x1, 50*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, 0x6666666666666666, 0x5, x1, 51*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x1eb851eb851eb852, 0x6666666666666666, 0x3333333333333333, x1, 52*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x3d70a3d70a3d70a4, 0x6666666666666666, 0x6666666666666666, x1, 53*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x66666666aecec7ae, 0x6666666666666666, -0xb504f333, x1, 54*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x9999999951313852, 0x6666666666666666, 0xb504f333, x1, 55*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x6666666666666666, 0x2, x1, 56*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x7777777777777778, 0x6666666666666666, 0x5555555555555554, x1, 57*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x6666666666666666, 0x0, x1, 58*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999998, 0x6666666666666666, 0x4, x1, 59*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb851eb851ec, 0x6666666666666666, 0x3333333333333332, x1, 60*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xd70a3d70a3d70a3e, 0x6666666666666666, 0x6666666666666665, x1, 61*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x33333332eacad1ec, 0x6666666666666666, 0xb504f332, x1, 62*XLEN/8, x2) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x4444444444444444, 0x6666666666666666, 0x5555555555555556, x1, 63*XLEN/8, x2) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x2222222222222222, 0x6666666666666666, -0x5555555555555555, x1, 64*XLEN/8, x2) + +inst_321: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666664, 0x6666666666666666, 0x6, x1, 65*XLEN/8, x2) + +inst_322: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x851eb851eb851eb8, 0x6666666666666666, 0x3333333333333334, x1, 66*XLEN/8, x2) + +inst_323: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3d70a3d70a, 0x6666666666666666, 0x6666666666666667, x1, 67*XLEN/8, x2) + +inst_324: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccd15352e14, 0x6666666666666666, -0xb504f332, x1, 68*XLEN/8, x2) + +inst_325: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffb7979eb8, 0x6666666666666666, 0xb504f334, x1, 69*XLEN/8, x2) + +inst_326: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffde0f12667, -0xb504f333, 0x3, x1, 70*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555591ac5111, -0xb504f333, 0x5555555555555555, x1, 71*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaab2358a222, -0xb504f333, -0x5555555555555556, x1, 72*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc76e74001, -0xb504f333, 0x5, x1, 73*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x33333333576763d7, -0xb504f333, 0x3333333333333333, x1, 74*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x66666666aecec7ae, -0xb504f333, 0x6666666666666666, x1, 75*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffe9ea1dc29, -0xb504f333, -0xb504f333, x1, 76*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x80000001615e23d7, -0xb504f333, 0xb504f333, x1, 77*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe95f6199a, -0xb504f333, 0x2, x1, 78*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x5555555646b14444, -0xb504f333, 0x5555555555555554, x1, 79*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0xb504f333, 0x0, x1, 80*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffd2bec3334, -0xb504f333, 0x4, x1, 81*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x333333340c6c570a, -0xb504f333, 0x3333333333333332, x1, 82*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x6666666763d3bae1, -0xb504f333, 0x6666666666666665, x1, 83*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x800000021663170a, -0xb504f333, 0xb504f332, x1, 84*XLEN/8, x2) + +inst_341: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555554dca75dde, -0xb504f333, 0x5555555555555556, x1, 85*XLEN/8, x2) + +inst_342: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa6e53aeef, -0xb504f333, -0x5555555555555555, x1, 86*XLEN/8, x2) + +inst_343: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffbc1e24cce, -0xb504f333, 0x6, x1, 87*XLEN/8, x2) + +inst_344: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x33333332a26270a4, -0xb504f333, 0x3333333333333334, x1, 88*XLEN/8, x2) + +inst_345: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x66666665f9c9d47b, -0xb504f333, 0x6666666666666667, x1, 89*XLEN/8, x2) + +inst_346: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffde99ce8f6, -0xb504f333, -0xb504f332, x1, 90*XLEN/8, x2) + +inst_347: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f333; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x80000000ac5930a4, -0xb504f333, 0xb504f334, x1, 91*XLEN/8, x2) + +inst_348: +// rs1_val==3037000499 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x21f0ed999, 0xb504f333, 0x3, x1, 92*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa6e53aeef, 0xb504f333, 0x5555555555555555, x1, 93*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555554dca75dde, 0xb504f333, -0x5555555555555556, x1, 94*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x38918bfff, 0xb504f333, 0x5, x1, 95*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccca8989c29, 0xb504f333, 0x3333333333333333, x1, 96*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x9999999951313852, 0xb504f333, 0x6666666666666666, x1, 97*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x80000001615e23d7, 0xb504f333, -0xb504f333, x1, 98*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffe9ea1dc29, 0xb504f333, 0xb504f333, x1, 99*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x16a09e666, 0xb504f333, 0x2, x1, 100*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa9b94ebbbc, 0xb504f333, 0x5555555555555554, x1, 101*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0xb504f333, 0x0, x1, 102*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x2d413cccc, 0xb504f333, 0x4, x1, 103*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccbf393a8f6, 0xb504f333, 0x3333333333333332, x1, 104*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x999999989c2c451f, 0xb504f333, 0x6666666666666665, x1, 105*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffde99ce8f6, 0xb504f333, 0xb504f332, x1, 106*XLEN/8, x2) + +inst_363: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaab2358a222, 0xb504f333, 0x5555555555555556, x1, 107*XLEN/8, x2) + +inst_364: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555591ac5111, 0xb504f333, -0x5555555555555555, x1, 108*XLEN/8, x2) + +inst_365: +// rs1_val==3037000499 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x43e1db332, 0xb504f333, 0x6, x1, 109*XLEN/8, x2) + +inst_366: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccd5d9d8f5c, 0xb504f333, 0x3333333333333334, x1, 110*XLEN/8, x2) + +inst_367: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a06362b85, 0xb504f333, 0x6666666666666667, x1, 111*XLEN/8, x2) + +inst_368: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x800000021663170a, 0xb504f333, -0xb504f332, x1, 112*XLEN/8, x2) + +inst_369: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f333; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x7fffffff53a6cf5c, 0xb504f333, 0xb504f334, x1, 113*XLEN/8, x2) + +inst_370: +// rs1_val==2 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x6, 0x2, 0x3, x1, 114*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaaa, 0x2, 0x5555555555555555, x1, 115*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555554, 0x2, -0x5555555555555556, x1, 116*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xa, 0x2, 0x5, x1, 117*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666666, 0x2, 0x3333333333333333, x1, 118*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x2, 0x6666666666666666, x1, 119*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe95f6199a, 0x2, -0xb504f333, x1, 120*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x16a09e666, 0x2, 0xb504f333, x1, 121*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x2, 0x2, x1, 122*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa8, 0x2, 0x5555555555555554, x1, 123*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x2, 0x0, x1, 124*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x8, 0x2, 0x4, x1, 125*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666664, 0x2, 0x3333333333333332, x1, 126*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccca, 0x2, 0x6666666666666665, x1, 127*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x16a09e664, 0x2, 0xb504f332, x1, 128*XLEN/8, x2) + +inst_385: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaac, 0x2, 0x5555555555555556, x1, 129*XLEN/8, x2) + +inst_386: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555556, 0x2, -0x5555555555555555, x1, 130*XLEN/8, x2) + +inst_387: +// rs1_val==2 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x2, 0x6, x1, 131*XLEN/8, x2) + +inst_388: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666668, 0x2, 0x3333333333333334, x1, 132*XLEN/8, x2) + +inst_389: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccce, 0x2, 0x6666666666666667, x1, 133*XLEN/8, x2) + +inst_390: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe95f6199c, 0x2, -0xb504f332, x1, 134*XLEN/8, x2) + +inst_391: +// rs1_val==2 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x2; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x16a09e668, 0x2, 0xb504f334, x1, 135*XLEN/8, x2) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffc, 0x5555555555555554, 0x3, x1, 136*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e38e38e38e4, 0x5555555555555554, 0x5555555555555555, x1, 137*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c71c71c71c8, 0x5555555555555554, -0x5555555555555556, x1, 138*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa4, 0x5555555555555554, 0x5, x1, 139*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbbbbbbbbbc, 0x5555555555555554, 0x3333333333333333, x1, 140*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x7777777777777778, 0x5555555555555554, 0x6666666666666666, x1, 141*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x5555555646b14444, 0x5555555555555554, -0xb504f333, x1, 142*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaa9b94ebbbc, 0x5555555555555554, 0xb504f333, x1, 143*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa8, 0x5555555555555554, 0x2, x1, 144*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e38e38e390, 0x5555555555555554, 0x5555555555555554, x1, 145*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x5555555555555554, 0x0, x1, 146*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555550, 0x5555555555555554, 0x4, x1, 147*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666668, 0x5555555555555554, 0x3333333333333332, x1, 148*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x2222222222222224, 0x5555555555555554, 0x6666666666666665, x1, 149*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x5555555463f96668, 0x5555555555555554, 0xb504f332, x1, 150*XLEN/8, x2) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e38e38e38, 0x5555555555555554, 0x5555555555555556, x1, 151*XLEN/8, x2) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c71c71c71c, 0x5555555555555554, -0x5555555555555555, x1, 152*XLEN/8, x2) + +inst_409: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffff8, 0x5555555555555554, 0x6, x1, 153*XLEN/8, x2) + +inst_410: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x1111111111111110, 0x5555555555555554, 0x3333333333333334, x1, 154*XLEN/8, x2) + +inst_411: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x5555555555555554, 0x6666666666666667, x1, 155*XLEN/8, x2) + +inst_412: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaab9c069998, 0x5555555555555554, -0xb504f332, x1, 156*XLEN/8, x2) + +inst_413: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff0ea41110, 0x5555555555555554, 0xb504f334, x1, 157*XLEN/8, x2) + +inst_414: +// rs1_val==0 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x3, x1, 158*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x5555555555555555, x1, 159*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0x5555555555555556, x1, 160*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x5, x1, 161*XLEN/8, x2) + +inst_418: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x3333333333333333, x1, 162*XLEN/8, x2) + +inst_419: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x6666666666666666, x1, 163*XLEN/8, x2) + +inst_420: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0xb504f333, x1, 164*XLEN/8, x2) + +inst_421: +// rs1_val==0 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0xb504f333, x1, 165*XLEN/8, x2) + +inst_422: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0xb504f332, x1, 166*XLEN/8, x2) + +inst_423: +// rs1_val==0 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0xb504f334, x1, 167*XLEN/8, x2) + +inst_424: +// rs1_val==4 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x4, 0x3, x1, 168*XLEN/8, x2) + +inst_425: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555554, 0x4, 0x5555555555555555, x1, 169*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaa8, 0x4, -0x5555555555555556, x1, 170*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x14, 0x4, 0x5, x1, 171*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x4, 0x3333333333333333, x1, 172*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999998, 0x4, 0x6666666666666666, x1, 173*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffd2bec3334, 0x4, -0xb504f333, x1, 174*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x2d413cccc, 0x4, 0xb504f333, x1, 175*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x8, 0x4, 0x2, x1, 176*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555550, 0x4, 0x5555555555555554, x1, 177*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x4, 0x0, x1, 178*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x10, 0x4, 0x4, x1, 179*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccc8, 0x4, 0x3333333333333332, x1, 180*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999994, 0x4, 0x6666666666666665, x1, 181*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x2d413ccc8, 0x4, 0xb504f332, x1, 182*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555558, 0x4, 0x5555555555555556, x1, 183*XLEN/8, x2) + +inst_440: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaac, 0x4, -0x5555555555555555, x1, 184*XLEN/8, x2) + +inst_441: +// rs1_val==4 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x18, 0x4, 0x6, x1, 185*XLEN/8, x2) + +inst_442: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccd0, 0x4, 0x3333333333333334, x1, 186*XLEN/8, x2) + +inst_443: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999c, 0x4, 0x6666666666666667, x1, 187*XLEN/8, x2) + +inst_444: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffd2bec3338, 0x4, -0xb504f332, x1, 188*XLEN/8, x2) + +inst_445: +// rs1_val==4 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x4; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x2d413ccd0, 0x4, 0xb504f334, x1, 189*XLEN/8, x2) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x9999999999999996, 0x3333333333333332, 0x3, x1, 190*XLEN/8, x2) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999a, 0x3333333333333332, 0x5555555555555555, x1, 191*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333334, 0x3333333333333332, -0x5555555555555556, x1, 192*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffa, 0x3333333333333332, 0x5, x1, 193*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x5c28f5c28f5c28f6, 0x3333333333333332, 0x3333333333333333, x1, 194*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb851eb851ec, 0x3333333333333332, 0x6666666666666666, x1, 195*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x333333340c6c570a, 0x3333333333333332, -0xb504f333, x1, 196*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccbf393a8f6, 0x3333333333333332, 0xb504f333, x1, 197*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666664, 0x3333333333333332, 0x2, x1, 198*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666668, 0x3333333333333332, 0x5555555555555554, x1, 199*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x3333333333333332, 0x0, x1, 200*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccc8, 0x3333333333333332, 0x4, x1, 201*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x28f5c28f5c28f5c4, 0x3333333333333332, 0x3333333333333332, x1, 202*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x851eb851eb851eba, 0x3333333333333332, 0x6666666666666665, x1, 203*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x99999998c06075c4, 0x3333333333333332, 0xb504f332, x1, 204*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x3333333333333332, 0x5555555555555556, x1, 205*XLEN/8, x2) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666666, 0x3333333333333332, -0x5555555555555555, x1, 206*XLEN/8, x2) + +inst_463: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x333333333333332c, 0x3333333333333332, 0x6, x1, 207*XLEN/8, x2) + +inst_464: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x8f5c28f5c28f5c28, 0x3333333333333332, 0x3333333333333334, x1, 208*XLEN/8, x2) + +inst_465: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eb851eb851e, 0x3333333333333332, 0x6666666666666667, x1, 209*XLEN/8, x2) + +inst_466: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x666666673f9f8a3c, 0x3333333333333332, -0xb504f332, x1, 210*XLEN/8, x2) + +inst_467: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff26c6dc28, 0x3333333333333332, 0xb504f334, x1, 211*XLEN/8, x2) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x333333333333332f, 0x6666666666666665, 0x3, x1, 212*XLEN/8, x2) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x8888888888888889, 0x6666666666666665, 0x5555555555555555, x1, 213*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x1111111111111112, 0x6666666666666665, -0x5555555555555556, x1, 214*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffff9, 0x6666666666666665, 0x5, x1, 215*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eb851eb851f, 0x6666666666666665, 0x3333333333333333, x1, 216*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xd70a3d70a3d70a3e, 0x6666666666666665, 0x6666666666666666, x1, 217*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x6666666763d3bae1, 0x6666666666666665, -0xb504f333, x1, 218*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x999999989c2c451f, 0x6666666666666665, 0xb504f333, x1, 219*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccca, 0x6666666666666665, 0x2, x1, 220*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x2222222222222224, 0x6666666666666665, 0x5555555555555554, x1, 221*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x6666666666666665, 0x0, x1, 222*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x851eb851eb851eba, 0x6666666666666665, 0x3333333333333332, x1, 223*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x70a3d70a3d70a3d9, 0x6666666666666665, 0x6666666666666665, x1, 224*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x3333333235c5deba, 0x6666666666666665, 0xb504f332, x1, 225*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeeeeeeeeeee, 0x6666666666666665, 0x5555555555555556, x1, 226*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x7777777777777777, 0x6666666666666665, -0x5555555555555555, x1, 227*XLEN/8, x2) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x666666666666665e, 0x6666666666666665, 0x6, x1, 228*XLEN/8, x2) + +inst_485: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851eb851eb84, 0x6666666666666665, 0x3333333333333334, x1, 229*XLEN/8, x2) + +inst_486: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x3d70a3d70a3d70a3, 0x6666666666666665, 0x6666666666666667, x1, 230*XLEN/8, x2) + +inst_487: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccdca3a2146, 0x6666666666666665, -0xb504f332, x1, 231*XLEN/8, x2) + +inst_488: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff0292ab84, 0x6666666666666665, 0xb504f334, x1, 232*XLEN/8, x2) + +inst_489: +// rs1_val==3037000498 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x21f0ed996, 0xb504f332, 0x3, x1, 233*XLEN/8, x2) + +inst_490: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555518fe599a, 0xb504f332, 0x5555555555555555, x1, 234*XLEN/8, x2) + +inst_491: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa31fcb334, 0xb504f332, -0x5555555555555556, x1, 235*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x38918bffa, 0xb504f332, 0x5, x1, 236*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x99999999756568f6, 0xb504f332, 0x3333333333333333, x1, 237*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x33333332eacad1ec, 0xb504f332, 0x6666666666666666, x1, 238*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x800000021663170a, 0xb504f332, -0xb504f333, x1, 239*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffde99ce8f6, 0xb504f332, 0xb504f333, x1, 240*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x16a09e664, 0xb504f332, 0x2, x1, 241*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x5555555463f96668, 0xb504f332, 0x5555555555555554, x1, 242*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0xb504f332, 0x0, x1, 243*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x2d413ccc8, 0xb504f332, 0x4, x1, 244*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x99999998c06075c4, 0xb504f332, 0x3333333333333332, x1, 245*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x3333333235c5deba, 0xb504f332, 0x6666666666666665, x1, 246*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffd3497f5c4, 0xb504f332, 0xb504f332, x1, 247*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555555ce034ccc, 0xb504f332, 0x5555555555555556, x1, 248*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaae701a666, 0xb504f332, -0x5555555555555555, x1, 249*XLEN/8, x2) + +inst_506: +// rs1_val==3037000498 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x43e1db32c, 0xb504f332, 0x6, x1, 250*XLEN/8, x2) + +inst_507: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a2a6a5c28, 0xb504f332, 0x3333333333333334, x1, 251*XLEN/8, x2) + +inst_508: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x333333339fcfc51e, 0xb504f332, 0x6666666666666667, x1, 252*XLEN/8, x2) + +inst_509: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x80000002cb680a3c, 0xb504f332, -0xb504f332, x1, 253*XLEN/8, x2) + +inst_510: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f332; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffe9ea1dc28, 0xb504f332, 0xb504f334, x1, 254*XLEN/8, x2) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x2, 0x5555555555555556, 0x3, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_3) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e38e38e38e, 0x5555555555555556, 0x5555555555555555, x1, 0*XLEN/8, x2) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c71c71c71c, 0x5555555555555556, -0x5555555555555556, x1, 1*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaae, 0x5555555555555556, 0x5, x1, 2*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x2222222222222222, 0x5555555555555556, 0x3333333333333333, x1, 3*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x4444444444444444, 0x5555555555555556, 0x6666666666666666, x1, 4*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x55555554dca75dde, 0x5555555555555556, -0xb504f333, x1, 5*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaab2358a222, 0x5555555555555556, 0xb504f333, x1, 6*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaac, 0x5555555555555556, 0x2, x1, 7*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e38e38e38, 0x5555555555555556, 0x5555555555555554, x1, 8*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x5555555555555556, 0x0, x1, 9*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555558, 0x5555555555555556, 0x4, x1, 10*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x5555555555555556, 0x3333333333333332, x1, 11*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xeeeeeeeeeeeeeeee, 0x5555555555555556, 0x6666666666666665, x1, 12*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x55555555ce034ccc, 0x5555555555555556, 0xb504f332, x1, 13*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x38e38e38e38e38e4, 0x5555555555555556, 0x5555555555555556, x1, 14*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c71c71c72, 0x5555555555555556, -0x5555555555555555, x1, 15*XLEN/8, x2) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x5555555555555556, 0x6, x1, 16*XLEN/8, x2) + +inst_529: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x7777777777777778, 0x5555555555555556, 0x3333333333333334, x1, 17*XLEN/8, x2) + +inst_530: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999a, 0x5555555555555556, 0x6666666666666667, x1, 18*XLEN/8, x2) + +inst_531: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa31fcb334, 0x5555555555555556, -0xb504f332, x1, 19*XLEN/8, x2) + +inst_532: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x78adf778, 0x5555555555555556, 0xb504f334, x1, 20*XLEN/8, x2) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x1, -0x5555555555555555, 0x3, x1, 21*XLEN/8, x2) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x71c71c71c71c71c7, -0x5555555555555555, 0x5555555555555555, x1, 22*XLEN/8, x2) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xe38e38e38e38e38e, -0x5555555555555555, -0x5555555555555556, x1, 23*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555557, -0x5555555555555555, 0x5, x1, 24*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x1111111111111111, -0x5555555555555555, 0x3333333333333333, x1, 25*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x2222222222222222, -0x5555555555555555, 0x6666666666666666, x1, 26*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa6e53aeef, -0x5555555555555555, -0xb504f333, x1, 27*XLEN/8, x2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x5555555591ac5111, -0x5555555555555555, 0xb504f333, x1, 28*XLEN/8, x2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x5555555555555556, -0x5555555555555555, 0x2, x1, 29*XLEN/8, x2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xc71c71c71c71c71c, -0x5555555555555555, 0x5555555555555554, x1, 30*XLEN/8, x2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0x5555555555555555, 0x0, x1, 31*XLEN/8, x2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaaaaaaaaac, -0x5555555555555555, 0x4, x1, 32*XLEN/8, x2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666666, -0x5555555555555555, 0x3333333333333332, x1, 33*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x7777777777777777, -0x5555555555555555, 0x6666666666666665, x1, 34*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaae701a666, -0x5555555555555555, 0xb504f332, x1, 35*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x1c71c71c71c71c72, -0x5555555555555555, 0x5555555555555556, x1, 36*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x8e38e38e38e38e39, -0x5555555555555555, -0x5555555555555555, x1, 37*XLEN/8, x2) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x2, -0x5555555555555555, 0x6, x1, 38*XLEN/8, x2) + +inst_551: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbbbbbbbbbc, -0x5555555555555555, 0x3333333333333334, x1, 39*XLEN/8, x2) + +inst_552: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccd, -0x5555555555555555, 0x6666666666666667, x1, 40*XLEN/8, x2) + +inst_553: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x5555555518fe599a, -0x5555555555555555, -0xb504f332, x1, 41*XLEN/8, x2) + +inst_554: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x3c56fbbc, -0x5555555555555555, 0xb504f334, x1, 42*XLEN/8, x2) + +inst_555: +// rs1_val==6 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x12, 0x6, 0x3, x1, 43*XLEN/8, x2) + +inst_556: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffe, 0x6, 0x5555555555555555, x1, 44*XLEN/8, x2) + +inst_557: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffffc, 0x6, -0x5555555555555556, x1, 45*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x1e, 0x6, 0x5, x1, 46*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333332, 0x6, 0x3333333333333333, x1, 47*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666664, 0x6, 0x6666666666666666, x1, 48*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffbc1e24cce, 0x6, -0xb504f333, x1, 49*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x43e1db332, 0x6, 0xb504f333, x1, 50*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xc, 0x6, 0x2, x1, 51*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffffffffff8, 0x6, 0x5555555555555554, x1, 52*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x6, 0x0, x1, 53*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x18, 0x6, 0x4, x1, 54*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x333333333333332c, 0x6, 0x3333333333333332, x1, 55*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x666666666666665e, 0x6, 0x6666666666666665, x1, 56*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x43e1db32c, 0x6, 0xb504f332, x1, 57*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x6, 0x5555555555555556, x1, 58*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x2, 0x6, -0x5555555555555555, x1, 59*XLEN/8, x2) + +inst_572: +// rs1_val==6 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x24, 0x6, 0x6, x1, 60*XLEN/8, x2) + +inst_573: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333338, 0x6, 0x3333333333333334, x1, 61*XLEN/8, x2) + +inst_574: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x666666666666666a, 0x6, 0x6666666666666667, x1, 62*XLEN/8, x2) + +inst_575: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffbc1e24cd4, 0x6, -0xb504f332, x1, 63*XLEN/8, x2) + +inst_576: +// rs1_val==6 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x43e1db338, 0x6, 0xb504f334, x1, 64*XLEN/8, x2) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999c, 0x3333333333333334, 0x3, x1, 65*XLEN/8, x2) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x4444444444444444, 0x3333333333333334, 0x5555555555555555, x1, 66*XLEN/8, x2) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x8888888888888888, 0x3333333333333334, -0x5555555555555556, x1, 67*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x4, 0x3333333333333334, 0x5, x1, 68*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xc28f5c28f5c28f5c, 0x3333333333333334, 0x3333333333333333, x1, 69*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0x851eb851eb851eb8, 0x3333333333333334, 0x6666666666666666, x1, 70*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x33333332a26270a4, 0x3333333333333334, -0xb504f333, x1, 71*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccd5d9d8f5c, 0x3333333333333334, 0xb504f333, x1, 72*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666668, 0x3333333333333334, 0x2, x1, 73*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x1111111111111110, 0x3333333333333334, 0x5555555555555554, x1, 74*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x3333333333333334, 0x0, x1, 75*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccd0, 0x3333333333333334, 0x4, x1, 76*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x8f5c28f5c28f5c28, 0x3333333333333334, 0x3333333333333332, x1, 77*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851eb851eb84, 0x3333333333333334, 0x6666666666666665, x1, 78*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a2a6a5c28, 0x3333333333333334, 0xb504f332, x1, 79*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x7777777777777778, 0x3333333333333334, 0x5555555555555556, x1, 80*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xbbbbbbbbbbbbbbbc, 0x3333333333333334, -0x5555555555555555, x1, 81*XLEN/8, x2) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333338, 0x3333333333333334, 0x6, x1, 82*XLEN/8, x2) + +inst_595: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0xf5c28f5c28f5c290, 0x3333333333333334, 0x3333333333333334, x1, 83*XLEN/8, x2) + +inst_596: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb851eb851ec, 0x3333333333333334, 0x6666666666666667, x1, 84*XLEN/8, x2) + +inst_597: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x66666665d595a3d8, 0x3333333333333334, -0xb504f332, x1, 85*XLEN/8, x2) + +inst_598: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x90d0c290, 0x3333333333333334, 0xb504f334, x1, 86*XLEN/8, x2) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333335, 0x6666666666666667, 0x3, x1, 87*XLEN/8, x2) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x3333333333333333, 0x6666666666666667, 0x5555555555555555, x1, 88*XLEN/8, x2) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x6666666666666666, 0x6666666666666667, -0x5555555555555556, x1, 89*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x3, 0x6666666666666667, 0x5, x1, 90*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x51eb851eb851eb85, 0x6666666666666667, 0x3333333333333333, x1, 91*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3d70a3d70a, 0x6666666666666667, 0x6666666666666666, x1, 92*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x66666665f9c9d47b, 0x6666666666666667, -0xb504f333, x1, 93*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x9999999a06362b85, 0x6666666666666667, 0xb504f333, x1, 94*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xccccccccccccccce, 0x6666666666666667, 0x2, x1, 95*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccc, 0x6666666666666667, 0x5555555555555554, x1, 96*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x6666666666666667, 0x0, x1, 97*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999c, 0x6666666666666667, 0x4, x1, 98*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xeb851eb851eb851e, 0x6666666666666667, 0x3333333333333332, x1, 99*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x3d70a3d70a3d70a3, 0x6666666666666667, 0x6666666666666665, x1, 100*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x333333339fcfc51e, 0x6666666666666667, 0xb504f332, x1, 101*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x999999999999999a, 0x6666666666666667, 0x5555555555555556, x1, 102*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccccccccccd, 0x6666666666666667, -0x5555555555555555, x1, 103*XLEN/8, x2) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x666666666666666a, 0x6666666666666667, 0x6, x1, 104*XLEN/8, x2) + +inst_617: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0xb851eb851eb851ec, 0x6666666666666667, 0x3333333333333334, x1, 105*XLEN/8, x2) + +inst_618: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xa3d70a3d70a3d71, 0x6666666666666667, 0x6666666666666667, x1, 106*XLEN/8, x2) + +inst_619: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc60303ae2, 0x6666666666666667, -0xb504f332, x1, 107*XLEN/8, x2) + +inst_620: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x6c9c91ec, 0x6666666666666667, 0xb504f334, x1, 108*XLEN/8, x2) + +inst_621: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffde0f1266a, -0xb504f332, 0x3, x1, 109*XLEN/8, x2) + +inst_622: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaae701a666, -0xb504f332, 0x5555555555555555, x1, 110*XLEN/8, x2) + +inst_623: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x55555555ce034ccc, -0xb504f332, -0x5555555555555556, x1, 111*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffc76e74006, -0xb504f332, 0x5, x1, 112*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0x666666668a9a970a, -0xb504f332, 0x3333333333333333, x1, 113*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccd15352e14, -0xb504f332, 0x6666666666666666, x1, 114*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffde99ce8f6, -0xb504f332, -0xb504f333, x1, 115*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x800000021663170a, -0xb504f332, 0xb504f333, x1, 116*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffe95f6199c, -0xb504f332, 0x2, x1, 117*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaab9c069998, -0xb504f332, 0x5555555555555554, x1, 118*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, -0xb504f332, 0x0, x1, 119*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffd2bec3338, -0xb504f332, 0x4, x1, 120*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x666666673f9f8a3c, -0xb504f332, 0x3333333333333332, x1, 121*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccdca3a2146, -0xb504f332, 0x6666666666666665, x1, 122*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x80000002cb680a3c, -0xb504f332, 0xb504f332, x1, 123*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xaaaaaaaa31fcb334, -0xb504f332, 0x5555555555555556, x1, 124*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x5555555518fe599a, -0xb504f332, -0x5555555555555555, x1, 125*XLEN/8, x2) + +inst_638: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0xfffffffbc1e24cd4, -0xb504f332, 0x6, x1, 126*XLEN/8, x2) + +inst_639: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x66666665d595a3d8, -0xb504f332, 0x3333333333333334, x1, 127*XLEN/8, x2) + +inst_640: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0xcccccccc60303ae2, -0xb504f332, 0x6666666666666667, x1, 128*XLEN/8, x2) + +inst_641: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffd3497f5c4, -0xb504f332, -0xb504f332, x1, 129*XLEN/8, x2) + +inst_642: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:-0xb504f332; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x80000001615e23d8, -0xb504f332, 0xb504f334, x1, 130*XLEN/8, x2) + +inst_643: +// rs1_val==3037000500 and rs2_val==3, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x3 +TEST_CR_OP( c.mul, x15, x14, 0x21f0ed99c, 0xb504f334, 0x3, x1, 131*XLEN/8, x2) + +inst_644: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffc3a90444, 0xb504f334, 0x5555555555555555, x1, 132*XLEN/8, x2) + +inst_645: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff87520888, 0xb504f334, -0x5555555555555556, x1, 133*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==5, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x5 +TEST_CR_OP( c.mul, x15, x14, 0x38918c004, 0xb504f334, 0x5, x1, 134*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffdbcbcf5c, 0xb504f334, 0x3333333333333333, x1, 135*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_CR_OP( c.mul, x15, x14, 0xffffffffb7979eb8, 0xb504f334, 0x6666666666666666, x1, 136*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:-0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x80000000ac5930a4, 0xb504f334, -0xb504f333, x1, 137*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0xb504f333 +TEST_CR_OP( c.mul, x15, x14, 0x7fffffff53a6cf5c, 0xb504f334, 0xb504f333, x1, 138*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x16a09e668, 0xb504f334, 0x2, x1, 139*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff0ea41110, 0xb504f334, 0x5555555555555554, x1, 140*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0xb504f334, 0x0, x1, 141*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x2d413ccd0, 0xb504f334, 0x4, x1, 142*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff26c6dc28, 0xb504f334, 0x3333333333333332, x1, 143*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0xffffffff0292ab84, 0xb504f334, 0x6666666666666665, x1, 144*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x7ffffffe9ea1dc28, 0xb504f334, 0xb504f332, x1, 145*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x78adf778, 0xb504f334, 0x5555555555555556, x1, 146*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x3c56fbbc, 0xb504f334, -0x5555555555555555, x1, 147*XLEN/8, x2) + +inst_660: +// rs1_val==3037000500 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x43e1db338, 0xb504f334, 0x6, x1, 148*XLEN/8, x2) + +inst_661: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x90d0c290, 0xb504f334, 0x3333333333333334, x1, 149*XLEN/8, x2) + +inst_662: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x6c9c91ec, 0xb504f334, 0x6666666666666667, x1, 150*XLEN/8, x2) + +inst_663: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:-0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x80000001615e23d8, 0xb504f334, -0xb504f332, x1, 151*XLEN/8, x2) + +inst_664: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: c.mul; op1:x15; op2:x14; op1val:0xb504f334; op2val:0xb504f334 +TEST_CR_OP( c.mul, x15, x14, 0x8000000008abc290, 0xb504f334, 0xb504f334, x1, 152*XLEN/8, x2) + +inst_665: +// rs1_val==0 and rs2_val==2, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x2 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x2, x1, 153*XLEN/8, x2) + +inst_666: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x5555555555555554 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x5555555555555554, x1, 154*XLEN/8, x2) + +inst_667: +// rs1_val==0 and rs2_val==0, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x0 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x0, x1, 155*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==4, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x4 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x4, x1, 156*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x3333333333333332 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x3333333333333332, x1, 157*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x6666666666666665 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x6666666666666665, x1, 158*XLEN/8, x2) + +inst_671: +// rs1_val==0 and rs2_val==3037000498, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0xb504f332 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0xb504f332, x1, 159*XLEN/8, x2) + +inst_672: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x5555555555555556 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x5555555555555556, x1, 160*XLEN/8, x2) + +inst_673: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:-0x5555555555555555 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, -0x5555555555555555, x1, 161*XLEN/8, x2) + +inst_674: +// rs1_val==0 and rs2_val==6, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x6 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x6, x1, 162*XLEN/8, x2) + +inst_675: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x3333333333333334 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x3333333333333334, x1, 163*XLEN/8, x2) + +inst_676: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: c.mul; op1:x15; op2:x14; op1val:0x0; op2val:0x6666666666666667 +TEST_CR_OP( c.mul, x15, x14, 0x0, 0x0, 0x6666666666666667, x1, 164*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_3: + .fill 165*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END diff --git a/riscv-test-suite/rv64i_m/C/src/cnot-01.S b/riscv-test-suite/rv64i_m/C/src/cnot-01.S new file mode 100644 index 000000000..80a464616 --- /dev/null +++ b/riscv-test-suite/rv64i_m/C/src/cnot-01.S @@ -0,0 +1,737 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Tue Jun 20 09:44:07 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /home/abd/abd-data/riscv-ctg/sample_cgfs/rv64i_zcb.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the c.not instruction of the RISC-V RV64_Zca_Zcb extension for the cnot covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64I_Zca_Zcb") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*I.*Zca.*Zcb.*);def TEST_CASE_1=True;",cnot) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1==x9, rs1_val == 0, +// opcode: c.not ; op1=dest:x9 ; op1val:0x0; +TEST_CRD_OP(c.not, x9, 0x0000000000000000, 0x0, x1, 0*XLEN/8, x2) + +inst_1: +// rs1==x8, rs1_val == 0x800, rs1_val == 2048 +// opcode: c.not ; op1=dest:x8 ; op1val:0x800; +TEST_CRD_OP(c.not, x8, 0x0000000000000000, 0x800, x1, 1*XLEN/8, x2) + +inst_2: +// rs1==x11, rs1_val == 0xFF80, +// opcode: c.not ; op1=dest:x11 ; op1val:0xff80; +TEST_CRD_OP(c.not, x11, 0x0000000000000000, 0xff80, x1, 2*XLEN/8, x2) + +inst_3: +// rs1==x13, rs1_val == 1, +// opcode: c.not ; op1=dest:x13 ; op1val:0x1; +TEST_CRD_OP(c.not, x13, 0x0000000000000000, 0x1, x1, 3*XLEN/8, x2) + +inst_4: +// rs1==x15, rs1_val == 18446744073709551614, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffffffe; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffffffe, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x14, rs1_val == 18446744073709551613, +// opcode: c.not ; op1=dest:x14 ; op1val:0xfffffffffffffffd; +TEST_CRD_OP(c.not, x14, 0x0000000000000000, 0xfffffffffffffffd, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x12, rs1_val == 18446744073709551611, +// opcode: c.not ; op1=dest:x12 ; op1val:0xfffffffffffffffb; +TEST_CRD_OP(c.not, x12, 0x0000000000000000, 0xfffffffffffffffb, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x10, rs1_val == 18446744073709551607, +// opcode: c.not ; op1=dest:x10 ; op1val:0xfffffffffffffff7; +TEST_CRD_OP(c.not, x10, 0x0000000000000000, 0xfffffffffffffff7, x1, 7*XLEN/8, x2) + +inst_8: +// rs1_val == 18446744073709551599, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffffef; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffffef, x1, 8*XLEN/8, x2) + +inst_9: +// rs1_val == 18446744073709551583, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffffdf; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffffdf, x1, 9*XLEN/8, x2) + +inst_10: +// rs1_val == 18446744073709551551, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffffbf; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffffbf, x1, 10*XLEN/8, x2) + +inst_11: +// rs1_val == 18446744073709551487, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffff7f; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffff7f, x1, 11*XLEN/8, x2) + +inst_12: +// rs1_val == 18446744073709551359, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffffeff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffffeff, x1, 12*XLEN/8, x2) + +inst_13: +// rs1_val == 18446744073709551103, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffffdff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffffdff, x1, 13*XLEN/8, x2) + +inst_14: +// rs1_val == 18446744073709550591, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffffbff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffffbff, x1, 14*XLEN/8, x2) + +inst_15: +// rs1_val == 18446744073709549567, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffff7ff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffff7ff, x1, 15*XLEN/8, x2) + +inst_16: +// rs1_val == 18446744073709547519, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffefff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffefff, x1, 16*XLEN/8, x2) + +inst_17: +// rs1_val == 18446744073709543423, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffdfff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffdfff, x1, 17*XLEN/8, x2) + +inst_18: +// rs1_val == 18446744073709535231, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffffbfff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffffbfff, x1, 18*XLEN/8, x2) + +inst_19: +// rs1_val == 18446744073709518847, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffff7fff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffff7fff, x1, 19*XLEN/8, x2) + +inst_20: +// rs1_val == 18446744073709486079, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffeffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffeffff, x1, 20*XLEN/8, x2) + +inst_21: +// rs1_val == 18446744073709420543, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffdffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffdffff, x1, 21*XLEN/8, x2) + +inst_22: +// rs1_val == 18446744073709289471, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffffbffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffffbffff, x1, 22*XLEN/8, x2) + +inst_23: +// rs1_val == 18446744073709027327, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffff7ffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffff7ffff, x1, 23*XLEN/8, x2) + +inst_24: +// rs1_val == 18446744073708503039, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffefffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffefffff, x1, 24*XLEN/8, x2) + +inst_25: +// rs1_val == 18446744073707454463, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffdfffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffdfffff, x1, 25*XLEN/8, x2) + +inst_26: +// rs1_val == 18446744073705357311, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffffbfffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffffbfffff, x1, 26*XLEN/8, x2) + +inst_27: +// rs1_val == 18446744073701163007, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffff7fffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffff7fffff, x1, 27*XLEN/8, x2) + +inst_28: +// rs1_val == 18446744073692774399, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffeffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffeffffff, x1, 28*XLEN/8, x2) + +inst_29: +// rs1_val == 18446744073675997183, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffdffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffdffffff, x1, 29*XLEN/8, x2) + +inst_30: +// rs1_val == 18446744073642442751, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffffbffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffffbffffff, x1, 30*XLEN/8, x2) + +inst_31: +// rs1_val == 18446744073575333887, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffff7ffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffff7ffffff, x1, 31*XLEN/8, x2) + +inst_32: +// rs1_val == 18446744073441116159, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffefffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffefffffff, x1, 32*XLEN/8, x2) + +inst_33: +// rs1_val == 18446744073172680703, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffdfffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffdfffffff, x1, 33*XLEN/8, x2) + +inst_34: +// rs1_val == 18446744072635809791, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffffbfffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffffbfffffff, x1, 34*XLEN/8, x2) + +inst_35: +// rs1_val == 18446744071562067967, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffff7fffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffff7fffffff, x1, 35*XLEN/8, x2) + +inst_36: +// rs1_val == 18446744069414584319, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffeffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffeffffffff, x1, 36*XLEN/8, x2) + +inst_37: +// rs1_val == 18446744065119617023, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffdffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffdffffffff, x1, 37*XLEN/8, x2) + +inst_38: +// rs1_val == 18446744056529682431, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffffbffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffffbffffffff, x1, 38*XLEN/8, x2) + +inst_39: +// rs1_val == 18446744039349813247, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffff7ffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffff7ffffffff, x1, 39*XLEN/8, x2) + +inst_40: +// rs1_val == 18446744004990074879, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffefffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffefffffffff, x1, 40*XLEN/8, x2) + +inst_41: +// rs1_val == 18446743936270598143, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffdfffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffdfffffffff, x1, 41*XLEN/8, x2) + +inst_42: +// rs1_val == 18446743798831644671, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffffbfffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffffbfffffffff, x1, 42*XLEN/8, x2) + +inst_43: +// rs1_val == 18446743523953737727, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffff7fffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffff7fffffffff, x1, 43*XLEN/8, x2) + +inst_44: +// rs1_val == 18446742974197923839, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffeffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffeffffffffff, x1, 44*XLEN/8, x2) + +inst_45: +// rs1_val == 18446741874686296063, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffdffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffdffffffffff, x1, 45*XLEN/8, x2) + +inst_46: +// rs1_val == 18446739675663040511, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffffbffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffffbffffffffff, x1, 46*XLEN/8, x2) + +inst_47: +// rs1_val == 18446735277616529407, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffff7ffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffff7ffffffffff, x1, 47*XLEN/8, x2) + +inst_48: +// rs1_val == 18446726481523507199, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffefffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffefffffffffff, x1, 48*XLEN/8, x2) + +inst_49: +// rs1_val == 18446708889337462783, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffdfffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffdfffffffffff, x1, 49*XLEN/8, x2) + +inst_50: +// rs1_val == 18446673704965373951, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffffbfffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffffbfffffffffff, x1, 50*XLEN/8, x2) + +inst_51: +// rs1_val == 18446603336221196287, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffff7fffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffff7fffffffffff, x1, 51*XLEN/8, x2) + +inst_52: +// rs1_val == 18446462598732840959, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffeffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffeffffffffffff, x1, 52*XLEN/8, x2) + +inst_53: +// rs1_val == 18446181123756130303, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffdffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffdffffffffffff, x1, 53*XLEN/8, x2) + +inst_54: +// rs1_val == 18445618173802708991, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfffbffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfffbffffffffffff, x1, 54*XLEN/8, x2) + +inst_55: +// rs1_val == 18444492273895866367, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfff7ffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfff7ffffffffffff, x1, 55*XLEN/8, x2) + +inst_56: +// rs1_val == 18442240474082181119, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffefffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffefffffffffffff, x1, 56*XLEN/8, x2) + +inst_57: +// rs1_val == 18437736874454810623, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffdfffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffdfffffffffffff, x1, 57*XLEN/8, x2) + +inst_58: +// rs1_val == 18428729675200069631, +// opcode: c.not ; op1=dest:x15 ; op1val:0xffbfffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xffbfffffffffffff, x1, 58*XLEN/8, x2) + +inst_59: +// rs1_val == 18410715276690587647, +// opcode: c.not ; op1=dest:x15 ; op1val:0xff7fffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xff7fffffffffffff, x1, 59*XLEN/8, x2) + +inst_60: +// rs1_val == 18374686479671623679, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfeffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfeffffffffffffff, x1, 60*XLEN/8, x2) + +inst_61: +// rs1_val == 18302628885633695743, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfdffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfdffffffffffffff, x1, 61*XLEN/8, x2) + +inst_62: +// rs1_val == 18158513697557839871, +// opcode: c.not ; op1=dest:x15 ; op1val:0xfbffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xfbffffffffffffff, x1, 62*XLEN/8, x2) + +inst_63: +// rs1_val == 17870283321406128127, +// opcode: c.not ; op1=dest:x15 ; op1val:0xf7ffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xf7ffffffffffffff, x1, 63*XLEN/8, x2) + +inst_64: +// rs1_val == 17293822569102704639, +// opcode: c.not ; op1=dest:x15 ; op1val:0xefffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xefffffffffffffff, x1, 64*XLEN/8, x2) + +inst_65: +// rs1_val == 16140901064495857663, +// opcode: c.not ; op1=dest:x15 ; op1val:0xdfffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xdfffffffffffffff, x1, 65*XLEN/8, x2) + +inst_66: +// rs1_val == 13835058055282163711, +// opcode: c.not ; op1=dest:x15 ; op1val:0xbfffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0xbfffffffffffffff, x1, 66*XLEN/8, x2) + +inst_67: +// rs1_val == 2305843009213693952, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x2000000000000000, x1, 67*XLEN/8, x2) + +inst_68: +// rs1_val == 4611686018427387904, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x4000000000000000, x1, 68*XLEN/8, x2) + +inst_69: +// rs1_val == 9223372036854775808, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x8000000000000000, x1, 69*XLEN/8, x2) + +inst_70: +// rs1_val == 9223372036854775807, +// opcode: c.not ; op1=dest:x15 ; op1val:0x7fffffffffffffff; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x7fffffffffffffff, x1, 70*XLEN/8, x2) + +inst_71: +// rs1_val == 2, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x2, x1, 71*XLEN/8, x2) + +inst_72: +// rs1_val == 4, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x4, x1, 72*XLEN/8, x2) + +inst_73: +// rs1_val == 8, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x8, x1, 73*XLEN/8, x2) + +inst_74: +// rs1_val == 16, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x10, x1, 74*XLEN/8, x2) + +inst_75: +// rs1_val == 32, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x20, x1, 75*XLEN/8, x2) + +inst_76: +// rs1_val == 64, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x40, x1, 76*XLEN/8, x2) + +inst_77: +// rs1_val == 128, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x80, x1, 77*XLEN/8, x2) + +inst_78: +// rs1_val == 256, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x100, x1, 78*XLEN/8, x2) + +inst_79: +// rs1_val == 512, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x200, x1, 79*XLEN/8, x2) + +inst_80: +// rs1_val == 1024, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x400, x1, 80*XLEN/8, x2) + +inst_81: +// rs1_val == 4096, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x1000, x1, 81*XLEN/8, x2) + +inst_82: +// rs1_val == 8192, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x2000, x1, 82*XLEN/8, x2) + +inst_83: +// rs1_val == 16384, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x4000, x1, 83*XLEN/8, x2) + +inst_84: +// rs1_val == 32768, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x8000, x1, 84*XLEN/8, x2) + +inst_85: +// rs1_val == 65536, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x10000, x1, 85*XLEN/8, x2) + +inst_86: +// rs1_val == 131072, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x20000, x1, 86*XLEN/8, x2) + +inst_87: +// rs1_val == 262144, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x40000, x1, 87*XLEN/8, x2) + +inst_88: +// rs1_val == 524288, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x80000, x1, 88*XLEN/8, x2) + +inst_89: +// rs1_val == 1048576, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x100000, x1, 89*XLEN/8, x2) + +inst_90: +// rs1_val == 2097152, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x200000, x1, 90*XLEN/8, x2) + +inst_91: +// rs1_val == 4194304, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x400000, x1, 91*XLEN/8, x2) + +inst_92: +// rs1_val == 8388608, +// opcode: c.not ; op1=dest:x15 ; op1val:0x800000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x800000, x1, 92*XLEN/8, x2) + +inst_93: +// rs1_val == 16777216, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x1000000, x1, 93*XLEN/8, x2) + +inst_94: +// rs1_val == 33554432, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x2000000, x1, 94*XLEN/8, x2) + +inst_95: +// rs1_val == 67108864, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x4000000, x1, 95*XLEN/8, x2) + +inst_96: +// rs1_val == 134217728, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x8000000, x1, 96*XLEN/8, x2) + +inst_97: +// rs1_val == 268435456, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x10000000, x1, 97*XLEN/8, x2) + +inst_98: +// rs1_val == 536870912, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x20000000, x1, 98*XLEN/8, x2) + +inst_99: +// rs1_val == 1073741824, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x40000000, x1, 99*XLEN/8, x2) + +inst_100: +// rs1_val == 2147483648, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x80000000, x1, 100*XLEN/8, x2) + +inst_101: +// rs1_val == 4294967296, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x100000000, x1, 101*XLEN/8, x2) + +inst_102: +// rs1_val == 8589934592, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x200000000, x1, 102*XLEN/8, x2) + +inst_103: +// rs1_val == 17179869184, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x400000000, x1, 103*XLEN/8, x2) + +inst_104: +// rs1_val == 34359738368, +// opcode: c.not ; op1=dest:x15 ; op1val:0x800000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x800000000, x1, 104*XLEN/8, x2) + +inst_105: +// rs1_val == 68719476736, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x1000000000, x1, 105*XLEN/8, x2) + +inst_106: +// rs1_val == 137438953472, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x2000000000, x1, 106*XLEN/8, x2) + +inst_107: +// rs1_val == 274877906944, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x4000000000, x1, 107*XLEN/8, x2) + +inst_108: +// rs1_val == 549755813888, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x8000000000, x1, 108*XLEN/8, x2) + +inst_109: +// rs1_val == 1099511627776, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x10000000000, x1, 109*XLEN/8, x2) + +inst_110: +// rs1_val == 2199023255552, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x20000000000, x1, 110*XLEN/8, x2) + +inst_111: +// rs1_val == 4398046511104, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x40000000000, x1, 111*XLEN/8, x2) + +inst_112: +// rs1_val == 8796093022208, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x80000000000, x1, 112*XLEN/8, x2) + +inst_113: +// rs1_val == 17592186044416, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x100000000000, x1, 113*XLEN/8, x2) + +inst_114: +// rs1_val == 35184372088832, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x200000000000, x1, 114*XLEN/8, x2) + +inst_115: +// rs1_val == 70368744177664, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x400000000000, x1, 115*XLEN/8, x2) + +inst_116: +// rs1_val == 140737488355328, +// opcode: c.not ; op1=dest:x15 ; op1val:0x800000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x800000000000, x1, 116*XLEN/8, x2) + +inst_117: +// rs1_val == 281474976710656, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x1000000000000, x1, 117*XLEN/8, x2) + +inst_118: +// rs1_val == 562949953421312, +// opcode: c.not ; op1=dest:x15 ; op1val:0x2000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x2000000000000, x1, 118*XLEN/8, x2) + +inst_119: +// rs1_val == 1125899906842624, +// opcode: c.not ; op1=dest:x15 ; op1val:0x4000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x4000000000000, x1, 119*XLEN/8, x2) + +inst_120: +// rs1_val == 2251799813685248, +// opcode: c.not ; op1=dest:x15 ; op1val:0x8000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x8000000000000, x1, 120*XLEN/8, x2) + +inst_121: +// rs1_val == 4503599627370496, +// opcode: c.not ; op1=dest:x15 ; op1val:0x10000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x10000000000000, x1, 121*XLEN/8, x2) + +inst_122: +// rs1_val == 9007199254740992, +// opcode: c.not ; op1=dest:x15 ; op1val:0x20000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x20000000000000, x1, 122*XLEN/8, x2) + +inst_123: +// rs1_val == 18014398509481984, +// opcode: c.not ; op1=dest:x15 ; op1val:0x40000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x40000000000000, x1, 123*XLEN/8, x2) + +inst_124: +// rs1_val == 36028797018963968, +// opcode: c.not ; op1=dest:x15 ; op1val:0x80000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x80000000000000, x1, 124*XLEN/8, x2) + +inst_125: +// rs1_val == 72057594037927936, +// opcode: c.not ; op1=dest:x15 ; op1val:0x100000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x100000000000000, x1, 125*XLEN/8, x2) + +inst_126: +// rs1_val == 144115188075855872, +// opcode: c.not ; op1=dest:x15 ; op1val:0x200000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x200000000000000, x1, 126*XLEN/8, x2) + +inst_127: +// rs1_val == 288230376151711744, +// opcode: c.not ; op1=dest:x15 ; op1val:0x400000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x400000000000000, x1, 127*XLEN/8, x2) + +inst_128: +// rs1_val == 576460752303423488, +// opcode: c.not ; op1=dest:x15 ; op1val:0x800000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x800000000000000, x1, 128*XLEN/8, x2) + +inst_129: +// rs1_val == 1152921504606846976, +// opcode: c.not ; op1=dest:x15 ; op1val:0x1000000000000000; +TEST_CRD_OP(c.not, x15, 0x0000000000000000, 0x1000000000000000, x1, 129*XLEN/8, x2) +#endif + + +RVTEST_CODE_END +RVMODEL_HALT + +RVTEST_DATA_BEGIN +.align 4 +rvtest_data: +.word 0xbabecafe +.word 0xabecafeb +.word 0xbecafeba +.word 0xecafebab +RVTEST_DATA_END + +RVMODEL_DATA_BEGIN +rvtest_sig_begin: +sig_begin_canary: +CANARY; + + + +signature_x1_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 130*((XLEN/8)/4),4,0xdeadbeef + +#ifdef rvtest_mtrap_routine +tsig_begin_canary: +CANARY; + +mtrap_sigptr: + .fill 64*XLEN/32,4,0xdeadbeef + +tsig_end_canary: +CANARY; +#endif + +#ifdef rvtest_gpr_save + +gpr_save: + .fill 32*XLEN/32,4,0xdeadbeef + +#endif + + +sig_end_canary: +CANARY; +rvtest_sig_end: +RVMODEL_DATA_END From 123e21893124e6b5a7b7635636f36bde1371685d Mon Sep 17 00:00:00 2001 From: Abdul Wadood Date: Tue, 20 Jun 2023 17:05:37 +0500 Subject: [PATCH 6/7] update changelog Signed-off-by: Abdul Wadood --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5363bcebe..bc10868e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG +## [3.8.3] - 2023-11-30 + +- Added test suites for `zcb` from code size reduction extension. +- Added test macro for instructions with single operand. + ## [3.8.2.3] -- 2013-11-19 -Fixed typo in regex in 3.8.2.2 From c9d03b411ad9aa019b921ccf37769dfce67a9316 Mon Sep 17 00:00:00 2001 From: Allen Baum <31423142+allenjbaum@users.noreply.github.com> Date: Sun, 3 Dec 2023 22:48:03 -0800 Subject: [PATCH 7/7] Update CHANGELOG.md modified version to avoid stale version number Signed-off-by: Allen Baum <31423142+allenjbaum@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc10868e5..366d0edf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG -## [3.8.3] - 2023-11-30 +## [3.8.4] - 2023-11-30 - Added test suites for `zcb` from code size reduction extension. - Added test macro for instructions with single operand.