diff --git a/CHANGELOG.md b/CHANGELOG.md index 7be8c3d9e..62bcde542 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,116 @@ Corrected missing RV64 strings in RVTEST_CASE macros for Zfh fcvt.h.l and simila - replacing LA(rd, 5b) with auipc rd, 0 in test_macros.h solves the compiler issue and produces similar code but without a bunch of preceeding nops +## [3.8.9] -- 2024-01-12 +- Fixed Check ISA fields to include 32/64 in Zicond tests. Note that the riscv-ctg CGFs have not been updated. + +## [3.8.8] -- 2024-01-04 +- Fixed macros to allow assembling tests with LLVM. + +## [3.8.7] -- 2024-01-02 +- Update satp initialization macro + +## [3.8.6] -- 2023-12-24 +- Fixed check ISA fields to include 32/64 in Zca and CMO tests. Note that the riscv-ctg CGFs have not been updated. +- Fixed check ISA fields in rv32e_m/B/src/ror-01 and rori-01 that listed I instead of E. Again, CGF has not been updated. + +## [3.8.5] -- 2023-12-23 +- Renamed rv32e_unratified to rv32e_m because the E extension has been ratified January 2023 +- Copied missing ebreak.S and ecall.S tests from rv32i_m/privilege to rv32e_m/privilege and update ISA for E + +## [3.8.3] - 2023-11-30 +- Add Zicond ISA extension support + +## [3.8.4] - 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 + +## [3.8.2.2] -- 2013-11-17 +- Restored *RV32 Check ISA attributes to RV32IM test cases where they were dropped in 3.8.2. Missed these on 3.8.2.1. + +## [3.8.2.1] -- 2013-11-15 +- Restored *RV64 Check ISA attributes to RV64IM test cases where they were dropped in 3.8.2. Similar to 3.7.5 + +## [3.8.2] - 2023-11-14 +- Added "most negative number divided by -1" case for RV64IM and RV32IM in remw, divw, div and rem tests + +## [3.8.1] - 2023-11-01 +- Updated trap handler to avoid using mstatush when used for Priv Arch 1.11 +- Updated GOTO_Lower_Mode macro to adjust the save area when switching to Umode. + +## [3.8.0] - 2023-10-26 +- Updated trap handler to handle delegated exceptions in S-mode for both bare and virtual modes. +- Added Hypervisor mode support in Trap handler +- Updated the save area within the trap handler file. +- Improved CSR Rename macro for code clarity. + +## [3.7.5] - 2023-10-11 +Add missing check ISA fields in recently modified div and amo tests + +## [3.7.4] - 2023-10-04 +- Fix typos in CONTRIBUTION.md + +## [3.7.3] - 2023-09-29 +- Added test RV32i_m/div-01.S and RV64i_m/div-01.S tests. +- Added tests for resolving missing coverage issue of harcoded registers[issue #306](https://github.com/riscv-non-isa/riscv-arch-test/issues/306) +## [3.7.2] - 2023-08-16 +- Added RV32E_Privilege,RV32E_B and RV32E_Fencei tests with cgf files + +## [3.7.2] - 2023-09-27 +- Modified macros to allow assembling tests with LLVM 18+ + +## [3.7.1] - 2023-08-03 +- Add ACTs for Atomic Extension excluding Lr/Sc Instructions. +- Added Test macro for the execution of atomic instructions. + +## [3.7.1] - 2023-07-30 +- Add support for unratified Svadu extension + +## [3.8.20] - 2024-05-08 +- Add Zimop extension. +- +## [3.8.19] - 2024-05-08 +- Add support for unratified Svadu extension + +## [3.8.18] - 2024-05-08 +- Add Zacas ISA extension support. + +## [3.8.17] - 2024-05-03 +- Add Zfa support. +- +## [3.8.16] - 2024-04-26 +- Split rv32i_m/F/fnmadd_b15.S, fnmsub_b15.S, fmadd_b15.S, fmsub_b15.S into multiple smaller tests + +## [3.8.15] - 2024-04-20 +Corrected missing 32 string in RVTEST_CASE macros for Zcb rv32i_m/C/clh-01.S + +## [3.8.14] - 2024-04-16 +Add missing `Zfh` ISA in RVTEST_CASE for `Zfh` fdiv related tests + +## [3.8.13] - 2024-04-13 +- Fixed missing `F` and `Zfh` ISA identifiers in `Zfh/flh-align-01` RVTEST_CASE macro. + + +## [3.8.12] - 2024-03-26 +Corrected missing RV64 strings in RVTEST_CASE macros for Zfh fcvt.h.l and similar tests + +## [3.8.11] - 2024-03-26 +- Added test suites for Zfh extensions. +- Introduced half word and half width in Nan boxing functionality to accomdate Zfh extensions. +- Added test suites for Zfinx extensions. + +## [3.8.10] -- 2024-03-24 +- Updated TEST_JALR_OP in test_macros.h +- The macro no longer works when rd = x0 in versions of GCC newer than 2023.12.20 +- riscof throws a message /home/jstine/cvw/addins/riscv-arch-test/riscv-test-suite/rv32i_m/I/src/jalr-01.S:72: Error: illegal operands `la x0,5b' +- The TEST_JALR_OP macro invokes LA, which does not like x0 as an operand +- replacing LA(rd, 5b) with auipc rd, 0 in test_macros.h solves the compiler issue and produces similar code but without a bunch of preceeding nops + + ## [3.8.9] -- 2024-01-12 - Fixed Check ISA fields to include 32/64 in Zicond tests. Note that the riscv-ctg CGFs have not been updated. diff --git a/coverage/zimop.cgf b/coverage/zimop.cgf new file mode 100644 index 000000000..a47cbdb92 --- /dev/null +++ b/coverage/zimop.cgf @@ -0,0 +1,697 @@ +# For Licence details look at https://github.com/riscv-software-src/riscv-ctg/-/blob/master/LICENSE.incore + +mop.rr.0: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.0: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.1: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.1: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.2: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.2: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.3: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.3: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.4: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.4: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.5: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.5: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.6: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.6: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.rr.7: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.rr.7: 0 + rs1: + <<: *all_regs + rs2: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *rfmt_op_comb + val_comb: + <<: [*base_rs1val_sgn , *base_rs2val_sgn , *rfmt_val_comb_sgn] + abstract_comb: + 'sp_dataset(xlen)': 0 + <<: [*rs1val_walking, *rs2val_walking] + +mop.r.0: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.0: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.1: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.1: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.2: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.2: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.3: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.3: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.4: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.4: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.5: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.5: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.6: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.6: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.7: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.7: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.8: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.8: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.9: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.9: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.10: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.10: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.11: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.11: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.12: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.12: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.13: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.13: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.14: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.14: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.15: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.15: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.16: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.16: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.17: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.17: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.18: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.18: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.19: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.19: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.20: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.20: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.21: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.21: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.22: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.22: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.23: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.23: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.24: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.24: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.25: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.25: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.26: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.26: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.27: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.27: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.28: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.28: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.29: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.29: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.30: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.30: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] + +mop.r.31: + config: + - check ISA:=regex(.*Zimop.*) + opcode: + mop.r.31: 0 + rs1: + <<: *all_regs + rd: + <<: *all_regs + op_comb: + <<: *ifmt_op_comb + val_comb: + <<: [ *ifmt_val_comb_sgn, *base_rs1val_sgn, *ifmt_base_immval_sgn] + abstract_comb: + 'sp_dataset(xlen,["rs1_val",("imm_val",12)])': 0 + <<: [*rs1val_walking, *ifmt_immval_walking] diff --git a/riscv-test-suite/env/test_macros.h b/riscv-test-suite/env/test_macros.h index b74d34859..132078ef8 100644 --- a/riscv-test-suite/env/test_macros.h +++ b/riscv-test-suite/env/test_macros.h @@ -899,6 +899,12 @@ ADDI(swreg, swreg, RVMODEL_CBZ_BLOCKSIZE) LI(reg2, MASK_XLEN(val2)) ;\ inst destreg, reg1, reg2 ;\ ) +//Tests for a instructions with single-register operand +#define TEST_R_OP(inst, destreg, reg1, correctval, val1, swreg, offset, testreg) \ + TEST_CASE(testreg, destreg, correctval, swreg, offset, \ + LI(reg1, MASK_XLEN(val1)) ;\ + inst destreg, reg1 ;\ + ) //Tests for floating-point instructions with register-register operand //This variant does not take the rm field and set it while writing the instruction #define TEST_FPRR_OP_NRM(inst, destreg, freg1, freg2, fcsr_val, correctval, valaddr_reg, val_offset, flagreg, swreg, testreg) \ diff --git a/riscv-test-suite/rv32i_m/Zimop/src/mop.r.0-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.0-01.S new file mode 100644 index 000000000..e0f5a526a --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.0-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.0 instruction of the RISC-V RV32Zimop extension for the mop.r.0 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.0) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd, rs1==x11, rd==x11, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.0 ; op1:x11; dest:x11; op1val:0x8; immval:-0x800 +TEST_R_OP( mop.r.0, x11, x11, 0, 0x8, x6, 0*XLEN/8, x4) + +inst_1: +// rs1 != rd, rs1==x12, rd==x16, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.0 ; op1:x12; dest:x16; op1val:0x800; immval:0x7ff +TEST_R_OP( mop.r.0, x16, x12, 0, 0x800, x6, 1*XLEN/8, x4) + +inst_2: +// rs1==x29, rd==x8, imm_val == 0, rs1_val == 1 +// opcode: mop.r.0 ; op1:x29; dest:x8; op1val:0x1; immval:0x0 +TEST_R_OP( mop.r.0, x8, x29, 0, 0x1, x6, 2*XLEN/8, x4) + +inst_3: +// rs1==x8, rd==x7, imm_val == 1, +// opcode: mop.r.0 ; op1:x8; dest:x7; op1val:0x800; immval:0x1 +TEST_R_OP( mop.r.0, x7, x8, 0, 0x800, x6, 3*XLEN/8, x4) + +inst_4: +// rs1==x14, rd==x3, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.0 ; op1:x14; dest:x3; op1val:-0x41; immval:-0x401 +TEST_R_OP( mop.r.0, x3, x14, 0, -0x41, x6, 4*XLEN/8, x4) + +inst_5: +// rs1==x28, rd==x23, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.0 ; op1:x28; dest:x23; op1val:-0x21; immval:0x10 +TEST_R_OP( mop.r.0, x23, x28, 0, -0x21, x6, 5*XLEN/8, x4) + +inst_6: +// rs1==x0, rd==x20, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.0 ; op1:x0; dest:x20; op1val:0x0; immval:0x9 +TEST_R_OP( mop.r.0, x20, x0, 0, 0x0, x6, 6*XLEN/8, x4) + +inst_7: +// rs1==x30, rd==x25, rs1_val == 0, rs1_val == imm_val +// opcode: mop.r.0 ; op1:x30; dest:x25; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.0, x25, x30, 0, 0x0, x6, 7*XLEN/8, x4) + +inst_8: +// rs1==x21, rd==x10, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.0 ; op1:x21; dest:x10; op1val:-0x80000000; immval:-0x2c +TEST_R_OP( mop.r.0, x10, x21, 0, -0x80000000, x6, 8*XLEN/8, x4) + +inst_9: +// rs1==x31, rd==x21, +// opcode: mop.r.0 ; op1:x31; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x21, x31, 0, -0x80000000, x6, 9*XLEN/8, x4) + +inst_10: +// rs1==x27, rd==x2, +// opcode: mop.r.0 ; op1:x27; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x2, x27, 0, -0x80000000, x6, 10*XLEN/8, x4) + +inst_11: +// rs1==x25, rd==x30, +// opcode: mop.r.0 ; op1:x25; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x30, x25, 0, -0x80000000, x6, 11*XLEN/8, x4) + +inst_12: +// rs1==x23, rd==x19, +// opcode: mop.r.0 ; op1:x23; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x19, x23, 0, -0x80000000, x6, 12*XLEN/8, x4) + +inst_13: +// rs1==x19, rd==x5, +// opcode: mop.r.0 ; op1:x19; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x5, x19, 0, -0x80000000, x6, 13*XLEN/8, x4) + +inst_14: +// rs1==x17, rd==x1, +// opcode: mop.r.0 ; op1:x17; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x1, x17, 0, -0x80000000, x6, 14*XLEN/8, x4) + +inst_15: +// rs1==x22, rd==x18, +// opcode: mop.r.0 ; op1:x22; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x18, x22, 0, -0x80000000, x6, 15*XLEN/8, x4) + +inst_16: +// rs1==x26, rd==x9, +// opcode: mop.r.0 ; op1:x26; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x9, x26, 0, -0x80000000, x6, 16*XLEN/8, x4) + +inst_17: +// rs1==x18, rd==x22, +// opcode: mop.r.0 ; op1:x18; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x22, x18, 0, -0x80000000, x6, 17*XLEN/8, x11) + +inst_18: +// rs1==x20, rd==x29, +// opcode: mop.r.0 ; op1:x20; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x29, x20, 0, -0x80000000, x6, 18*XLEN/8, x11) + +inst_19: +// rs1==x4, rd==x14, +// opcode: mop.r.0 ; op1:x4; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x14, x4, 0, -0x80000000, x6, 19*XLEN/8, x11) +RVTEST_SIGBASE(x8,signature_x8_0) + +inst_20: +// rs1==x16, rd==x17, +// opcode: mop.r.0 ; op1:x16; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x17, x16, 0, -0x80000000, x8, 0*XLEN/8, x11) + +inst_21: +// rs1==x5, rd==x0, +// opcode: mop.r.0 ; op1:x5; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x0, x5, 0, -0x80000000, x8, 1*XLEN/8, x11) + +inst_22: +// rs1==x2, rd==x24, +// opcode: mop.r.0 ; op1:x2; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x24, x2, 0, -0x80000000, x8, 2*XLEN/8, x11) + +inst_23: +// rs1==x3, rd==x6, +// opcode: mop.r.0 ; op1:x3; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x6, x3, 0, -0x80000000, x8, 3*XLEN/8, x11) + +inst_24: +// rs1==x7, rd==x13, +// opcode: mop.r.0 ; op1:x7; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x13, x7, 0, -0x80000000, x8, 4*XLEN/8, x11) + +inst_25: +// rs1==x13, rd==x27, +// opcode: mop.r.0 ; op1:x13; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x27, x13, 0, -0x80000000, x8, 5*XLEN/8, x11) + +inst_26: +// rs1==x15, rd==x28, +// opcode: mop.r.0 ; op1:x15; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x28, x15, 0, -0x80000000, x8, 6*XLEN/8, x11) + +inst_27: +// rs1==x24, rd==x31, +// opcode: mop.r.0 ; op1:x24; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x31, x24, 0, -0x80000000, x8, 7*XLEN/8, x11) + +inst_28: +// rs1==x1, rd==x12, +// opcode: mop.r.0 ; op1:x1; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x12, x1, 0, -0x80000000, x8, 8*XLEN/8, x11) + +inst_29: +// rs1==x9, rd==x4, +// opcode: mop.r.0 ; op1:x9; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x4, x9, 0, -0x80000000, x8, 9*XLEN/8, x11) + +inst_30: +// rs1==x6, rd==x15, +// opcode: mop.r.0 ; op1:x6; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x15, x6, 0, -0x80000000, x8, 10*XLEN/8, x11) + +inst_31: +// rs1==x10, rd==x26, +// opcode: mop.r.0 ; op1:x10; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.0, x26, x10, 0, -0x80000000, x8, 11*XLEN/8, x11) + +inst_32: +// rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.0 ; op1:x30; dest:x31; op1val:0x7fffffff; immval:0x9 +TEST_R_OP( mop.r.0, x31, x30, 0, 0x7fffffff, x8, 12*XLEN/8, x11) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x8_0: + .fill 13*((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/Zimop/src/mop.r.1-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.1-01.S new file mode 100644 index 000000000..72a10230a --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.1-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.1 instruction of the RISC-V RV32Zimop extension for the mop.r.1 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.1) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x12, rd==x12, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.1 ; op1:x12; dest:x12; op1val:0x80000; immval:-0x800 +TEST_R_OP( mop.r.1, x12, x12, 0, 0x80000, x3, 0*XLEN/8, x4) + +inst_1: +// rs1 != rd, rs1==x7, rd==x8, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.1 ; op1:x7; dest:x8; op1val:0x55555555; immval:0x7ff +TEST_R_OP( mop.r.1, x8, x7, 0, 0x55555555, x3, 1*XLEN/8, x4) + +inst_2: +// rs1==x31, rd==x27, imm_val == 0, +// opcode: mop.r.1 ; op1:x31; dest:x27; op1val:0xb505; immval:0x0 +TEST_R_OP( mop.r.1, x27, x31, 0, 0xb505, x3, 2*XLEN/8, x4) + +inst_3: +// rs1==x26, rd==x13, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.1 ; op1:x26; dest:x13; op1val:-0x2001; immval:0x1 +TEST_R_OP( mop.r.1, x13, x26, 0, -0x2001, x3, 3*XLEN/8, x4) + +inst_4: +// rs1==x17, rd==x11, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.1 ; op1:x17; dest:x11; op1val:-0x8001; immval:-0x2 +TEST_R_OP( mop.r.1, x11, x17, 0, -0x8001, x3, 4*XLEN/8, x4) + +inst_5: +// rs1==x8, rd==x22, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.1 ; op1:x8; dest:x22; op1val:-0x80000000; immval:0x3 +TEST_R_OP( mop.r.1, x22, x8, 0, -0x80000000, x3, 5*XLEN/8, x4) + +inst_6: +// rs1==x22, rd==x21, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.1 ; op1:x22; dest:x21; op1val:0x7fffffff; immval:-0x41 +TEST_R_OP( mop.r.1, x21, x22, 0, 0x7fffffff, x3, 6*XLEN/8, x4) + +inst_7: +// rs1==x1, rd==x9, rs1_val == 0, +// opcode: mop.r.1 ; op1:x1; dest:x9; op1val:0x0; immval:-0xa +TEST_R_OP( mop.r.1, x9, x1, 0, 0x0, x3, 7*XLEN/8, x4) + +inst_8: +// rs1==x25, rd==x0, rs1_val == 1, +// opcode: mop.r.1 ; op1:x25; dest:x0; op1val:0x1; immval:0x20 +TEST_R_OP( mop.r.1, x0, x25, 0, 0x1, x3, 8*XLEN/8, x4) + +inst_9: +// rs1==x16, rd==x26, rs1_val == imm_val, +// opcode: mop.r.1 ; op1:x16; dest:x26; op1val:0x8; immval:0x8 +TEST_R_OP( mop.r.1, x26, x16, 0, 0x8, x3, 9*XLEN/8, x4) + +inst_10: +// rs1==x9, rd==x28, +// opcode: mop.r.1 ; op1:x9; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x28, x9, 0, -0x80000000, x3, 10*XLEN/8, x4) + +inst_11: +// rs1==x14, rd==x23, +// opcode: mop.r.1 ; op1:x14; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x23, x14, 0, -0x80000000, x3, 11*XLEN/8, x4) + +inst_12: +// rs1==x0, rd==x10, +// opcode: mop.r.1 ; op1:x0; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x10, x0, 0, 0x0, x3, 12*XLEN/8, x4) + +inst_13: +// rs1==x28, rd==x16, +// opcode: mop.r.1 ; op1:x28; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x16, x28, 0, -0x80000000, x3, 13*XLEN/8, x4) + +inst_14: +// rs1==x5, rd==x20, +// opcode: mop.r.1 ; op1:x5; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x20, x5, 0, -0x80000000, x3, 14*XLEN/8, x4) + +inst_15: +// rs1==x2, rd==x6, +// opcode: mop.r.1 ; op1:x2; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x6, x2, 0, -0x80000000, x3, 15*XLEN/8, x4) + +inst_16: +// rs1==x27, rd==x7, +// opcode: mop.r.1 ; op1:x27; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x7, x27, 0, -0x80000000, x3, 16*XLEN/8, x4) + +inst_17: +// rs1==x21, rd==x17, +// opcode: mop.r.1 ; op1:x21; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x17, x21, 0, -0x80000000, x3, 17*XLEN/8, x4) + +inst_18: +// rs1==x6, rd==x19, +// opcode: mop.r.1 ; op1:x6; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x19, x6, 0, -0x80000000, x3, 18*XLEN/8, x4) + +inst_19: +// rs1==x10, rd==x30, +// opcode: mop.r.1 ; op1:x10; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x30, x10, 0, -0x80000000, x3, 19*XLEN/8, x4) + +inst_20: +// rs1==x30, rd==x15, +// opcode: mop.r.1 ; op1:x30; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x15, x30, 0, -0x80000000, x3, 20*XLEN/8, x4) + +inst_21: +// rs1==x19, rd==x24, +// opcode: mop.r.1 ; op1:x19; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x24, x19, 0, -0x80000000, x3, 21*XLEN/8, x7) +RVTEST_SIGBASE(x6,signature_x6_0) + +inst_22: +// rs1==x23, rd==x2, +// opcode: mop.r.1 ; op1:x23; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x2, x23, 0, -0x80000000, x6, 0*XLEN/8, x7) + +inst_23: +// rs1==x20, rd==x1, +// opcode: mop.r.1 ; op1:x20; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x1, x20, 0, -0x80000000, x6, 1*XLEN/8, x7) + +inst_24: +// rs1==x29, rd==x14, +// opcode: mop.r.1 ; op1:x29; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x14, x29, 0, -0x80000000, x6, 2*XLEN/8, x7) + +inst_25: +// rs1==x11, rd==x5, +// opcode: mop.r.1 ; op1:x11; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x5, x11, 0, -0x80000000, x6, 3*XLEN/8, x7) + +inst_26: +// rs1==x13, rd==x29, +// opcode: mop.r.1 ; op1:x13; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x29, x13, 0, -0x80000000, x6, 4*XLEN/8, x7) + +inst_27: +// rs1==x24, rd==x18, +// opcode: mop.r.1 ; op1:x24; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x18, x24, 0, -0x80000000, x6, 5*XLEN/8, x7) + +inst_28: +// rs1==x15, rd==x4, +// opcode: mop.r.1 ; op1:x15; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x4, x15, 0, -0x80000000, x6, 6*XLEN/8, x7) + +inst_29: +// rs1==x18, rd==x3, +// opcode: mop.r.1 ; op1:x18; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x3, x18, 0, -0x80000000, x6, 7*XLEN/8, x7) + +inst_30: +// rs1==x4, rd==x25, +// opcode: mop.r.1 ; op1:x4; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x25, x4, 0, -0x80000000, x6, 8*XLEN/8, x7) + +inst_31: +// rs1==x3, rd==x31, +// opcode: mop.r.1 ; op1:x3; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.1, x31, x3, 0, -0x80000000, x6, 9*XLEN/8, x7) + +inst_32: +// rs1_val == 1, +// opcode: mop.r.1 ; op1:x30; dest:x31; op1val:0x1; immval:0x20 +TEST_R_OP( mop.r.1, x31, x30, 0, 0x1, x6, 10*XLEN/8, x7) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_0: + .fill 11*((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/Zimop/src/mop.r.10-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.10-01.S new file mode 100644 index 000000000..79305a77b --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.10-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.10 instruction of the RISC-V RV32Zimop extension for the mop.r.10 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.10) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rs1==x25, rd==x25, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.10 ; op1:x25; dest:x25; op1val:-0x401; immval:-0x800 +TEST_R_OP( mop.r.10, x25, x25, 0, -0x401, x1, 0*XLEN/8, x4) + +inst_1: +// rs1 != rd, rs1==x28, rd==x9, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.10 ; op1:x28; dest:x9; op1val:-0x6; immval:0x7ff +TEST_R_OP( mop.r.10, x9, x28, 0, -0x6, x1, 1*XLEN/8, x4) + +inst_2: +// rs1==x30, rd==x16, imm_val == 0, +// opcode: mop.r.10 ; op1:x30; dest:x16; op1val:-0x1000001; immval:0x0 +TEST_R_OP( mop.r.10, x16, x30, 0, -0x1000001, x1, 2*XLEN/8, x4) + +inst_3: +// rs1==x15, rd==x13, imm_val == 1, +// opcode: mop.r.10 ; op1:x15; dest:x13; op1val:-0x800001; immval:0x1 +TEST_R_OP( mop.r.10, x13, x15, 0, -0x800001, x1, 3*XLEN/8, x4) + +inst_4: +// rs1==x12, rd==x5, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.10 ; op1:x12; dest:x5; op1val:-0x80000000; immval:0x10 +TEST_R_OP( mop.r.10, x5, x12, 0, -0x80000000, x1, 4*XLEN/8, x4) + +inst_5: +// rs1==x23, rd==x19, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.10 ; op1:x23; dest:x19; op1val:0x7fffffff; immval:-0x400 +TEST_R_OP( mop.r.10, x19, x23, 0, 0x7fffffff, x1, 5*XLEN/8, x4) + +inst_6: +// rs1==x2, rd==x30, rs1_val == 0, +// opcode: mop.r.10 ; op1:x2; dest:x30; op1val:0x0; immval:0x2 +TEST_R_OP( mop.r.10, x30, x2, 0, 0x0, x1, 6*XLEN/8, x4) + +inst_7: +// rs1==x18, rd==x3, rs1_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.10 ; op1:x18; dest:x3; op1val:0x1; immval:0x7ff +TEST_R_OP( mop.r.10, x3, x18, 0, 0x1, x1, 7*XLEN/8, x4) + +inst_8: +// rs1==x31, rd==x10, rs1_val == imm_val, +// opcode: mop.r.10 ; op1:x31; dest:x10; op1val:0x1; immval:0x1 +TEST_R_OP( mop.r.10, x10, x31, 0, 0x1, x1, 8*XLEN/8, x4) + +inst_9: +// rs1==x8, rd==x22, +// opcode: mop.r.10 ; op1:x8; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x22, x8, 0, -0x80000000, x1, 9*XLEN/8, x4) + +inst_10: +// rs1==x14, rd==x12, +// opcode: mop.r.10 ; op1:x14; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x12, x14, 0, -0x80000000, x1, 10*XLEN/8, x4) + +inst_11: +// rs1==x3, rd==x15, +// opcode: mop.r.10 ; op1:x3; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x15, x3, 0, -0x80000000, x1, 11*XLEN/8, x4) + +inst_12: +// rs1==x24, rd==x6, +// opcode: mop.r.10 ; op1:x24; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x6, x24, 0, -0x80000000, x1, 12*XLEN/8, x4) + +inst_13: +// rs1==x5, rd==x28, +// opcode: mop.r.10 ; op1:x5; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x28, x5, 0, -0x80000000, x1, 13*XLEN/8, x4) + +inst_14: +// rs1==x16, rd==x21, +// opcode: mop.r.10 ; op1:x16; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x21, x16, 0, -0x80000000, x1, 14*XLEN/8, x4) + +inst_15: +// rs1==x19, rd==x26, +// opcode: mop.r.10 ; op1:x19; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x26, x19, 0, -0x80000000, x1, 15*XLEN/8, x4) + +inst_16: +// rs1==x13, rd==x29, +// opcode: mop.r.10 ; op1:x13; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x29, x13, 0, -0x80000000, x1, 16*XLEN/8, x4) + +inst_17: +// rs1==x21, rd==x0, +// opcode: mop.r.10 ; op1:x21; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x0, x21, 0, -0x80000000, x1, 17*XLEN/8, x4) + +inst_18: +// rs1==x11, rd==x14, +// opcode: mop.r.10 ; op1:x11; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x14, x11, 0, -0x80000000, x1, 18*XLEN/8, x4) + +inst_19: +// rs1==x9, rd==x27, +// opcode: mop.r.10 ; op1:x9; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x27, x9, 0, -0x80000000, x1, 19*XLEN/8, x4) + +inst_20: +// rs1==x29, rd==x7, +// opcode: mop.r.10 ; op1:x29; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x7, x29, 0, -0x80000000, x1, 20*XLEN/8, x5) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_21: +// rs1==x6, rd==x20, +// opcode: mop.r.10 ; op1:x6; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x20, x6, 0, -0x80000000, x3, 0*XLEN/8, x5) + +inst_22: +// rs1==x4, rd==x23, +// opcode: mop.r.10 ; op1:x4; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x23, x4, 0, -0x80000000, x3, 1*XLEN/8, x5) + +inst_23: +// rs1==x22, rd==x24, +// opcode: mop.r.10 ; op1:x22; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x24, x22, 0, -0x80000000, x3, 2*XLEN/8, x5) + +inst_24: +// rs1==x7, rd==x1, +// opcode: mop.r.10 ; op1:x7; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x1, x7, 0, -0x80000000, x3, 3*XLEN/8, x5) + +inst_25: +// rs1==x17, rd==x31, +// opcode: mop.r.10 ; op1:x17; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x31, x17, 0, -0x80000000, x3, 4*XLEN/8, x5) + +inst_26: +// rs1==x26, rd==x17, +// opcode: mop.r.10 ; op1:x26; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x17, x26, 0, -0x80000000, x3, 5*XLEN/8, x5) + +inst_27: +// rs1==x20, rd==x2, +// opcode: mop.r.10 ; op1:x20; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x2, x20, 0, -0x80000000, x3, 6*XLEN/8, x5) + +inst_28: +// rs1==x0, rd==x8, +// opcode: mop.r.10 ; op1:x0; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x8, x0, 0, 0x0, x3, 7*XLEN/8, x5) + +inst_29: +// rs1==x10, rd==x11, +// opcode: mop.r.10 ; op1:x10; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x11, x10, 0, -0x80000000, x3, 8*XLEN/8, x5) + +inst_30: +// rs1==x27, rd==x4, +// opcode: mop.r.10 ; op1:x27; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x4, x27, 0, -0x80000000, x3, 9*XLEN/8, x5) + +inst_31: +// rs1==x1, rd==x18, +// opcode: mop.r.10 ; op1:x1; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.10, x18, x1, 0, -0x80000000, x3, 10*XLEN/8, x5) +#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 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 11*((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/Zimop/src/mop.r.11-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.11-01.S new file mode 100644 index 000000000..382cf33a9 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.11-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.11 instruction of the RISC-V RV32Zimop extension for the mop.r.11 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.11) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x15, rd==x15, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.11 ; op1:x15; dest:x15; op1val:0x8000000; immval:-0x800 +TEST_R_OP( mop.r.11, x15, x15, 0, 0x8000000, x7, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x27, rd==x11, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.11 ; op1:x27; dest:x11; op1val:-0x2000001; immval:0x7ff +TEST_R_OP( mop.r.11, x11, x27, 0, -0x2000001, x7, 1*XLEN/8, x9) + +inst_2: +// rs1==x20, rd==x1, imm_val == 0, +// opcode: mop.r.11 ; op1:x20; dest:x1; op1val:0x800000; immval:0x0 +TEST_R_OP( mop.r.11, x1, x20, 0, 0x800000, x7, 2*XLEN/8, x9) + +inst_3: +// rs1==x11, rd==x13, imm_val == 1, +// opcode: mop.r.11 ; op1:x11; dest:x13; op1val:-0x81; immval:0x1 +TEST_R_OP( mop.r.11, x13, x11, 0, -0x81, x7, 3*XLEN/8, x9) + +inst_4: +// rs1==x25, rd==x18, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.11 ; op1:x25; dest:x18; op1val:-0x1; immval:-0x9 +TEST_R_OP( mop.r.11, x18, x25, 0, -0x1, x7, 4*XLEN/8, x9) + +inst_5: +// rs1==x24, rd==x8, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.11 ; op1:x24; dest:x8; op1val:-0x80000000; immval:-0x4 +TEST_R_OP( mop.r.11, x8, x24, 0, -0x80000000, x7, 5*XLEN/8, x9) + +inst_6: +// rs1==x0, rd==x10, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.11 ; op1:x0; dest:x10; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.11, x10, x0, 0, 0x0, x7, 6*XLEN/8, x9) + +inst_7: +// rs1==x30, rd==x29, rs1_val == 0, +// opcode: mop.r.11 ; op1:x30; dest:x29; op1val:0x0; immval:0x2c +TEST_R_OP( mop.r.11, x29, x30, 0, 0x0, x7, 7*XLEN/8, x9) + +inst_8: +// rs1==x3, rd==x2, rs1_val == 1, +// opcode: mop.r.11 ; op1:x3; dest:x2; op1val:0x1; immval:-0x81 +TEST_R_OP( mop.r.11, x2, x3, 0, 0x1, x7, 8*XLEN/8, x9) + +inst_9: +// rs1==x18, rd==x24, rs1_val == imm_val, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.11 ; op1:x18; dest:x24; op1val:0x40; immval:0x40 +TEST_R_OP( mop.r.11, x24, x18, 0, 0x40, x7, 9*XLEN/8, x9) + +inst_10: +// rs1==x23, rd==x20, +// opcode: mop.r.11 ; op1:x23; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x20, x23, 0, -0x80000000, x7, 10*XLEN/8, x9) + +inst_11: +// rs1==x2, rd==x30, +// opcode: mop.r.11 ; op1:x2; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x30, x2, 0, -0x80000000, x7, 11*XLEN/8, x9) + +inst_12: +// rs1==x8, rd==x31, +// opcode: mop.r.11 ; op1:x8; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x31, x8, 0, -0x80000000, x7, 12*XLEN/8, x9) + +inst_13: +// rs1==x1, rd==x0, +// opcode: mop.r.11 ; op1:x1; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x0, x1, 0, -0x80000000, x7, 13*XLEN/8, x9) + +inst_14: +// rs1==x28, rd==x14, +// opcode: mop.r.11 ; op1:x28; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x14, x28, 0, -0x80000000, x7, 14*XLEN/8, x9) + +inst_15: +// rs1==x4, rd==x23, +// opcode: mop.r.11 ; op1:x4; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x23, x4, 0, -0x80000000, x7, 15*XLEN/8, x9) + +inst_16: +// rs1==x22, rd==x21, +// opcode: mop.r.11 ; op1:x22; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x21, x22, 0, -0x80000000, x7, 16*XLEN/8, x9) + +inst_17: +// rs1==x14, rd==x6, +// opcode: mop.r.11 ; op1:x14; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x6, x14, 0, -0x80000000, x7, 17*XLEN/8, x9) + +inst_18: +// rs1==x26, rd==x5, +// opcode: mop.r.11 ; op1:x26; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x5, x26, 0, -0x80000000, x7, 18*XLEN/8, x9) + +inst_19: +// rs1==x16, rd==x22, +// opcode: mop.r.11 ; op1:x16; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x22, x16, 0, -0x80000000, x7, 19*XLEN/8, x9) + +inst_20: +// rs1==x12, rd==x3, +// opcode: mop.r.11 ; op1:x12; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x3, x12, 0, -0x80000000, x7, 20*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_21: +// rs1==x7, rd==x26, +// opcode: mop.r.11 ; op1:x7; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x26, x7, 0, -0x80000000, x1, 0*XLEN/8, x2) + +inst_22: +// rs1==x29, rd==x25, +// opcode: mop.r.11 ; op1:x29; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x25, x29, 0, -0x80000000, x1, 1*XLEN/8, x2) + +inst_23: +// rs1==x17, rd==x9, +// opcode: mop.r.11 ; op1:x17; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x9, x17, 0, -0x80000000, x1, 2*XLEN/8, x2) + +inst_24: +// rs1==x5, rd==x16, +// opcode: mop.r.11 ; op1:x5; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x16, x5, 0, -0x80000000, x1, 3*XLEN/8, x2) + +inst_25: +// rs1==x13, rd==x28, +// opcode: mop.r.11 ; op1:x13; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x28, x13, 0, -0x80000000, x1, 4*XLEN/8, x2) + +inst_26: +// rs1==x19, rd==x4, +// opcode: mop.r.11 ; op1:x19; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x4, x19, 0, -0x80000000, x1, 5*XLEN/8, x2) + +inst_27: +// rs1==x6, rd==x17, +// opcode: mop.r.11 ; op1:x6; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x17, x6, 0, -0x80000000, x1, 6*XLEN/8, x2) + +inst_28: +// rs1==x21, rd==x7, +// opcode: mop.r.11 ; op1:x21; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x7, x21, 0, -0x80000000, x1, 7*XLEN/8, x2) + +inst_29: +// rs1==x9, rd==x12, +// opcode: mop.r.11 ; op1:x9; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x12, x9, 0, -0x80000000, x1, 8*XLEN/8, x2) + +inst_30: +// rs1==x10, rd==x19, +// opcode: mop.r.11 ; op1:x10; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x19, x10, 0, -0x80000000, x1, 9*XLEN/8, x2) + +inst_31: +// rs1==x31, rd==x27, +// opcode: mop.r.11 ; op1:x31; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.11, x27, x31, 0, -0x80000000, x1, 10*XLEN/8, x2) + +inst_32: +// rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.11 ; op1:x30; dest:x31; op1val:0x7fffffff; immval:0x0 +TEST_R_OP( mop.r.11, x31, x30, 0, 0x7fffffff, x1, 11*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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 12*((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/Zimop/src/mop.r.12-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.12-01.S new file mode 100644 index 000000000..c8d606ca2 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.12-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.12 instruction of the RISC-V RV32Zimop extension for the mop.r.12 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.12) + +RVTEST_SIGBASE(x4,signature_x4_1) + +inst_0: +// rs1 == rd, rs1==x30, rd==x30, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.12 ; op1:x30; dest:x30; op1val:-0x11; immval:-0x800 +TEST_R_OP( mop.r.12, x30, x30, 0, -0x11, x4, 0*XLEN/8, x5) + +inst_1: +// rs1 != rd, rs1==x24, rd==x12, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.12 ; op1:x24; dest:x12; op1val:0x20; immval:0x7ff +TEST_R_OP( mop.r.12, x12, x24, 0, 0x20, x4, 1*XLEN/8, x5) + +inst_2: +// rs1==x31, rd==x6, imm_val == 0, +// opcode: mop.r.12 ; op1:x31; dest:x6; op1val:-0x11; immval:0x0 +TEST_R_OP( mop.r.12, x6, x31, 0, -0x11, x4, 2*XLEN/8, x5) + +inst_3: +// rs1==x13, rd==x1, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.12 ; op1:x13; dest:x1; op1val:-0xb503; immval:0x1 +TEST_R_OP( mop.r.12, x1, x13, 0, -0xb503, x4, 3*XLEN/8, x5) + +inst_4: +// rs1==x2, rd==x3, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.12 ; op1:x2; dest:x3; op1val:-0x80000000; immval:0x40 +TEST_R_OP( mop.r.12, x3, x2, 0, -0x80000000, x4, 4*XLEN/8, x5) + +inst_5: +// rs1==x28, rd==x16, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.12 ; op1:x28; dest:x16; op1val:0x7fffffff; immval:-0x401 +TEST_R_OP( mop.r.12, x16, x28, 0, 0x7fffffff, x4, 5*XLEN/8, x5) + +inst_6: +// rs1==x14, rd==x10, rs1_val == 0, +// opcode: mop.r.12 ; op1:x14; dest:x10; op1val:0x0; immval:-0xa +TEST_R_OP( mop.r.12, x10, x14, 0, 0x0, x4, 6*XLEN/8, x5) + +inst_7: +// rs1==x20, rd==x27, rs1_val == 1, +// opcode: mop.r.12 ; op1:x20; dest:x27; op1val:0x1; immval:0x4 +TEST_R_OP( mop.r.12, x27, x20, 0, 0x1, x4, 7*XLEN/8, x5) + +inst_8: +// rs1==x17, rd==x19, rs1_val == imm_val, +// opcode: mop.r.12 ; op1:x17; dest:x19; op1val:0x3; immval:0x3 +TEST_R_OP( mop.r.12, x19, x17, 0, 0x3, x4, 8*XLEN/8, x5) + +inst_9: +// rs1==x12, rd==x7, +// opcode: mop.r.12 ; op1:x12; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x7, x12, 0, -0x80000000, x4, 9*XLEN/8, x5) + +inst_10: +// rs1==x26, rd==x18, +// opcode: mop.r.12 ; op1:x26; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x18, x26, 0, -0x80000000, x4, 10*XLEN/8, x5) + +inst_11: +// rs1==x7, rd==x17, +// opcode: mop.r.12 ; op1:x7; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x17, x7, 0, -0x80000000, x4, 11*XLEN/8, x5) + +inst_12: +// rs1==x29, rd==x15, +// opcode: mop.r.12 ; op1:x29; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x15, x29, 0, -0x80000000, x4, 12*XLEN/8, x5) + +inst_13: +// rs1==x18, rd==x11, +// opcode: mop.r.12 ; op1:x18; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x11, x18, 0, -0x80000000, x4, 13*XLEN/8, x5) + +inst_14: +// rs1==x21, rd==x20, +// opcode: mop.r.12 ; op1:x21; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x20, x21, 0, -0x80000000, x4, 14*XLEN/8, x5) + +inst_15: +// rs1==x27, rd==x26, +// opcode: mop.r.12 ; op1:x27; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x26, x27, 0, -0x80000000, x4, 15*XLEN/8, x5) + +inst_16: +// rs1==x6, rd==x8, +// opcode: mop.r.12 ; op1:x6; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x8, x6, 0, -0x80000000, x4, 16*XLEN/8, x5) + +inst_17: +// rs1==x25, rd==x9, +// opcode: mop.r.12 ; op1:x25; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x9, x25, 0, -0x80000000, x4, 17*XLEN/8, x5) +RVTEST_SIGBASE(x6,signature_x6_0) + +inst_18: +// rs1==x16, rd==x2, +// opcode: mop.r.12 ; op1:x16; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x2, x16, 0, -0x80000000, x6, 0*XLEN/8, x7) + +inst_19: +// rs1==x9, rd==x25, +// opcode: mop.r.12 ; op1:x9; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x25, x9, 0, -0x80000000, x6, 1*XLEN/8, x7) + +inst_20: +// rs1==x8, rd==x23, +// opcode: mop.r.12 ; op1:x8; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x23, x8, 0, -0x80000000, x6, 2*XLEN/8, x7) + +inst_21: +// rs1==x10, rd==x4, +// opcode: mop.r.12 ; op1:x10; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x4, x10, 0, -0x80000000, x6, 3*XLEN/8, x7) + +inst_22: +// rs1==x15, rd==x14, +// opcode: mop.r.12 ; op1:x15; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x14, x15, 0, -0x80000000, x6, 4*XLEN/8, x7) + +inst_23: +// rs1==x19, rd==x29, +// opcode: mop.r.12 ; op1:x19; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x29, x19, 0, -0x80000000, x6, 5*XLEN/8, x7) + +inst_24: +// rs1==x3, rd==x28, +// opcode: mop.r.12 ; op1:x3; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x28, x3, 0, -0x80000000, x6, 6*XLEN/8, x7) + +inst_25: +// rs1==x23, rd==x21, +// opcode: mop.r.12 ; op1:x23; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x21, x23, 0, -0x80000000, x6, 7*XLEN/8, x7) + +inst_26: +// rs1==x22, rd==x13, +// opcode: mop.r.12 ; op1:x22; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x13, x22, 0, -0x80000000, x6, 8*XLEN/8, x7) + +inst_27: +// rs1==x11, rd==x5, +// opcode: mop.r.12 ; op1:x11; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x5, x11, 0, -0x80000000, x6, 9*XLEN/8, x7) + +inst_28: +// rs1==x0, rd==x24, +// opcode: mop.r.12 ; op1:x0; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x24, x0, 0, 0x0, x6, 10*XLEN/8, x7) + +inst_29: +// rs1==x4, rd==x22, +// opcode: mop.r.12 ; op1:x4; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x22, x4, 0, -0x80000000, x6, 11*XLEN/8, x7) + +inst_30: +// rs1==x5, rd==x31, +// opcode: mop.r.12 ; op1:x5; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x31, x5, 0, -0x80000000, x6, 12*XLEN/8, x7) + +inst_31: +// rs1==x1, rd==x0, +// opcode: mop.r.12 ; op1:x1; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.12, x0, x1, 0, -0x80000000, x6, 13*XLEN/8, x7) +#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_x4_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_0: + .fill 14*((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/Zimop/src/mop.r.13-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.13-01.S new file mode 100644 index 000000000..b1a7179fd --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.13-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.13 instruction of the RISC-V RV32Zimop extension for the mop.r.13 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.13) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x17, rd==x17, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.13 ; op1:x17; dest:x17; op1val:0x400000; immval:-0x800 +TEST_R_OP( mop.r.13, x17, x17, 0, 0x400000, x2, 0*XLEN/8, x1) + +inst_1: +// rs1 != rd, rs1==x8, rd==x28, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.13 ; op1:x8; dest:x28; op1val:-0x2001; immval:0x7ff +TEST_R_OP( mop.r.13, x28, x8, 0, -0x2001, x2, 1*XLEN/8, x1) + +inst_2: +// rs1==x30, rd==x4, imm_val == 0, +// opcode: mop.r.13 ; op1:x30; dest:x4; op1val:0x2000; immval:0x0 +TEST_R_OP( mop.r.13, x4, x30, 0, 0x2000, x2, 2*XLEN/8, x1) + +inst_3: +// rs1==x5, rd==x26, imm_val == 1, rs1_val == 1, rs1_val == imm_val, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.13 ; op1:x5; dest:x26; op1val:0x1; immval:0x1 +TEST_R_OP( mop.r.13, x26, x5, 0, 0x1, x2, 3*XLEN/8, x1) + +inst_4: +// rs1==x16, rd==x8, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.13 ; op1:x16; dest:x8; op1val:0x7fffffff; immval:0x100 +TEST_R_OP( mop.r.13, x8, x16, 0, 0x7fffffff, x2, 4*XLEN/8, x1) + +inst_5: +// rs1==x3, rd==x9, rs1_val == 0, +// opcode: mop.r.13 ; op1:x3; dest:x9; op1val:0x0; immval:0x334 +TEST_R_OP( mop.r.13, x9, x3, 0, 0x0, x2, 5*XLEN/8, x1) + +inst_6: +// rs1==x12, rd==x24, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.13 ; op1:x12; dest:x24; op1val:-0x4000001; immval:-0x2c +TEST_R_OP( mop.r.13, x24, x12, 0, -0x4000001, x2, 6*XLEN/8, x1) + +inst_7: +// rs1==x24, rd==x18, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.13 ; op1:x24; dest:x18; op1val:-0x80000000; immval:0x332 +TEST_R_OP( mop.r.13, x18, x24, 0, -0x80000000, x2, 7*XLEN/8, x1) + +inst_8: +// rs1==x29, rd==x27, +// opcode: mop.r.13 ; op1:x29; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x27, x29, 0, -0x80000000, x2, 8*XLEN/8, x1) + +inst_9: +// rs1==x14, rd==x21, +// opcode: mop.r.13 ; op1:x14; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x21, x14, 0, -0x80000000, x2, 9*XLEN/8, x1) + +inst_10: +// rs1==x11, rd==x5, +// opcode: mop.r.13 ; op1:x11; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x5, x11, 0, -0x80000000, x2, 10*XLEN/8, x1) + +inst_11: +// rs1==x20, rd==x14, +// opcode: mop.r.13 ; op1:x20; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x14, x20, 0, -0x80000000, x2, 11*XLEN/8, x1) + +inst_12: +// rs1==x0, rd==x31, +// opcode: mop.r.13 ; op1:x0; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x31, x0, 0, 0x0, x2, 12*XLEN/8, x1) + +inst_13: +// rs1==x21, rd==x29, +// opcode: mop.r.13 ; op1:x21; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x29, x21, 0, -0x80000000, x2, 13*XLEN/8, x1) + +inst_14: +// rs1==x28, rd==x22, +// opcode: mop.r.13 ; op1:x28; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x22, x28, 0, -0x80000000, x2, 14*XLEN/8, x1) + +inst_15: +// rs1==x15, rd==x25, +// opcode: mop.r.13 ; op1:x15; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x25, x15, 0, -0x80000000, x2, 15*XLEN/8, x1) + +inst_16: +// rs1==x22, rd==x16, +// opcode: mop.r.13 ; op1:x22; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x16, x22, 0, -0x80000000, x2, 16*XLEN/8, x1) + +inst_17: +// rs1==x7, rd==x11, +// opcode: mop.r.13 ; op1:x7; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x11, x7, 0, -0x80000000, x2, 17*XLEN/8, x1) + +inst_18: +// rs1==x23, rd==x6, +// opcode: mop.r.13 ; op1:x23; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x6, x23, 0, -0x80000000, x2, 18*XLEN/8, x1) + +inst_19: +// rs1==x25, rd==x15, +// opcode: mop.r.13 ; op1:x25; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x15, x25, 0, -0x80000000, x2, 19*XLEN/8, x8) + +inst_20: +// rs1==x1, rd==x7, +// opcode: mop.r.13 ; op1:x1; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x7, x1, 0, -0x80000000, x2, 20*XLEN/8, x8) +RVTEST_SIGBASE(x5,signature_x5_0) + +inst_21: +// rs1==x31, rd==x0, +// opcode: mop.r.13 ; op1:x31; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x0, x31, 0, -0x80000000, x5, 0*XLEN/8, x8) + +inst_22: +// rs1==x6, rd==x1, +// opcode: mop.r.13 ; op1:x6; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x1, x6, 0, -0x80000000, x5, 1*XLEN/8, x8) + +inst_23: +// rs1==x19, rd==x13, +// opcode: mop.r.13 ; op1:x19; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x13, x19, 0, -0x80000000, x5, 2*XLEN/8, x8) + +inst_24: +// rs1==x10, rd==x19, +// opcode: mop.r.13 ; op1:x10; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x19, x10, 0, -0x80000000, x5, 3*XLEN/8, x8) + +inst_25: +// rs1==x18, rd==x3, +// opcode: mop.r.13 ; op1:x18; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x3, x18, 0, -0x80000000, x5, 4*XLEN/8, x8) + +inst_26: +// rs1==x26, rd==x2, +// opcode: mop.r.13 ; op1:x26; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x2, x26, 0, -0x80000000, x5, 5*XLEN/8, x8) + +inst_27: +// rs1==x9, rd==x30, +// opcode: mop.r.13 ; op1:x9; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x30, x9, 0, -0x80000000, x5, 6*XLEN/8, x8) + +inst_28: +// rs1==x13, rd==x23, +// opcode: mop.r.13 ; op1:x13; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x23, x13, 0, -0x80000000, x5, 7*XLEN/8, x8) + +inst_29: +// rs1==x2, rd==x20, +// opcode: mop.r.13 ; op1:x2; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x20, x2, 0, -0x80000000, x5, 8*XLEN/8, x8) + +inst_30: +// rs1==x27, rd==x10, +// opcode: mop.r.13 ; op1:x27; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x10, x27, 0, -0x80000000, x5, 9*XLEN/8, x8) + +inst_31: +// rs1==x4, rd==x12, +// opcode: mop.r.13 ; op1:x4; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.13, x12, x4, 0, -0x80000000, x5, 10*XLEN/8, x8) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_0: + .fill 11*((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/Zimop/src/mop.r.14-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.14-01.S new file mode 100644 index 000000000..929debff0 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.14-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.14 instruction of the RISC-V RV32Zimop extension for the mop.r.14 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.14) + +RVTEST_SIGBASE(x5,signature_x5_1) + +inst_0: +// rs1 == rd, rs1==x28, rd==x28, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.14 ; op1:x28; dest:x28; op1val:-0x80001; immval:-0x800 +TEST_R_OP( mop.r.14, x28, x28, 0, -0x80001, x5, 0*XLEN/8, x10) + +inst_1: +// rs1 != rd, rs1==x17, rd==x9, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.14 ; op1:x17; dest:x9; op1val:-0x11; immval:0x7ff +TEST_R_OP( mop.r.14, x9, x17, 0, -0x11, x5, 1*XLEN/8, x10) + +inst_2: +// rs1==x3, rd==x0, imm_val == 0, +// opcode: mop.r.14 ; op1:x3; dest:x0; op1val:-0x2; immval:0x0 +TEST_R_OP( mop.r.14, x0, x3, 0, -0x2, x5, 2*XLEN/8, x10) + +inst_3: +// rs1==x30, rd==x23, imm_val == 1, +// opcode: mop.r.14 ; op1:x30; dest:x23; op1val:-0x40000001; immval:0x1 +TEST_R_OP( mop.r.14, x23, x30, 0, -0x40000001, x5, 3*XLEN/8, x10) + +inst_4: +// rs1==x16, rd==x13, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.14 ; op1:x16; dest:x13; op1val:-0x80000000; immval:-0x3 +TEST_R_OP( mop.r.14, x13, x16, 0, -0x80000000, x5, 4*XLEN/8, x10) + +inst_5: +// rs1==x25, rd==x17, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.14 ; op1:x25; dest:x17; op1val:0x7fffffff; immval:0x555 +TEST_R_OP( mop.r.14, x17, x25, 0, 0x7fffffff, x5, 5*XLEN/8, x10) + +inst_6: +// rs1==x20, rd==x4, rs1_val == 0, rs1_val == imm_val +// opcode: mop.r.14 ; op1:x20; dest:x4; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.14, x4, x20, 0, 0x0, x5, 6*XLEN/8, x10) + +inst_7: +// rs1==x31, rd==x15, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.14 ; op1:x31; dest:x15; op1val:0x1; immval:-0x2 +TEST_R_OP( mop.r.14, x15, x31, 0, 0x1, x5, 7*XLEN/8, x10) + +inst_8: +// rs1==x11, rd==x30, +// opcode: mop.r.14 ; op1:x11; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x30, x11, 0, -0x80000000, x5, 8*XLEN/8, x10) + +inst_9: +// rs1==x19, rd==x2, +// opcode: mop.r.14 ; op1:x19; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x2, x19, 0, -0x80000000, x5, 9*XLEN/8, x10) + +inst_10: +// rs1==x22, rd==x3, +// opcode: mop.r.14 ; op1:x22; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x3, x22, 0, -0x80000000, x5, 10*XLEN/8, x10) + +inst_11: +// rs1==x6, rd==x31, +// opcode: mop.r.14 ; op1:x6; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x31, x6, 0, -0x80000000, x5, 11*XLEN/8, x10) + +inst_12: +// rs1==x27, rd==x20, +// opcode: mop.r.14 ; op1:x27; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x20, x27, 0, -0x80000000, x5, 12*XLEN/8, x10) + +inst_13: +// rs1==x21, rd==x18, +// opcode: mop.r.14 ; op1:x21; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x18, x21, 0, -0x80000000, x5, 13*XLEN/8, x10) + +inst_14: +// rs1==x12, rd==x26, +// opcode: mop.r.14 ; op1:x12; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x26, x12, 0, -0x80000000, x5, 14*XLEN/8, x10) + +inst_15: +// rs1==x1, rd==x16, +// opcode: mop.r.14 ; op1:x1; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x16, x1, 0, -0x80000000, x5, 15*XLEN/8, x10) + +inst_16: +// rs1==x18, rd==x22, +// opcode: mop.r.14 ; op1:x18; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x22, x18, 0, -0x80000000, x5, 16*XLEN/8, x10) + +inst_17: +// rs1==x23, rd==x14, +// opcode: mop.r.14 ; op1:x23; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x14, x23, 0, -0x80000000, x5, 17*XLEN/8, x10) + +inst_18: +// rs1==x8, rd==x7, +// opcode: mop.r.14 ; op1:x8; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x7, x8, 0, -0x80000000, x5, 18*XLEN/8, x10) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_19: +// rs1==x0, rd==x19, +// opcode: mop.r.14 ; op1:x0; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x19, x0, 0, 0x0, x3, 0*XLEN/8, x16) + +inst_20: +// rs1==x4, rd==x12, +// opcode: mop.r.14 ; op1:x4; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x12, x4, 0, -0x80000000, x3, 1*XLEN/8, x16) + +inst_21: +// rs1==x9, rd==x21, +// opcode: mop.r.14 ; op1:x9; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x21, x9, 0, -0x80000000, x3, 2*XLEN/8, x16) + +inst_22: +// rs1==x10, rd==x11, +// opcode: mop.r.14 ; op1:x10; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x11, x10, 0, -0x80000000, x3, 3*XLEN/8, x16) + +inst_23: +// rs1==x13, rd==x8, +// opcode: mop.r.14 ; op1:x13; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x8, x13, 0, -0x80000000, x3, 4*XLEN/8, x16) + +inst_24: +// rs1==x14, rd==x27, +// opcode: mop.r.14 ; op1:x14; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x27, x14, 0, -0x80000000, x3, 5*XLEN/8, x16) + +inst_25: +// rs1==x26, rd==x5, +// opcode: mop.r.14 ; op1:x26; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x5, x26, 0, -0x80000000, x3, 6*XLEN/8, x16) + +inst_26: +// rs1==x15, rd==x6, +// opcode: mop.r.14 ; op1:x15; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x6, x15, 0, -0x80000000, x3, 7*XLEN/8, x16) + +inst_27: +// rs1==x7, rd==x25, +// opcode: mop.r.14 ; op1:x7; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x25, x7, 0, -0x80000000, x3, 8*XLEN/8, x16) + +inst_28: +// rs1==x2, rd==x29, +// opcode: mop.r.14 ; op1:x2; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x29, x2, 0, -0x80000000, x3, 9*XLEN/8, x16) + +inst_29: +// rs1==x5, rd==x24, +// opcode: mop.r.14 ; op1:x5; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x24, x5, 0, -0x80000000, x3, 10*XLEN/8, x16) + +inst_30: +// rs1==x29, rd==x1, +// opcode: mop.r.14 ; op1:x29; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x1, x29, 0, -0x80000000, x3, 11*XLEN/8, x16) + +inst_31: +// rs1==x24, rd==x10, +// opcode: mop.r.14 ; op1:x24; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.14, x10, x24, 0, -0x80000000, x3, 12*XLEN/8, x16) +#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_x5_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 13*((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/Zimop/src/mop.r.15-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.15-01.S new file mode 100644 index 000000000..a3714b2a6 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.15-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.15 instruction of the RISC-V RV32Zimop extension for the mop.r.15 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.15) + +RVTEST_SIGBASE(x14,signature_x14_1) + +inst_0: +// rs1 == rd, rs1==x6, rd==x6, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.15 ; op1:x6; dest:x6; op1val:-0x3; immval:-0x800 +TEST_R_OP( mop.r.15, x6, x6, 0, -0x3, x14, 0*XLEN/8, x16) + +inst_1: +// rs1 != rd, rs1==x4, rd==x20, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.15 ; op1:x4; dest:x20; op1val:0x6; immval:0x7ff +TEST_R_OP( mop.r.15, x20, x4, 0, 0x6, x14, 1*XLEN/8, x16) + +inst_2: +// rs1==x9, rd==x22, imm_val == 0, +// opcode: mop.r.15 ; op1:x9; dest:x22; op1val:0x20000; immval:0x0 +TEST_R_OP( mop.r.15, x22, x9, 0, 0x20000, x14, 2*XLEN/8, x16) + +inst_3: +// rs1==x1, rd==x24, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.15 ; op1:x1; dest:x24; op1val:-0x40000000; immval:0x1 +TEST_R_OP( mop.r.15, x24, x1, 0, -0x40000000, x14, 3*XLEN/8, x16) + +inst_4: +// rs1==x21, rd==x3, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.15 ; op1:x21; dest:x3; op1val:-0x80000000; immval:-0x7 +TEST_R_OP( mop.r.15, x3, x21, 0, -0x80000000, x14, 4*XLEN/8, x16) + +inst_5: +// rs1==x10, rd==x23, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.15 ; op1:x10; dest:x23; op1val:0x7fffffff; immval:-0x800 +TEST_R_OP( mop.r.15, x23, x10, 0, 0x7fffffff, x14, 5*XLEN/8, x16) + +inst_6: +// rs1==x25, rd==x9, rs1_val == 0, +// opcode: mop.r.15 ; op1:x25; dest:x9; op1val:0x0; immval:0x2 +TEST_R_OP( mop.r.15, x9, x25, 0, 0x0, x14, 6*XLEN/8, x16) + +inst_7: +// rs1==x11, rd==x18, rs1_val == 1, +// opcode: mop.r.15 ; op1:x11; dest:x18; op1val:0x1; immval:-0x2c +TEST_R_OP( mop.r.15, x18, x11, 0, 0x1, x14, 7*XLEN/8, x16) + +inst_8: +// rs1==x19, rd==x2, rs1_val == imm_val, +// opcode: mop.r.15 ; op1:x19; dest:x2; op1val:0x10; immval:0x10 +TEST_R_OP( mop.r.15, x2, x19, 0, 0x10, x14, 8*XLEN/8, x16) + +inst_9: +// rs1==x20, rd==x8, +// opcode: mop.r.15 ; op1:x20; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x8, x20, 0, -0x80000000, x14, 9*XLEN/8, x16) + +inst_10: +// rs1==x13, rd==x27, +// opcode: mop.r.15 ; op1:x13; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x27, x13, 0, -0x80000000, x14, 10*XLEN/8, x16) + +inst_11: +// rs1==x8, rd==x0, +// opcode: mop.r.15 ; op1:x8; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x0, x8, 0, -0x80000000, x14, 11*XLEN/8, x16) + +inst_12: +// rs1==x3, rd==x15, +// opcode: mop.r.15 ; op1:x3; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x15, x3, 0, -0x80000000, x14, 12*XLEN/8, x16) + +inst_13: +// rs1==x17, rd==x21, +// opcode: mop.r.15 ; op1:x17; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x21, x17, 0, -0x80000000, x14, 13*XLEN/8, x16) + +inst_14: +// rs1==x30, rd==x5, +// opcode: mop.r.15 ; op1:x30; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x5, x30, 0, -0x80000000, x14, 14*XLEN/8, x16) + +inst_15: +// rs1==x12, rd==x31, +// opcode: mop.r.15 ; op1:x12; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x31, x12, 0, -0x80000000, x14, 15*XLEN/8, x16) + +inst_16: +// rs1==x27, rd==x1, +// opcode: mop.r.15 ; op1:x27; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x1, x27, 0, -0x80000000, x14, 16*XLEN/8, x16) + +inst_17: +// rs1==x23, rd==x11, +// opcode: mop.r.15 ; op1:x23; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x11, x23, 0, -0x80000000, x14, 17*XLEN/8, x16) + +inst_18: +// rs1==x0, rd==x10, +// opcode: mop.r.15 ; op1:x0; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x10, x0, 0, 0x0, x14, 18*XLEN/8, x16) + +inst_19: +// rs1==x7, rd==x30, +// opcode: mop.r.15 ; op1:x7; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x30, x7, 0, -0x80000000, x14, 19*XLEN/8, x16) + +inst_20: +// rs1==x22, rd==x13, +// opcode: mop.r.15 ; op1:x22; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x13, x22, 0, -0x80000000, x14, 20*XLEN/8, x3) + +inst_21: +// rs1==x5, rd==x25, +// opcode: mop.r.15 ; op1:x5; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x25, x5, 0, -0x80000000, x14, 21*XLEN/8, x3) + +inst_22: +// rs1==x26, rd==x29, +// opcode: mop.r.15 ; op1:x26; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x29, x26, 0, -0x80000000, x14, 22*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_23: +// rs1==x14, rd==x12, +// opcode: mop.r.15 ; op1:x14; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x12, x14, 0, -0x80000000, x1, 0*XLEN/8, x3) + +inst_24: +// rs1==x16, rd==x19, +// opcode: mop.r.15 ; op1:x16; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x19, x16, 0, -0x80000000, x1, 1*XLEN/8, x3) + +inst_25: +// rs1==x15, rd==x14, +// opcode: mop.r.15 ; op1:x15; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x14, x15, 0, -0x80000000, x1, 2*XLEN/8, x3) + +inst_26: +// rs1==x28, rd==x26, +// opcode: mop.r.15 ; op1:x28; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x26, x28, 0, -0x80000000, x1, 3*XLEN/8, x3) + +inst_27: +// rs1==x31, rd==x17, +// opcode: mop.r.15 ; op1:x31; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x17, x31, 0, -0x80000000, x1, 4*XLEN/8, x3) + +inst_28: +// rs1==x18, rd==x4, +// opcode: mop.r.15 ; op1:x18; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x4, x18, 0, -0x80000000, x1, 5*XLEN/8, x3) + +inst_29: +// rs1==x2, rd==x16, +// opcode: mop.r.15 ; op1:x2; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x16, x2, 0, -0x80000000, x1, 6*XLEN/8, x3) + +inst_30: +// rs1==x29, rd==x28, +// opcode: mop.r.15 ; op1:x29; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x28, x29, 0, -0x80000000, x1, 7*XLEN/8, x3) + +inst_31: +// rs1==x24, rd==x7, +// opcode: mop.r.15 ; op1:x24; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.15, x7, x24, 0, -0x80000000, x1, 8*XLEN/8, x3) +#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_x14_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x14_1: + .fill 23*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .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/Zimop/src/mop.r.16-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.16-01.S new file mode 100644 index 000000000..3d12b28e6 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.16-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.16 instruction of the RISC-V RV32Zimop extension for the mop.r.16 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.16) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x26, rd==x26, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.16 ; op1:x26; dest:x26; op1val:0x33333333; immval:-0x800 +TEST_R_OP( mop.r.16, x26, x26, 0, 0x33333333, x3, 0*XLEN/8, x8) + +inst_1: +// rs1 != rd, rs1==x11, rd==x27, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.16 ; op1:x11; dest:x27; op1val:-0x40000001; immval:0x7ff +TEST_R_OP( mop.r.16, x27, x11, 0, -0x40000001, x3, 1*XLEN/8, x8) + +inst_2: +// rs1==x25, rd==x29, imm_val == 0, +// opcode: mop.r.16 ; op1:x25; dest:x29; op1val:-0xb503; immval:0x0 +TEST_R_OP( mop.r.16, x29, x25, 0, -0xb503, x3, 2*XLEN/8, x8) + +inst_3: +// rs1==x15, rd==x9, imm_val == 1, +// opcode: mop.r.16 ; op1:x15; dest:x9; op1val:-0x2000001; immval:0x1 +TEST_R_OP( mop.r.16, x9, x15, 0, -0x2000001, x3, 3*XLEN/8, x8) + +inst_4: +// rs1==x22, rd==x6, rs1_val < 0 and imm_val < 0, rs1_val == (-2**(xlen-1)) +// opcode: mop.r.16 ; op1:x22; dest:x6; op1val:-0x80000000; immval:-0x2d +TEST_R_OP( mop.r.16, x6, x22, 0, -0x80000000, x3, 4*XLEN/8, x8) + +inst_5: +// rs1==x29, rd==x18, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.16 ; op1:x29; dest:x18; op1val:0x7fffffff; immval:0x666 +TEST_R_OP( mop.r.16, x18, x29, 0, 0x7fffffff, x3, 5*XLEN/8, x8) + +inst_6: +// rs1==x24, rd==x0, rs1_val == 0, +// opcode: mop.r.16 ; op1:x24; dest:x0; op1val:0x0; immval:0x556 +TEST_R_OP( mop.r.16, x0, x24, 0, 0x0, x3, 6*XLEN/8, x8) + +inst_7: +// rs1==x12, rd==x30, rs1_val == 1, +// opcode: mop.r.16 ; op1:x12; dest:x30; op1val:0x1; immval:0x556 +TEST_R_OP( mop.r.16, x30, x12, 0, 0x1, x3, 7*XLEN/8, x8) + +inst_8: +// rs1==x19, rd==x10, rs1_val == imm_val, +// opcode: mop.r.16 ; op1:x19; dest:x10; op1val:0x3; immval:0x3 +TEST_R_OP( mop.r.16, x10, x19, 0, 0x3, x3, 8*XLEN/8, x8) + +inst_9: +// rs1==x4, rd==x7, +// opcode: mop.r.16 ; op1:x4; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x7, x4, 0, -0x80000000, x3, 9*XLEN/8, x8) + +inst_10: +// rs1==x23, rd==x15, +// opcode: mop.r.16 ; op1:x23; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x15, x23, 0, -0x80000000, x3, 10*XLEN/8, x8) + +inst_11: +// rs1==x6, rd==x5, +// opcode: mop.r.16 ; op1:x6; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x5, x6, 0, -0x80000000, x3, 11*XLEN/8, x8) + +inst_12: +// rs1==x14, rd==x4, +// opcode: mop.r.16 ; op1:x14; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x4, x14, 0, -0x80000000, x3, 12*XLEN/8, x8) + +inst_13: +// rs1==x9, rd==x31, +// opcode: mop.r.16 ; op1:x9; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x31, x9, 0, -0x80000000, x3, 13*XLEN/8, x8) + +inst_14: +// rs1==x7, rd==x22, +// opcode: mop.r.16 ; op1:x7; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x22, x7, 0, -0x80000000, x3, 14*XLEN/8, x8) + +inst_15: +// rs1==x17, rd==x1, +// opcode: mop.r.16 ; op1:x17; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x1, x17, 0, -0x80000000, x3, 15*XLEN/8, x8) + +inst_16: +// rs1==x21, rd==x2, +// opcode: mop.r.16 ; op1:x21; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x2, x21, 0, -0x80000000, x3, 16*XLEN/8, x8) + +inst_17: +// rs1==x16, rd==x12, +// opcode: mop.r.16 ; op1:x16; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x12, x16, 0, -0x80000000, x3, 17*XLEN/8, x8) + +inst_18: +// rs1==x28, rd==x25, +// opcode: mop.r.16 ; op1:x28; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x25, x28, 0, -0x80000000, x3, 18*XLEN/8, x6) +RVTEST_SIGBASE(x4,signature_x4_0) + +inst_19: +// rs1==x31, rd==x17, +// opcode: mop.r.16 ; op1:x31; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x17, x31, 0, -0x80000000, x4, 0*XLEN/8, x6) + +inst_20: +// rs1==x5, rd==x14, +// opcode: mop.r.16 ; op1:x5; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x14, x5, 0, -0x80000000, x4, 1*XLEN/8, x6) + +inst_21: +// rs1==x2, rd==x23, +// opcode: mop.r.16 ; op1:x2; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x23, x2, 0, -0x80000000, x4, 2*XLEN/8, x6) + +inst_22: +// rs1==x0, rd==x24, +// opcode: mop.r.16 ; op1:x0; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x24, x0, 0, 0x0, x4, 3*XLEN/8, x6) + +inst_23: +// rs1==x1, rd==x3, +// opcode: mop.r.16 ; op1:x1; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x3, x1, 0, -0x80000000, x4, 4*XLEN/8, x6) + +inst_24: +// rs1==x3, rd==x28, +// opcode: mop.r.16 ; op1:x3; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x28, x3, 0, -0x80000000, x4, 5*XLEN/8, x6) + +inst_25: +// rs1==x27, rd==x13, +// opcode: mop.r.16 ; op1:x27; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x13, x27, 0, -0x80000000, x4, 6*XLEN/8, x6) + +inst_26: +// rs1==x10, rd==x20, +// opcode: mop.r.16 ; op1:x10; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x20, x10, 0, -0x80000000, x4, 7*XLEN/8, x6) + +inst_27: +// rs1==x20, rd==x11, +// opcode: mop.r.16 ; op1:x20; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x11, x20, 0, -0x80000000, x4, 8*XLEN/8, x6) + +inst_28: +// rs1==x18, rd==x8, +// opcode: mop.r.16 ; op1:x18; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x8, x18, 0, -0x80000000, x4, 9*XLEN/8, x6) + +inst_29: +// rs1==x13, rd==x21, +// opcode: mop.r.16 ; op1:x13; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x21, x13, 0, -0x80000000, x4, 10*XLEN/8, x6) + +inst_30: +// rs1==x8, rd==x19, +// opcode: mop.r.16 ; op1:x8; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x19, x8, 0, -0x80000000, x4, 11*XLEN/8, x6) + +inst_31: +// rs1==x30, rd==x16, +// opcode: mop.r.16 ; op1:x30; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.16, x16, x30, 0, -0x80000000, x4, 12*XLEN/8, x6) + +inst_32: +// rs1_val == 0, +// opcode: mop.r.16 ; op1:x30; dest:x31; op1val:0x0; immval:0x556 +TEST_R_OP( mop.r.16, x31, x30, 0, 0x0, x4, 13*XLEN/8, x6) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_0: + .fill 14*((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/Zimop/src/mop.r.17-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.17-01.S new file mode 100644 index 000000000..e978cb7f3 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.17-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.17 instruction of the RISC-V RV32Zimop extension for the mop.r.17 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.17) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x12, rd==x12, imm_val == (-2**(12-1)), rs1_val == 0, rs1_val != imm_val +// opcode: mop.r.17 ; op1:x12; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x12, x12, 0, 0x0, x3, 0*XLEN/8, x5) + +inst_1: +// rs1 != rd, rs1==x30, rd==x27, imm_val == (2**(12-1)-1), rs1_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.17 ; op1:x30; dest:x27; op1val:0x1; immval:0x7ff +TEST_R_OP( mop.r.17, x27, x30, 0, 0x1, x3, 1*XLEN/8, x5) + +inst_2: +// rs1==x26, rd==x18, imm_val == 0, +// opcode: mop.r.17 ; op1:x26; dest:x18; op1val:0xb504; immval:0x0 +TEST_R_OP( mop.r.17, x18, x26, 0, 0xb504, x3, 2*XLEN/8, x5) + +inst_3: +// rs1==x16, rd==x6, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.17 ; op1:x16; dest:x6; op1val:-0x3; immval:0x1 +TEST_R_OP( mop.r.17, x6, x16, 0, -0x3, x3, 3*XLEN/8, x5) + +inst_4: +// rs1==x4, rd==x30, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.17 ; op1:x4; dest:x30; op1val:-0x40000001; immval:-0x201 +TEST_R_OP( mop.r.17, x30, x4, 0, -0x40000001, x3, 4*XLEN/8, x5) + +inst_5: +// rs1==x2, rd==x21, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.17 ; op1:x2; dest:x21; op1val:0x7fffffff; immval:-0x6 +TEST_R_OP( mop.r.17, x21, x2, 0, 0x7fffffff, x3, 5*XLEN/8, x5) + +inst_6: +// rs1==x27, rd==x23, rs1_val == imm_val, +// opcode: mop.r.17 ; op1:x27; dest:x23; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.17, x23, x27, 0, 0x0, x3, 6*XLEN/8, x5) + +inst_7: +// rs1==x0, rd==x22, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.17 ; op1:x0; dest:x22; op1val:0x0; immval:0x666 +TEST_R_OP( mop.r.17, x22, x0, 0, 0x0, x3, 7*XLEN/8, x5) + +inst_8: +// rs1==x31, rd==x0, +// opcode: mop.r.17 ; op1:x31; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x0, x31, 0, -0x80000000, x3, 8*XLEN/8, x5) + +inst_9: +// rs1==x18, rd==x29, +// opcode: mop.r.17 ; op1:x18; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x29, x18, 0, -0x80000000, x3, 9*XLEN/8, x5) + +inst_10: +// rs1==x20, rd==x1, +// opcode: mop.r.17 ; op1:x20; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x1, x20, 0, -0x80000000, x3, 10*XLEN/8, x5) + +inst_11: +// rs1==x24, rd==x2, +// opcode: mop.r.17 ; op1:x24; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x2, x24, 0, -0x80000000, x3, 11*XLEN/8, x5) + +inst_12: +// rs1==x1, rd==x28, +// opcode: mop.r.17 ; op1:x1; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x28, x1, 0, -0x80000000, x3, 12*XLEN/8, x5) + +inst_13: +// rs1==x6, rd==x4, +// opcode: mop.r.17 ; op1:x6; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x4, x6, 0, -0x80000000, x3, 13*XLEN/8, x5) + +inst_14: +// rs1==x10, rd==x7, +// opcode: mop.r.17 ; op1:x10; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x7, x10, 0, -0x80000000, x3, 14*XLEN/8, x5) + +inst_15: +// rs1==x28, rd==x17, +// opcode: mop.r.17 ; op1:x28; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x17, x28, 0, -0x80000000, x3, 15*XLEN/8, x5) + +inst_16: +// rs1==x22, rd==x31, +// opcode: mop.r.17 ; op1:x22; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x31, x22, 0, -0x80000000, x3, 16*XLEN/8, x5) + +inst_17: +// rs1==x9, rd==x15, +// opcode: mop.r.17 ; op1:x9; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x15, x9, 0, -0x80000000, x3, 17*XLEN/8, x5) + +inst_18: +// rs1==x25, rd==x16, +// opcode: mop.r.17 ; op1:x25; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x16, x25, 0, -0x80000000, x3, 18*XLEN/8, x5) + +inst_19: +// rs1==x8, rd==x25, +// opcode: mop.r.17 ; op1:x8; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x25, x8, 0, -0x80000000, x3, 19*XLEN/8, x5) + +inst_20: +// rs1==x23, rd==x14, +// opcode: mop.r.17 ; op1:x23; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x14, x23, 0, -0x80000000, x3, 20*XLEN/8, x5) + +inst_21: +// rs1==x19, rd==x13, +// opcode: mop.r.17 ; op1:x19; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x13, x19, 0, -0x80000000, x3, 21*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_22: +// rs1==x11, rd==x24, +// opcode: mop.r.17 ; op1:x11; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x24, x11, 0, -0x80000000, x1, 0*XLEN/8, x2) + +inst_23: +// rs1==x13, rd==x3, +// opcode: mop.r.17 ; op1:x13; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x3, x13, 0, -0x80000000, x1, 1*XLEN/8, x2) + +inst_24: +// rs1==x3, rd==x26, +// opcode: mop.r.17 ; op1:x3; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x26, x3, 0, -0x80000000, x1, 2*XLEN/8, x2) + +inst_25: +// rs1==x14, rd==x19, +// opcode: mop.r.17 ; op1:x14; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x19, x14, 0, -0x80000000, x1, 3*XLEN/8, x2) + +inst_26: +// rs1==x7, rd==x10, +// opcode: mop.r.17 ; op1:x7; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x10, x7, 0, -0x80000000, x1, 4*XLEN/8, x2) + +inst_27: +// rs1==x15, rd==x20, +// opcode: mop.r.17 ; op1:x15; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x20, x15, 0, -0x80000000, x1, 5*XLEN/8, x2) + +inst_28: +// rs1==x29, rd==x11, +// opcode: mop.r.17 ; op1:x29; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x11, x29, 0, -0x80000000, x1, 6*XLEN/8, x2) + +inst_29: +// rs1==x21, rd==x5, +// opcode: mop.r.17 ; op1:x21; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x5, x21, 0, -0x80000000, x1, 7*XLEN/8, x2) + +inst_30: +// rs1==x17, rd==x8, +// opcode: mop.r.17 ; op1:x17; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x8, x17, 0, -0x80000000, x1, 8*XLEN/8, x2) + +inst_31: +// rs1==x5, rd==x9, +// opcode: mop.r.17 ; op1:x5; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.17, x9, x5, 0, -0x80000000, x1, 9*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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 10*((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/Zimop/src/mop.r.18-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.18-01.S new file mode 100644 index 000000000..da26eb824 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.18-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.18 instruction of the RISC-V RV32Zimop extension for the mop.r.18 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.18) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x11, rd==x11, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.18 ; op1:x11; dest:x11; op1val:0x55555555; immval:-0x800 +TEST_R_OP( mop.r.18, x11, x11, 0, 0x55555555, x7, 0*XLEN/8, x15) + +inst_1: +// rs1 != rd, rs1==x23, rd==x21, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.18 ; op1:x23; dest:x21; op1val:-0x40001; immval:0x7ff +TEST_R_OP( mop.r.18, x21, x23, 0, -0x40001, x7, 1*XLEN/8, x15) + +inst_2: +// rs1==x9, rd==x16, imm_val == 0, +// opcode: mop.r.18 ; op1:x9; dest:x16; op1val:0x8; immval:0x0 +TEST_R_OP( mop.r.18, x16, x9, 0, 0x8, x7, 2*XLEN/8, x15) + +inst_3: +// rs1==x22, rd==x0, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.18 ; op1:x22; dest:x0; op1val:0x66666667; immval:0x1 +TEST_R_OP( mop.r.18, x0, x22, 0, 0x66666667, x7, 3*XLEN/8, x15) + +inst_4: +// rs1==x16, rd==x28, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.18 ; op1:x16; dest:x28; op1val:-0x401; immval:-0x7 +TEST_R_OP( mop.r.18, x28, x16, 0, -0x401, x7, 4*XLEN/8, x15) + +inst_5: +// rs1==x21, rd==x9, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.18 ; op1:x21; dest:x9; op1val:-0x80000000; immval:0x0 +TEST_R_OP( mop.r.18, x9, x21, 0, -0x80000000, x7, 5*XLEN/8, x15) + +inst_6: +// rs1==x3, rd==x5, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.18 ; op1:x3; dest:x5; op1val:0x7fffffff; immval:-0x101 +TEST_R_OP( mop.r.18, x5, x3, 0, 0x7fffffff, x7, 6*XLEN/8, x15) + +inst_7: +// rs1==x25, rd==x29, rs1_val == 0, +// opcode: mop.r.18 ; op1:x25; dest:x29; op1val:0x0; immval:0x5 +TEST_R_OP( mop.r.18, x29, x25, 0, 0x0, x7, 7*XLEN/8, x15) + +inst_8: +// rs1==x20, rd==x1, rs1_val == 1, +// opcode: mop.r.18 ; op1:x20; dest:x1; op1val:0x1; immval:-0x2c +TEST_R_OP( mop.r.18, x1, x20, 0, 0x1, x7, 8*XLEN/8, x15) + +inst_9: +// rs1==x18, rd==x19, rs1_val == imm_val, +// opcode: mop.r.18 ; op1:x18; dest:x19; op1val:0x4; immval:0x4 +TEST_R_OP( mop.r.18, x19, x18, 0, 0x4, x7, 9*XLEN/8, x15) + +inst_10: +// rs1==x26, rd==x2, +// opcode: mop.r.18 ; op1:x26; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x2, x26, 0, -0x80000000, x7, 10*XLEN/8, x15) + +inst_11: +// rs1==x12, rd==x13, +// opcode: mop.r.18 ; op1:x12; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x13, x12, 0, -0x80000000, x7, 11*XLEN/8, x15) + +inst_12: +// rs1==x14, rd==x23, +// opcode: mop.r.18 ; op1:x14; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x23, x14, 0, -0x80000000, x7, 12*XLEN/8, x15) + +inst_13: +// rs1==x17, rd==x10, +// opcode: mop.r.18 ; op1:x17; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x10, x17, 0, -0x80000000, x7, 13*XLEN/8, x15) + +inst_14: +// rs1==x8, rd==x27, +// opcode: mop.r.18 ; op1:x8; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x27, x8, 0, -0x80000000, x7, 14*XLEN/8, x15) + +inst_15: +// rs1==x13, rd==x3, +// opcode: mop.r.18 ; op1:x13; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x3, x13, 0, -0x80000000, x7, 15*XLEN/8, x15) + +inst_16: +// rs1==x27, rd==x4, +// opcode: mop.r.18 ; op1:x27; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x4, x27, 0, -0x80000000, x7, 16*XLEN/8, x15) + +inst_17: +// rs1==x28, rd==x25, +// opcode: mop.r.18 ; op1:x28; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x25, x28, 0, -0x80000000, x7, 17*XLEN/8, x15) + +inst_18: +// rs1==x6, rd==x30, +// opcode: mop.r.18 ; op1:x6; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x30, x6, 0, -0x80000000, x7, 18*XLEN/8, x15) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_19: +// rs1==x0, rd==x8, +// opcode: mop.r.18 ; op1:x0; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x8, x0, 0, 0x0, x3, 0*XLEN/8, x9) + +inst_20: +// rs1==x24, rd==x20, +// opcode: mop.r.18 ; op1:x24; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x20, x24, 0, -0x80000000, x3, 1*XLEN/8, x9) + +inst_21: +// rs1==x30, rd==x7, +// opcode: mop.r.18 ; op1:x30; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x7, x30, 0, -0x80000000, x3, 2*XLEN/8, x9) + +inst_22: +// rs1==x29, rd==x12, +// opcode: mop.r.18 ; op1:x29; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x12, x29, 0, -0x80000000, x3, 3*XLEN/8, x9) + +inst_23: +// rs1==x2, rd==x24, +// opcode: mop.r.18 ; op1:x2; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x24, x2, 0, -0x80000000, x3, 4*XLEN/8, x9) + +inst_24: +// rs1==x15, rd==x22, +// opcode: mop.r.18 ; op1:x15; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x22, x15, 0, -0x80000000, x3, 5*XLEN/8, x9) + +inst_25: +// rs1==x19, rd==x31, +// opcode: mop.r.18 ; op1:x19; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x31, x19, 0, -0x80000000, x3, 6*XLEN/8, x9) + +inst_26: +// rs1==x10, rd==x18, +// opcode: mop.r.18 ; op1:x10; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x18, x10, 0, -0x80000000, x3, 7*XLEN/8, x9) + +inst_27: +// rs1==x4, rd==x6, +// opcode: mop.r.18 ; op1:x4; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x6, x4, 0, -0x80000000, x3, 8*XLEN/8, x9) + +inst_28: +// rs1==x5, rd==x26, +// opcode: mop.r.18 ; op1:x5; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x26, x5, 0, -0x80000000, x3, 9*XLEN/8, x9) + +inst_29: +// rs1==x31, rd==x17, +// opcode: mop.r.18 ; op1:x31; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x17, x31, 0, -0x80000000, x3, 10*XLEN/8, x9) + +inst_30: +// rs1==x1, rd==x15, +// opcode: mop.r.18 ; op1:x1; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x15, x1, 0, -0x80000000, x3, 11*XLEN/8, x9) + +inst_31: +// rs1==x7, rd==x14, +// opcode: mop.r.18 ; op1:x7; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.18, x14, x7, 0, -0x80000000, x3, 12*XLEN/8, x9) + +inst_32: +// imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.18 ; op1:x30; dest:x31; op1val:0x66666667; immval:0x1 +TEST_R_OP( mop.r.18, x31, x30, 0, 0x66666667, x3, 13*XLEN/8, x9) +#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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 14*((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/Zimop/src/mop.r.19-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.19-01.S new file mode 100644 index 000000000..21e32b348 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.19-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.19 instruction of the RISC-V RV32Zimop extension for the mop.r.19 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.19) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x28, rd==x28, imm_val == (-2**(12-1)), rs1_val == 0, rs1_val != imm_val +// opcode: mop.r.19 ; op1:x28; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x28, x28, 0, 0x0, x2, 0*XLEN/8, x3) + +inst_1: +// rs1 != rd, rs1==x15, rd==x0, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.19 ; op1:x15; dest:x0; op1val:-0x8; immval:0x7ff +TEST_R_OP( mop.r.19, x0, x15, 0, -0x8, x2, 1*XLEN/8, x3) + +inst_2: +// rs1==x9, rd==x16, imm_val == 0, +// opcode: mop.r.19 ; op1:x9; dest:x16; op1val:-0x40000001; immval:0x0 +TEST_R_OP( mop.r.19, x16, x9, 0, -0x40000001, x2, 2*XLEN/8, x3) + +inst_3: +// rs1==x31, rd==x25, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.19 ; op1:x31; dest:x25; op1val:0x8; immval:0x1 +TEST_R_OP( mop.r.19, x25, x31, 0, 0x8, x2, 3*XLEN/8, x3) + +inst_4: +// rs1==x26, rd==x29, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.19 ; op1:x26; dest:x29; op1val:-0x80001; immval:-0x556 +TEST_R_OP( mop.r.19, x29, x26, 0, -0x80001, x2, 4*XLEN/8, x3) + +inst_5: +// rs1==x4, rd==x5, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.19 ; op1:x4; dest:x5; op1val:-0x80000000; immval:0x555 +TEST_R_OP( mop.r.19, x5, x4, 0, -0x80000000, x2, 5*XLEN/8, x3) + +inst_6: +// rs1==x29, rd==x6, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.19 ; op1:x29; dest:x6; op1val:0x7fffffff; immval:-0x7 +TEST_R_OP( mop.r.19, x6, x29, 0, 0x7fffffff, x2, 6*XLEN/8, x3) + +inst_7: +// rs1==x1, rd==x24, rs1_val == 1, +// opcode: mop.r.19 ; op1:x1; dest:x24; op1val:0x1; immval:0x10 +TEST_R_OP( mop.r.19, x24, x1, 0, 0x1, x2, 7*XLEN/8, x3) + +inst_8: +// rs1==x21, rd==x30, rs1_val == imm_val, +// opcode: mop.r.19 ; op1:x21; dest:x30; op1val:-0x401; immval:-0x401 +TEST_R_OP( mop.r.19, x30, x21, 0, -0x401, x2, 8*XLEN/8, x3) + +inst_9: +// rs1==x23, rd==x26, +// opcode: mop.r.19 ; op1:x23; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x26, x23, 0, -0x80000000, x2, 9*XLEN/8, x3) + +inst_10: +// rs1==x11, rd==x7, +// opcode: mop.r.19 ; op1:x11; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x7, x11, 0, -0x80000000, x2, 10*XLEN/8, x3) + +inst_11: +// rs1==x22, rd==x4, +// opcode: mop.r.19 ; op1:x22; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x4, x22, 0, -0x80000000, x2, 11*XLEN/8, x3) + +inst_12: +// rs1==x14, rd==x15, +// opcode: mop.r.19 ; op1:x14; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x15, x14, 0, -0x80000000, x2, 12*XLEN/8, x3) + +inst_13: +// rs1==x8, rd==x1, +// opcode: mop.r.19 ; op1:x8; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x1, x8, 0, -0x80000000, x2, 13*XLEN/8, x3) + +inst_14: +// rs1==x5, rd==x20, +// opcode: mop.r.19 ; op1:x5; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x20, x5, 0, -0x80000000, x2, 14*XLEN/8, x3) + +inst_15: +// rs1==x27, rd==x11, +// opcode: mop.r.19 ; op1:x27; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x11, x27, 0, -0x80000000, x2, 15*XLEN/8, x3) + +inst_16: +// rs1==x18, rd==x27, +// opcode: mop.r.19 ; op1:x18; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x27, x18, 0, -0x80000000, x2, 16*XLEN/8, x3) + +inst_17: +// rs1==x10, rd==x31, +// opcode: mop.r.19 ; op1:x10; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x31, x10, 0, -0x80000000, x2, 17*XLEN/8, x3) + +inst_18: +// rs1==x12, rd==x19, +// opcode: mop.r.19 ; op1:x12; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x19, x12, 0, -0x80000000, x2, 18*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_19: +// rs1==x6, rd==x13, +// opcode: mop.r.19 ; op1:x6; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x13, x6, 0, -0x80000000, x1, 0*XLEN/8, x4) + +inst_20: +// rs1==x20, rd==x22, +// opcode: mop.r.19 ; op1:x20; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x22, x20, 0, -0x80000000, x1, 1*XLEN/8, x4) + +inst_21: +// rs1==x30, rd==x8, +// opcode: mop.r.19 ; op1:x30; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x8, x30, 0, -0x80000000, x1, 2*XLEN/8, x4) + +inst_22: +// rs1==x16, rd==x18, +// opcode: mop.r.19 ; op1:x16; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x18, x16, 0, -0x80000000, x1, 3*XLEN/8, x4) + +inst_23: +// rs1==x25, rd==x21, +// opcode: mop.r.19 ; op1:x25; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x21, x25, 0, -0x80000000, x1, 4*XLEN/8, x4) + +inst_24: +// rs1==x7, rd==x23, +// opcode: mop.r.19 ; op1:x7; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x23, x7, 0, -0x80000000, x1, 5*XLEN/8, x4) + +inst_25: +// rs1==x2, rd==x14, +// opcode: mop.r.19 ; op1:x2; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x14, x2, 0, -0x80000000, x1, 6*XLEN/8, x4) + +inst_26: +// rs1==x3, rd==x17, +// opcode: mop.r.19 ; op1:x3; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x17, x3, 0, -0x80000000, x1, 7*XLEN/8, x4) + +inst_27: +// rs1==x13, rd==x10, +// opcode: mop.r.19 ; op1:x13; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x10, x13, 0, -0x80000000, x1, 8*XLEN/8, x4) + +inst_28: +// rs1==x19, rd==x9, +// opcode: mop.r.19 ; op1:x19; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x9, x19, 0, -0x80000000, x1, 9*XLEN/8, x4) + +inst_29: +// rs1==x0, rd==x12, +// opcode: mop.r.19 ; op1:x0; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x12, x0, 0, 0x0, x1, 10*XLEN/8, x4) + +inst_30: +// rs1==x17, rd==x2, +// opcode: mop.r.19 ; op1:x17; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x2, x17, 0, -0x80000000, x1, 11*XLEN/8, x4) + +inst_31: +// rs1==x24, rd==x3, +// opcode: mop.r.19 ; op1:x24; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.19, x3, x24, 0, -0x80000000, x1, 12*XLEN/8, x4) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.19 ; op1:x30; dest:x31; op1val:-0x8; immval:0x7ff +TEST_R_OP( mop.r.19, x31, x30, 0, -0x8, x1, 13*XLEN/8, x4) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 14*((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/Zimop/src/mop.r.2-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.2-01.S new file mode 100644 index 000000000..377345efa --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.2-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.2 instruction of the RISC-V RV32Zimop extension for the mop.r.2 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.2) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rs1==x12, rd==x12, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.2 ; op1:x12; dest:x12; op1val:-0x4; immval:-0x800 +TEST_R_OP( mop.r.2, x12, x12, 0, -0x4, x1, 0*XLEN/8, x16) + +inst_1: +// rs1 != rd, rs1==x5, rd==x15, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.2 ; op1:x5; dest:x15; op1val:0x1000; immval:0x7ff +TEST_R_OP( mop.r.2, x15, x5, 0, 0x1000, x1, 1*XLEN/8, x16) + +inst_2: +// rs1==x13, rd==x11, imm_val == 0, +// opcode: mop.r.2 ; op1:x13; dest:x11; op1val:-0x7; immval:0x0 +TEST_R_OP( mop.r.2, x11, x13, 0, -0x7, x1, 2*XLEN/8, x16) + +inst_3: +// rs1==x22, rd==x21, imm_val == 1, +// opcode: mop.r.2 ; op1:x22; dest:x21; op1val:0xb504; immval:0x1 +TEST_R_OP( mop.r.2, x21, x22, 0, 0xb504, x1, 3*XLEN/8, x16) + +inst_4: +// rs1==x15, rd==x27, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.2 ; op1:x15; dest:x27; op1val:-0xb503; immval:0x40 +TEST_R_OP( mop.r.2, x27, x15, 0, -0xb503, x1, 4*XLEN/8, x16) + +inst_5: +// rs1==x31, rd==x9, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.2 ; op1:x31; dest:x9; op1val:-0x80000000; immval:-0x101 +TEST_R_OP( mop.r.2, x9, x31, 0, -0x80000000, x1, 5*XLEN/8, x16) + +inst_6: +// rs1==x30, rd==x20, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.2 ; op1:x30; dest:x20; op1val:0x7fffffff; immval:0x20 +TEST_R_OP( mop.r.2, x20, x30, 0, 0x7fffffff, x1, 6*XLEN/8, x16) + +inst_7: +// rs1==x11, rd==x7, rs1_val == 0, +// opcode: mop.r.2 ; op1:x11; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x7, x11, 0, 0x0, x1, 7*XLEN/8, x16) + +inst_8: +// rs1==x6, rd==x3, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.2 ; op1:x6; dest:x3; op1val:0x1; immval:-0x555 +TEST_R_OP( mop.r.2, x3, x6, 0, 0x1, x1, 8*XLEN/8, x16) + +inst_9: +// rs1==x29, rd==x22, rs1_val == imm_val, +// opcode: mop.r.2 ; op1:x29; dest:x22; op1val:0x100; immval:0x100 +TEST_R_OP( mop.r.2, x22, x29, 0, 0x100, x1, 9*XLEN/8, x16) + +inst_10: +// rs1==x25, rd==x31, +// opcode: mop.r.2 ; op1:x25; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x31, x25, 0, -0x80000000, x1, 10*XLEN/8, x16) + +inst_11: +// rs1==x23, rd==x26, +// opcode: mop.r.2 ; op1:x23; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x26, x23, 0, -0x80000000, x1, 11*XLEN/8, x16) + +inst_12: +// rs1==x0, rd==x14, +// opcode: mop.r.2 ; op1:x0; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x14, x0, 0, 0x0, x1, 12*XLEN/8, x16) + +inst_13: +// rs1==x10, rd==x17, +// opcode: mop.r.2 ; op1:x10; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x17, x10, 0, -0x80000000, x1, 13*XLEN/8, x16) + +inst_14: +// rs1==x2, rd==x29, +// opcode: mop.r.2 ; op1:x2; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x29, x2, 0, -0x80000000, x1, 14*XLEN/8, x16) + +inst_15: +// rs1==x17, rd==x4, +// opcode: mop.r.2 ; op1:x17; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x4, x17, 0, -0x80000000, x1, 15*XLEN/8, x16) + +inst_16: +// rs1==x19, rd==x8, +// opcode: mop.r.2 ; op1:x19; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x8, x19, 0, -0x80000000, x1, 16*XLEN/8, x16) + +inst_17: +// rs1==x21, rd==x28, +// opcode: mop.r.2 ; op1:x21; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x28, x21, 0, -0x80000000, x1, 17*XLEN/8, x12) +RVTEST_SIGBASE(x11,signature_x11_0) + +inst_18: +// rs1==x16, rd==x10, +// opcode: mop.r.2 ; op1:x16; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x10, x16, 0, -0x80000000, x11, 0*XLEN/8, x12) + +inst_19: +// rs1==x28, rd==x30, +// opcode: mop.r.2 ; op1:x28; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x30, x28, 0, -0x80000000, x11, 1*XLEN/8, x12) + +inst_20: +// rs1==x24, rd==x13, +// opcode: mop.r.2 ; op1:x24; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x13, x24, 0, -0x80000000, x11, 2*XLEN/8, x12) + +inst_21: +// rs1==x9, rd==x24, +// opcode: mop.r.2 ; op1:x9; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x24, x9, 0, -0x80000000, x11, 3*XLEN/8, x12) + +inst_22: +// rs1==x4, rd==x25, +// opcode: mop.r.2 ; op1:x4; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x25, x4, 0, -0x80000000, x11, 4*XLEN/8, x12) + +inst_23: +// rs1==x18, rd==x5, +// opcode: mop.r.2 ; op1:x18; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x5, x18, 0, -0x80000000, x11, 5*XLEN/8, x12) + +inst_24: +// rs1==x20, rd==x18, +// opcode: mop.r.2 ; op1:x20; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x18, x20, 0, -0x80000000, x11, 6*XLEN/8, x12) + +inst_25: +// rs1==x14, rd==x16, +// opcode: mop.r.2 ; op1:x14; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x16, x14, 0, -0x80000000, x11, 7*XLEN/8, x12) + +inst_26: +// rs1==x7, rd==x2, +// opcode: mop.r.2 ; op1:x7; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x2, x7, 0, -0x80000000, x11, 8*XLEN/8, x12) + +inst_27: +// rs1==x27, rd==x19, +// opcode: mop.r.2 ; op1:x27; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x19, x27, 0, -0x80000000, x11, 9*XLEN/8, x12) + +inst_28: +// rs1==x1, rd==x23, +// opcode: mop.r.2 ; op1:x1; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x23, x1, 0, -0x80000000, x11, 10*XLEN/8, x12) + +inst_29: +// rs1==x26, rd==x1, +// opcode: mop.r.2 ; op1:x26; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x1, x26, 0, -0x80000000, x11, 11*XLEN/8, x12) + +inst_30: +// rs1==x8, rd==x0, +// opcode: mop.r.2 ; op1:x8; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x0, x8, 0, -0x80000000, x11, 12*XLEN/8, x12) + +inst_31: +// rs1==x3, rd==x6, +// opcode: mop.r.2 ; op1:x3; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.2, x6, x3, 0, -0x80000000, x11, 13*XLEN/8, x12) +#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 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x11_0: + .fill 14*((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/Zimop/src/mop.r.20-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.20-01.S new file mode 100644 index 000000000..2e6746516 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.20-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.20 instruction of the RISC-V RV32Zimop extension for the mop.r.20 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.20) + +RVTEST_SIGBASE(x16,signature_x16_1) + +inst_0: +// rs1 == rd, rs1==x10, rd==x10, imm_val == (-2**(12-1)), rs1_val == (2**(xlen-1)-1), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.20 ; op1:x10; dest:x10; op1val:0x7fffffff; immval:-0x800 +TEST_R_OP( mop.r.20, x10, x10, 0, 0x7fffffff, x16, 0*XLEN/8, x15) + +inst_1: +// rs1 != rd, rs1==x19, rd==x9, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.20 ; op1:x19; dest:x9; op1val:-0x80001; immval:0x7ff +TEST_R_OP( mop.r.20, x9, x19, 0, -0x80001, x16, 1*XLEN/8, x15) + +inst_2: +// rs1==x13, rd==x23, imm_val == 0, +// opcode: mop.r.20 ; op1:x13; dest:x23; op1val:0x6; immval:0x0 +TEST_R_OP( mop.r.20, x23, x13, 0, 0x6, x16, 2*XLEN/8, x15) + +inst_3: +// rs1==x21, rd==x13, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.20 ; op1:x21; dest:x13; op1val:0x10000; immval:0x1 +TEST_R_OP( mop.r.20, x13, x21, 0, 0x10000, x16, 3*XLEN/8, x15) + +inst_4: +// rs1==x25, rd==x5, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.20 ; op1:x25; dest:x5; op1val:-0x10000001; immval:-0x201 +TEST_R_OP( mop.r.20, x5, x25, 0, -0x10000001, x16, 4*XLEN/8, x15) + +inst_5: +// rs1==x7, rd==x2, rs1_val == 0, +// opcode: mop.r.20 ; op1:x7; dest:x2; op1val:0x0; immval:0x3 +TEST_R_OP( mop.r.20, x2, x7, 0, 0x0, x16, 5*XLEN/8, x15) + +inst_6: +// rs1==x24, rd==x19, rs1_val == 1, +// opcode: mop.r.20 ; op1:x24; dest:x19; op1val:0x1; immval:-0x556 +TEST_R_OP( mop.r.20, x19, x24, 0, 0x1, x16, 6*XLEN/8, x15) + +inst_7: +// rs1==x12, rd==x0, rs1_val == imm_val, +// opcode: mop.r.20 ; op1:x12; dest:x0; op1val:0x2; immval:0x2 +TEST_R_OP( mop.r.20, x0, x12, 0, 0x2, x16, 7*XLEN/8, x15) + +inst_8: +// rs1==x20, rd==x26, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.20 ; op1:x20; dest:x26; op1val:-0x80000000; immval:0x665 +TEST_R_OP( mop.r.20, x26, x20, 0, -0x80000000, x16, 8*XLEN/8, x15) + +inst_9: +// rs1==x22, rd==x28, +// opcode: mop.r.20 ; op1:x22; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x28, x22, 0, -0x80000000, x16, 9*XLEN/8, x15) + +inst_10: +// rs1==x8, rd==x31, +// opcode: mop.r.20 ; op1:x8; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x31, x8, 0, -0x80000000, x16, 10*XLEN/8, x15) + +inst_11: +// rs1==x18, rd==x7, +// opcode: mop.r.20 ; op1:x18; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x7, x18, 0, -0x80000000, x16, 11*XLEN/8, x15) + +inst_12: +// rs1==x3, rd==x25, +// opcode: mop.r.20 ; op1:x3; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x25, x3, 0, -0x80000000, x16, 12*XLEN/8, x15) + +inst_13: +// rs1==x4, rd==x21, +// opcode: mop.r.20 ; op1:x4; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x21, x4, 0, -0x80000000, x16, 13*XLEN/8, x15) + +inst_14: +// rs1==x1, rd==x24, +// opcode: mop.r.20 ; op1:x1; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x24, x1, 0, -0x80000000, x16, 14*XLEN/8, x15) + +inst_15: +// rs1==x14, rd==x11, +// opcode: mop.r.20 ; op1:x14; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x11, x14, 0, -0x80000000, x16, 15*XLEN/8, x15) + +inst_16: +// rs1==x9, rd==x6, +// opcode: mop.r.20 ; op1:x9; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x6, x9, 0, -0x80000000, x16, 16*XLEN/8, x15) + +inst_17: +// rs1==x30, rd==x18, +// opcode: mop.r.20 ; op1:x30; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x18, x30, 0, -0x80000000, x16, 17*XLEN/8, x15) + +inst_18: +// rs1==x26, rd==x14, +// opcode: mop.r.20 ; op1:x26; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x14, x26, 0, -0x80000000, x16, 18*XLEN/8, x9) + +inst_19: +// rs1==x11, rd==x15, +// opcode: mop.r.20 ; op1:x11; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x15, x11, 0, -0x80000000, x16, 19*XLEN/8, x9) +RVTEST_SIGBASE(x7,signature_x7_0) + +inst_20: +// rs1==x0, rd==x30, +// opcode: mop.r.20 ; op1:x0; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x30, x0, 0, 0x0, x7, 0*XLEN/8, x9) + +inst_21: +// rs1==x27, rd==x20, +// opcode: mop.r.20 ; op1:x27; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x20, x27, 0, -0x80000000, x7, 1*XLEN/8, x9) + +inst_22: +// rs1==x16, rd==x29, +// opcode: mop.r.20 ; op1:x16; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x29, x16, 0, -0x80000000, x7, 2*XLEN/8, x9) + +inst_23: +// rs1==x29, rd==x27, +// opcode: mop.r.20 ; op1:x29; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x27, x29, 0, -0x80000000, x7, 3*XLEN/8, x9) + +inst_24: +// rs1==x31, rd==x12, +// opcode: mop.r.20 ; op1:x31; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x12, x31, 0, -0x80000000, x7, 4*XLEN/8, x9) + +inst_25: +// rs1==x28, rd==x8, +// opcode: mop.r.20 ; op1:x28; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x8, x28, 0, -0x80000000, x7, 5*XLEN/8, x9) + +inst_26: +// rs1==x6, rd==x17, +// opcode: mop.r.20 ; op1:x6; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x17, x6, 0, -0x80000000, x7, 6*XLEN/8, x9) + +inst_27: +// rs1==x5, rd==x22, +// opcode: mop.r.20 ; op1:x5; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x22, x5, 0, -0x80000000, x7, 7*XLEN/8, x9) + +inst_28: +// rs1==x15, rd==x3, +// opcode: mop.r.20 ; op1:x15; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x3, x15, 0, -0x80000000, x7, 8*XLEN/8, x9) + +inst_29: +// rs1==x2, rd==x4, +// opcode: mop.r.20 ; op1:x2; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x4, x2, 0, -0x80000000, x7, 9*XLEN/8, x9) + +inst_30: +// rs1==x17, rd==x16, +// opcode: mop.r.20 ; op1:x17; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x16, x17, 0, -0x80000000, x7, 10*XLEN/8, x9) + +inst_31: +// rs1==x23, rd==x1, +// opcode: mop.r.20 ; op1:x23; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.20, x1, x23, 0, -0x80000000, x7, 11*XLEN/8, x9) + +inst_32: +// rs1_val == imm_val, +// opcode: mop.r.20 ; op1:x30; dest:x31; op1val:0x2; immval:0x2 +TEST_R_OP( mop.r.20, x31, x30, 0, 0x2, x7, 12*XLEN/8, x9) +#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_x16_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x16_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_0: + .fill 13*((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/Zimop/src/mop.r.21-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.21-01.S new file mode 100644 index 000000000..78217cf4b --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.21-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.21 instruction of the RISC-V RV32Zimop extension for the mop.r.21 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.21) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd, rs1==x2, rd==x2, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.21 ; op1:x2; dest:x2; op1val:-0x200001; immval:-0x800 +TEST_R_OP( mop.r.21, x2, x2, 0, -0x200001, x6, 0*XLEN/8, x5) + +inst_1: +// rs1 != rd, rs1==x16, rd==x4, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.21 ; op1:x16; dest:x4; op1val:0x2000; immval:0x7ff +TEST_R_OP( mop.r.21, x4, x16, 0, 0x2000, x6, 1*XLEN/8, x5) + +inst_2: +// rs1==x21, rd==x13, imm_val == 0, +// opcode: mop.r.21 ; op1:x21; dest:x13; op1val:-0x2001; immval:0x0 +TEST_R_OP( mop.r.21, x13, x21, 0, -0x2001, x6, 2*XLEN/8, x5) + +inst_3: +// rs1==x22, rd==x29, imm_val == 1, +// opcode: mop.r.21 ; op1:x22; dest:x29; op1val:0x5; immval:0x1 +TEST_R_OP( mop.r.21, x29, x22, 0, 0x5, x6, 3*XLEN/8, x5) + +inst_4: +// rs1==x23, rd==x27, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.21 ; op1:x23; dest:x27; op1val:-0x1; immval:0x3ff +TEST_R_OP( mop.r.21, x27, x23, 0, -0x1, x6, 4*XLEN/8, x5) + +inst_5: +// rs1==x0, rd==x7, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.21 ; op1:x0; dest:x7; op1val:0x0; immval:0x8 +TEST_R_OP( mop.r.21, x7, x0, 0, 0x0, x6, 5*XLEN/8, x5) + +inst_6: +// rs1==x12, rd==x16, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.21 ; op1:x12; dest:x16; op1val:0x7fffffff; immval:0x333 +TEST_R_OP( mop.r.21, x16, x12, 0, 0x7fffffff, x6, 6*XLEN/8, x5) + +inst_7: +// rs1==x14, rd==x24, rs1_val == 0, +// opcode: mop.r.21 ; op1:x14; dest:x24; op1val:0x0; immval:0x555 +TEST_R_OP( mop.r.21, x24, x14, 0, 0x0, x6, 7*XLEN/8, x5) + +inst_8: +// rs1==x9, rd==x28, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.21 ; op1:x9; dest:x28; op1val:0x1; immval:-0x101 +TEST_R_OP( mop.r.21, x28, x9, 0, 0x1, x6, 8*XLEN/8, x5) + +inst_9: +// rs1==x3, rd==x17, rs1_val == imm_val, +// opcode: mop.r.21 ; op1:x3; dest:x17; op1val:-0x81; immval:-0x81 +TEST_R_OP( mop.r.21, x17, x3, 0, -0x81, x6, 9*XLEN/8, x5) + +inst_10: +// rs1==x10, rd==x19, +// opcode: mop.r.21 ; op1:x10; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x19, x10, 0, -0x80000000, x6, 10*XLEN/8, x5) + +inst_11: +// rs1==x1, rd==x14, +// opcode: mop.r.21 ; op1:x1; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x14, x1, 0, -0x80000000, x6, 11*XLEN/8, x5) + +inst_12: +// rs1==x31, rd==x11, +// opcode: mop.r.21 ; op1:x31; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x11, x31, 0, -0x80000000, x6, 12*XLEN/8, x5) + +inst_13: +// rs1==x28, rd==x18, +// opcode: mop.r.21 ; op1:x28; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x18, x28, 0, -0x80000000, x6, 13*XLEN/8, x5) + +inst_14: +// rs1==x29, rd==x23, +// opcode: mop.r.21 ; op1:x29; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x23, x29, 0, -0x80000000, x6, 14*XLEN/8, x5) + +inst_15: +// rs1==x17, rd==x9, +// opcode: mop.r.21 ; op1:x17; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x9, x17, 0, -0x80000000, x6, 15*XLEN/8, x5) + +inst_16: +// rs1==x8, rd==x21, +// opcode: mop.r.21 ; op1:x8; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x21, x8, 0, -0x80000000, x6, 16*XLEN/8, x5) + +inst_17: +// rs1==x18, rd==x12, +// opcode: mop.r.21 ; op1:x18; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x12, x18, 0, -0x80000000, x6, 17*XLEN/8, x5) + +inst_18: +// rs1==x20, rd==x22, +// opcode: mop.r.21 ; op1:x20; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x22, x20, 0, -0x80000000, x6, 18*XLEN/8, x5) + +inst_19: +// rs1==x30, rd==x10, +// opcode: mop.r.21 ; op1:x30; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x10, x30, 0, -0x80000000, x6, 19*XLEN/8, x5) + +inst_20: +// rs1==x4, rd==x5, +// opcode: mop.r.21 ; op1:x4; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x5, x4, 0, -0x80000000, x6, 20*XLEN/8, x9) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_21: +// rs1==x6, rd==x0, +// opcode: mop.r.21 ; op1:x6; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x0, x6, 0, -0x80000000, x2, 0*XLEN/8, x9) + +inst_22: +// rs1==x26, rd==x6, +// opcode: mop.r.21 ; op1:x26; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x6, x26, 0, -0x80000000, x2, 1*XLEN/8, x9) + +inst_23: +// rs1==x11, rd==x30, +// opcode: mop.r.21 ; op1:x11; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x30, x11, 0, -0x80000000, x2, 2*XLEN/8, x9) + +inst_24: +// rs1==x5, rd==x20, +// opcode: mop.r.21 ; op1:x5; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x20, x5, 0, -0x80000000, x2, 3*XLEN/8, x9) + +inst_25: +// rs1==x24, rd==x31, +// opcode: mop.r.21 ; op1:x24; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x31, x24, 0, -0x80000000, x2, 4*XLEN/8, x9) + +inst_26: +// rs1==x13, rd==x15, +// opcode: mop.r.21 ; op1:x13; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x15, x13, 0, -0x80000000, x2, 5*XLEN/8, x9) + +inst_27: +// rs1==x25, rd==x8, +// opcode: mop.r.21 ; op1:x25; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x8, x25, 0, -0x80000000, x2, 6*XLEN/8, x9) + +inst_28: +// rs1==x15, rd==x26, +// opcode: mop.r.21 ; op1:x15; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x26, x15, 0, -0x80000000, x2, 7*XLEN/8, x9) + +inst_29: +// rs1==x27, rd==x3, +// opcode: mop.r.21 ; op1:x27; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x3, x27, 0, -0x80000000, x2, 8*XLEN/8, x9) + +inst_30: +// rs1==x7, rd==x25, +// opcode: mop.r.21 ; op1:x7; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x25, x7, 0, -0x80000000, x2, 9*XLEN/8, x9) + +inst_31: +// rs1==x19, rd==x1, +// opcode: mop.r.21 ; op1:x19; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.21, x1, x19, 0, -0x80000000, x2, 10*XLEN/8, x9) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 11*((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/Zimop/src/mop.r.22-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.22-01.S new file mode 100644 index 000000000..2204f7739 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.22-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.22 instruction of the RISC-V RV32Zimop extension for the mop.r.22 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.22) + +RVTEST_SIGBASE(x4,signature_x4_1) + +inst_0: +// rs1 == rd, rs1==x25, rd==x25, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.22 ; op1:x25; dest:x25; op1val:-0x21; immval:-0x800 +TEST_R_OP( mop.r.22, x25, x25, 0, -0x21, x4, 0*XLEN/8, x5) + +inst_1: +// rs1 != rd, rs1==x15, rd==x19, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.22 ; op1:x15; dest:x19; op1val:-0x10000001; immval:0x7ff +TEST_R_OP( mop.r.22, x19, x15, 0, -0x10000001, x4, 1*XLEN/8, x5) + +inst_2: +// rs1==x21, rd==x27, imm_val == 0, +// opcode: mop.r.22 ; op1:x21; dest:x27; op1val:0xb505; immval:0x0 +TEST_R_OP( mop.r.22, x27, x21, 0, 0xb505, x4, 2*XLEN/8, x5) + +inst_3: +// rs1==x17, rd==x7, imm_val == 1, rs1_val == 0 +// opcode: mop.r.22 ; op1:x17; dest:x7; op1val:0x0; immval:0x1 +TEST_R_OP( mop.r.22, x7, x17, 0, 0x0, x4, 3*XLEN/8, x5) + +inst_4: +// rs1==x20, rd==x1, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.22 ; op1:x20; dest:x1; op1val:-0x80000000; immval:0x667 +TEST_R_OP( mop.r.22, x1, x20, 0, -0x80000000, x4, 4*XLEN/8, x5) + +inst_5: +// rs1==x29, rd==x0, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.22 ; op1:x29; dest:x0; op1val:0x7fffffff; immval:0x5 +TEST_R_OP( mop.r.22, x0, x29, 0, 0x7fffffff, x4, 5*XLEN/8, x5) + +inst_6: +// rs1==x1, rd==x29, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.22 ; op1:x1; dest:x29; op1val:0x1; immval:-0x3 +TEST_R_OP( mop.r.22, x29, x1, 0, 0x1, x4, 6*XLEN/8, x5) + +inst_7: +// rs1==x13, rd==x30, rs1_val == imm_val, +// opcode: mop.r.22 ; op1:x13; dest:x30; op1val:0x7; immval:0x7 +TEST_R_OP( mop.r.22, x30, x13, 0, 0x7, x4, 7*XLEN/8, x5) + +inst_8: +// rs1==x7, rd==x17, +// opcode: mop.r.22 ; op1:x7; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x17, x7, 0, -0x80000000, x4, 8*XLEN/8, x5) + +inst_9: +// rs1==x6, rd==x3, +// opcode: mop.r.22 ; op1:x6; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x3, x6, 0, -0x80000000, x4, 9*XLEN/8, x5) + +inst_10: +// rs1==x0, rd==x31, +// opcode: mop.r.22 ; op1:x0; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x31, x0, 0, 0x0, x4, 10*XLEN/8, x5) + +inst_11: +// rs1==x10, rd==x15, +// opcode: mop.r.22 ; op1:x10; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x15, x10, 0, -0x80000000, x4, 11*XLEN/8, x5) + +inst_12: +// rs1==x12, rd==x16, +// opcode: mop.r.22 ; op1:x12; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x16, x12, 0, -0x80000000, x4, 12*XLEN/8, x5) + +inst_13: +// rs1==x9, rd==x2, +// opcode: mop.r.22 ; op1:x9; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x2, x9, 0, -0x80000000, x4, 13*XLEN/8, x5) + +inst_14: +// rs1==x11, rd==x12, +// opcode: mop.r.22 ; op1:x11; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x12, x11, 0, -0x80000000, x4, 14*XLEN/8, x5) + +inst_15: +// rs1==x19, rd==x20, +// opcode: mop.r.22 ; op1:x19; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x20, x19, 0, -0x80000000, x4, 15*XLEN/8, x5) + +inst_16: +// rs1==x2, rd==x21, +// opcode: mop.r.22 ; op1:x2; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x21, x2, 0, -0x80000000, x4, 16*XLEN/8, x5) + +inst_17: +// rs1==x31, rd==x18, +// opcode: mop.r.22 ; op1:x31; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x18, x31, 0, -0x80000000, x4, 17*XLEN/8, x5) + +inst_18: +// rs1==x3, rd==x22, +// opcode: mop.r.22 ; op1:x3; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x22, x3, 0, -0x80000000, x4, 18*XLEN/8, x5) + +inst_19: +// rs1==x24, rd==x26, +// opcode: mop.r.22 ; op1:x24; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x26, x24, 0, -0x80000000, x4, 19*XLEN/8, x5) + +inst_20: +// rs1==x23, rd==x6, +// opcode: mop.r.22 ; op1:x23; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x6, x23, 0, -0x80000000, x4, 20*XLEN/8, x5) + +inst_21: +// rs1==x28, rd==x5, +// opcode: mop.r.22 ; op1:x28; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x5, x28, 0, -0x80000000, x4, 21*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_22: +// rs1==x8, rd==x24, +// opcode: mop.r.22 ; op1:x8; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x24, x8, 0, -0x80000000, x1, 0*XLEN/8, x2) + +inst_23: +// rs1==x5, rd==x9, +// opcode: mop.r.22 ; op1:x5; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x9, x5, 0, -0x80000000, x1, 1*XLEN/8, x2) + +inst_24: +// rs1==x27, rd==x14, +// opcode: mop.r.22 ; op1:x27; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x14, x27, 0, -0x80000000, x1, 2*XLEN/8, x2) + +inst_25: +// rs1==x22, rd==x11, +// opcode: mop.r.22 ; op1:x22; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x11, x22, 0, -0x80000000, x1, 3*XLEN/8, x2) + +inst_26: +// rs1==x4, rd==x28, +// opcode: mop.r.22 ; op1:x4; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x28, x4, 0, -0x80000000, x1, 4*XLEN/8, x2) + +inst_27: +// rs1==x18, rd==x8, +// opcode: mop.r.22 ; op1:x18; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x8, x18, 0, -0x80000000, x1, 5*XLEN/8, x2) + +inst_28: +// rs1==x16, rd==x13, +// opcode: mop.r.22 ; op1:x16; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x13, x16, 0, -0x80000000, x1, 6*XLEN/8, x2) + +inst_29: +// rs1==x30, rd==x4, +// opcode: mop.r.22 ; op1:x30; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x4, x30, 0, -0x80000000, x1, 7*XLEN/8, x2) + +inst_30: +// rs1==x26, rd==x23, +// opcode: mop.r.22 ; op1:x26; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x23, x26, 0, -0x80000000, x1, 8*XLEN/8, x2) + +inst_31: +// rs1==x14, rd==x10, +// opcode: mop.r.22 ; op1:x14; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.22, x10, x14, 0, -0x80000000, x1, 9*XLEN/8, x2) + +inst_32: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.22 ; op1:x30; dest:x31; op1val:0x7fffffff; immval:0x5 +TEST_R_OP( mop.r.22, x31, x30, 0, 0x7fffffff, x1, 10*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_x4_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 11*((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/Zimop/src/mop.r.23-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.23-01.S new file mode 100644 index 000000000..b38061b2f --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.23-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.23 instruction of the RISC-V RV32Zimop extension for the mop.r.23 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.23) + +RVTEST_SIGBASE(x5,signature_x5_1) + +inst_0: +// rs1 == rd, rs1==x1, rd==x1, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.23 ; op1:x1; dest:x1; op1val:-0x2001; immval:-0x800 +TEST_R_OP( mop.r.23, x1, x1, 0, -0x2001, x5, 0*XLEN/8, x11) + +inst_1: +// rs1 != rd, rs1==x21, rd==x0, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.23 ; op1:x21; dest:x0; op1val:0x2; immval:0x7ff +TEST_R_OP( mop.r.23, x0, x21, 0, 0x2, x5, 1*XLEN/8, x11) + +inst_2: +// rs1==x31, rd==x25, imm_val == 0, +// opcode: mop.r.23 ; op1:x31; dest:x25; op1val:0x5; immval:0x0 +TEST_R_OP( mop.r.23, x25, x31, 0, 0x5, x5, 2*XLEN/8, x11) + +inst_3: +// rs1==x25, rd==x24, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.23 ; op1:x25; dest:x24; op1val:-0x10000001; immval:0x1 +TEST_R_OP( mop.r.23, x24, x25, 0, -0x10000001, x5, 3*XLEN/8, x11) + +inst_4: +// rs1==x14, rd==x22, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.23 ; op1:x14; dest:x22; op1val:-0x80000000; immval:0x556 +TEST_R_OP( mop.r.23, x22, x14, 0, -0x80000000, x5, 4*XLEN/8, x11) + +inst_5: +// rs1==x19, rd==x10, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.23 ; op1:x19; dest:x10; op1val:0x7fffffff; immval:0x554 +TEST_R_OP( mop.r.23, x10, x19, 0, 0x7fffffff, x5, 5*XLEN/8, x11) + +inst_6: +// rs1==x6, rd==x26, rs1_val == 0, +// opcode: mop.r.23 ; op1:x6; dest:x26; op1val:0x0; immval:0x5 +TEST_R_OP( mop.r.23, x26, x6, 0, 0x0, x5, 6*XLEN/8, x11) + +inst_7: +// rs1==x15, rd==x4, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.23 ; op1:x15; dest:x4; op1val:0x1; immval:-0x9 +TEST_R_OP( mop.r.23, x4, x15, 0, 0x1, x5, 7*XLEN/8, x11) + +inst_8: +// rs1==x4, rd==x12, rs1_val == imm_val, +// opcode: mop.r.23 ; op1:x4; dest:x12; op1val:-0x101; immval:-0x101 +TEST_R_OP( mop.r.23, x12, x4, 0, -0x101, x5, 8*XLEN/8, x11) + +inst_9: +// rs1==x13, rd==x30, +// opcode: mop.r.23 ; op1:x13; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x30, x13, 0, -0x80000000, x5, 9*XLEN/8, x11) + +inst_10: +// rs1==x28, rd==x7, +// opcode: mop.r.23 ; op1:x28; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x7, x28, 0, -0x80000000, x5, 10*XLEN/8, x11) + +inst_11: +// rs1==x26, rd==x16, +// opcode: mop.r.23 ; op1:x26; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x16, x26, 0, -0x80000000, x5, 11*XLEN/8, x11) + +inst_12: +// rs1==x29, rd==x21, +// opcode: mop.r.23 ; op1:x29; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x21, x29, 0, -0x80000000, x5, 12*XLEN/8, x11) + +inst_13: +// rs1==x3, rd==x31, +// opcode: mop.r.23 ; op1:x3; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x31, x3, 0, -0x80000000, x5, 13*XLEN/8, x11) + +inst_14: +// rs1==x2, rd==x17, +// opcode: mop.r.23 ; op1:x2; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x17, x2, 0, -0x80000000, x5, 14*XLEN/8, x11) + +inst_15: +// rs1==x27, rd==x29, +// opcode: mop.r.23 ; op1:x27; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x29, x27, 0, -0x80000000, x5, 15*XLEN/8, x11) + +inst_16: +// rs1==x8, rd==x6, +// opcode: mop.r.23 ; op1:x8; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x6, x8, 0, -0x80000000, x5, 16*XLEN/8, x11) + +inst_17: +// rs1==x10, rd==x9, +// opcode: mop.r.23 ; op1:x10; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x9, x10, 0, -0x80000000, x5, 17*XLEN/8, x11) + +inst_18: +// rs1==x24, rd==x27, +// opcode: mop.r.23 ; op1:x24; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x27, x24, 0, -0x80000000, x5, 18*XLEN/8, x4) + +inst_19: +// rs1==x20, rd==x2, +// opcode: mop.r.23 ; op1:x20; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x2, x20, 0, -0x80000000, x5, 19*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_20: +// rs1==x0, rd==x8, +// opcode: mop.r.23 ; op1:x0; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x8, x0, 0, 0x0, x1, 0*XLEN/8, x4) + +inst_21: +// rs1==x18, rd==x14, +// opcode: mop.r.23 ; op1:x18; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x14, x18, 0, -0x80000000, x1, 1*XLEN/8, x4) + +inst_22: +// rs1==x22, rd==x13, +// opcode: mop.r.23 ; op1:x22; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x13, x22, 0, -0x80000000, x1, 2*XLEN/8, x4) + +inst_23: +// rs1==x9, rd==x23, +// opcode: mop.r.23 ; op1:x9; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x23, x9, 0, -0x80000000, x1, 3*XLEN/8, x4) + +inst_24: +// rs1==x7, rd==x19, +// opcode: mop.r.23 ; op1:x7; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x19, x7, 0, -0x80000000, x1, 4*XLEN/8, x4) + +inst_25: +// rs1==x17, rd==x20, +// opcode: mop.r.23 ; op1:x17; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x20, x17, 0, -0x80000000, x1, 5*XLEN/8, x4) + +inst_26: +// rs1==x11, rd==x3, +// opcode: mop.r.23 ; op1:x11; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x3, x11, 0, -0x80000000, x1, 6*XLEN/8, x4) + +inst_27: +// rs1==x23, rd==x18, +// opcode: mop.r.23 ; op1:x23; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x18, x23, 0, -0x80000000, x1, 7*XLEN/8, x4) + +inst_28: +// rs1==x12, rd==x5, +// opcode: mop.r.23 ; op1:x12; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x5, x12, 0, -0x80000000, x1, 8*XLEN/8, x4) + +inst_29: +// rs1==x16, rd==x11, +// opcode: mop.r.23 ; op1:x16; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x11, x16, 0, -0x80000000, x1, 9*XLEN/8, x4) + +inst_30: +// rs1==x5, rd==x15, +// opcode: mop.r.23 ; op1:x5; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x15, x5, 0, -0x80000000, x1, 10*XLEN/8, x4) + +inst_31: +// rs1==x30, rd==x28, +// opcode: mop.r.23 ; op1:x30; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.23, x28, x30, 0, -0x80000000, x1, 11*XLEN/8, x4) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.23 ; op1:x30; dest:x31; op1val:0x2; immval:0x7ff +TEST_R_OP( mop.r.23, x31, x30, 0, 0x2, x1, 12*XLEN/8, x4) +#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_x5_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 13*((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/Zimop/src/mop.r.24-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.24-01.S new file mode 100644 index 000000000..f3ca5d689 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.24-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.24 instruction of the RISC-V RV32Zimop extension for the mop.r.24 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.24) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd, rs1==x16, rd==x16, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.24 ; op1:x16; dest:x16; op1val:-0xa; immval:-0x800 +TEST_R_OP( mop.r.24, x16, x16, 0, -0xa, x6, 0*XLEN/8, x13) + +inst_1: +// rs1 != rd, rs1==x23, rd==x22, imm_val == (2**(12-1)-1), rs1_val == 0 +// opcode: mop.r.24 ; op1:x23; dest:x22; op1val:0x0; immval:0x7ff +TEST_R_OP( mop.r.24, x22, x23, 0, 0x0, x6, 1*XLEN/8, x13) + +inst_2: +// rs1==x30, rd==x2, imm_val == 0, +// opcode: mop.r.24 ; op1:x30; dest:x2; op1val:0x5; immval:0x0 +TEST_R_OP( mop.r.24, x2, x30, 0, 0x5, x6, 2*XLEN/8, x13) + +inst_3: +// rs1==x3, rd==x11, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.24 ; op1:x3; dest:x11; op1val:0xb504; immval:0x1 +TEST_R_OP( mop.r.24, x11, x3, 0, 0xb504, x6, 3*XLEN/8, x13) + +inst_4: +// rs1==x24, rd==x21, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.24 ; op1:x24; dest:x21; op1val:-0x8001; immval:0x333 +TEST_R_OP( mop.r.24, x21, x24, 0, -0x8001, x6, 4*XLEN/8, x13) + +inst_5: +// rs1==x7, rd==x20, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.24 ; op1:x7; dest:x20; op1val:-0x80000000; immval:0x333 +TEST_R_OP( mop.r.24, x20, x7, 0, -0x80000000, x6, 5*XLEN/8, x13) + +inst_6: +// rs1==x19, rd==x18, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.24 ; op1:x19; dest:x18; op1val:0x7fffffff; immval:-0x5 +TEST_R_OP( mop.r.24, x18, x19, 0, 0x7fffffff, x6, 6*XLEN/8, x13) + +inst_7: +// rs1==x25, rd==x24, rs1_val == 1, +// opcode: mop.r.24 ; op1:x25; dest:x24; op1val:0x1; immval:-0x2d +TEST_R_OP( mop.r.24, x24, x25, 0, 0x1, x6, 7*XLEN/8, x13) + +inst_8: +// rs1==x26, rd==x23, rs1_val == imm_val, +// opcode: mop.r.24 ; op1:x26; dest:x23; op1val:-0x201; immval:-0x201 +TEST_R_OP( mop.r.24, x23, x26, 0, -0x201, x6, 8*XLEN/8, x13) + +inst_9: +// rs1==x8, rd==x26, +// opcode: mop.r.24 ; op1:x8; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x26, x8, 0, -0x80000000, x6, 9*XLEN/8, x13) + +inst_10: +// rs1==x0, rd==x14, +// opcode: mop.r.24 ; op1:x0; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x14, x0, 0, 0x0, x6, 10*XLEN/8, x13) + +inst_11: +// rs1==x17, rd==x28, +// opcode: mop.r.24 ; op1:x17; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x28, x17, 0, -0x80000000, x6, 11*XLEN/8, x13) + +inst_12: +// rs1==x14, rd==x9, +// opcode: mop.r.24 ; op1:x14; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x9, x14, 0, -0x80000000, x6, 12*XLEN/8, x13) + +inst_13: +// rs1==x1, rd==x10, +// opcode: mop.r.24 ; op1:x1; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x10, x1, 0, -0x80000000, x6, 13*XLEN/8, x13) + +inst_14: +// rs1==x12, rd==x25, +// opcode: mop.r.24 ; op1:x12; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x25, x12, 0, -0x80000000, x6, 14*XLEN/8, x13) + +inst_15: +// rs1==x10, rd==x31, +// opcode: mop.r.24 ; op1:x10; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x31, x10, 0, -0x80000000, x6, 15*XLEN/8, x13) + +inst_16: +// rs1==x5, rd==x3, +// opcode: mop.r.24 ; op1:x5; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x3, x5, 0, -0x80000000, x6, 16*XLEN/8, x13) + +inst_17: +// rs1==x9, rd==x1, +// opcode: mop.r.24 ; op1:x9; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x1, x9, 0, -0x80000000, x6, 17*XLEN/8, x13) + +inst_18: +// rs1==x29, rd==x4, +// opcode: mop.r.24 ; op1:x29; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x4, x29, 0, -0x80000000, x6, 18*XLEN/8, x13) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_19: +// rs1==x2, rd==x5, +// opcode: mop.r.24 ; op1:x2; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x5, x2, 0, -0x80000000, x1, 0*XLEN/8, x3) + +inst_20: +// rs1==x13, rd==x0, +// opcode: mop.r.24 ; op1:x13; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x0, x13, 0, -0x80000000, x1, 1*XLEN/8, x3) + +inst_21: +// rs1==x20, rd==x13, +// opcode: mop.r.24 ; op1:x20; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x13, x20, 0, -0x80000000, x1, 2*XLEN/8, x3) + +inst_22: +// rs1==x27, rd==x30, +// opcode: mop.r.24 ; op1:x27; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x30, x27, 0, -0x80000000, x1, 3*XLEN/8, x3) + +inst_23: +// rs1==x31, rd==x27, +// opcode: mop.r.24 ; op1:x31; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x27, x31, 0, -0x80000000, x1, 4*XLEN/8, x3) + +inst_24: +// rs1==x18, rd==x6, +// opcode: mop.r.24 ; op1:x18; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x6, x18, 0, -0x80000000, x1, 5*XLEN/8, x3) + +inst_25: +// rs1==x22, rd==x29, +// opcode: mop.r.24 ; op1:x22; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x29, x22, 0, -0x80000000, x1, 6*XLEN/8, x3) + +inst_26: +// rs1==x11, rd==x17, +// opcode: mop.r.24 ; op1:x11; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x17, x11, 0, -0x80000000, x1, 7*XLEN/8, x3) + +inst_27: +// rs1==x15, rd==x7, +// opcode: mop.r.24 ; op1:x15; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x7, x15, 0, -0x80000000, x1, 8*XLEN/8, x3) + +inst_28: +// rs1==x21, rd==x15, +// opcode: mop.r.24 ; op1:x21; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x15, x21, 0, -0x80000000, x1, 9*XLEN/8, x3) + +inst_29: +// rs1==x4, rd==x12, +// opcode: mop.r.24 ; op1:x4; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x12, x4, 0, -0x80000000, x1, 10*XLEN/8, x3) + +inst_30: +// rs1==x6, rd==x19, +// opcode: mop.r.24 ; op1:x6; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x19, x6, 0, -0x80000000, x1, 11*XLEN/8, x3) + +inst_31: +// rs1==x28, rd==x8, +// opcode: mop.r.24 ; op1:x28; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.24, x8, x28, 0, -0x80000000, x1, 12*XLEN/8, x3) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 13*((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/Zimop/src/mop.r.25-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.25-01.S new file mode 100644 index 000000000..59d4cac0c --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.25-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.25 instruction of the RISC-V RV32Zimop extension for the mop.r.25 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.25) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rs1==x28, rd==x28, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.25 ; op1:x28; dest:x28; op1val:-0x2001; immval:-0x800 +TEST_R_OP( mop.r.25, x28, x28, 0, -0x2001, x1, 0*XLEN/8, x4) + +inst_1: +// rs1 != rd, rs1==x29, rd==x12, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.25 ; op1:x29; dest:x12; op1val:0x4000; immval:0x7ff +TEST_R_OP( mop.r.25, x12, x29, 0, 0x4000, x1, 1*XLEN/8, x4) + +inst_2: +// rs1==x23, rd==x20, imm_val == 0, +// opcode: mop.r.25 ; op1:x23; dest:x20; op1val:0x66666666; immval:0x0 +TEST_R_OP( mop.r.25, x20, x23, 0, 0x66666666, x1, 2*XLEN/8, x4) + +inst_3: +// rs1==x6, rd==x25, imm_val == 1, rs1_val == 0 +// opcode: mop.r.25 ; op1:x6; dest:x25; op1val:0x0; immval:0x1 +TEST_R_OP( mop.r.25, x25, x6, 0, 0x0, x1, 3*XLEN/8, x4) + +inst_4: +// rs1==x31, rd==x8, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.25 ; op1:x31; dest:x8; op1val:-0x10001; immval:0x2e +TEST_R_OP( mop.r.25, x8, x31, 0, -0x10001, x1, 4*XLEN/8, x4) + +inst_5: +// rs1==x25, rd==x14, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.25 ; op1:x25; dest:x14; op1val:-0x80000000; immval:-0x2c +TEST_R_OP( mop.r.25, x14, x25, 0, -0x80000000, x1, 5*XLEN/8, x4) + +inst_6: +// rs1==x8, rd==x2, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.25 ; op1:x8; dest:x2; op1val:0x7fffffff; immval:0x9 +TEST_R_OP( mop.r.25, x2, x8, 0, 0x7fffffff, x1, 6*XLEN/8, x4) + +inst_7: +// rs1==x12, rd==x27, rs1_val == 1, +// opcode: mop.r.25 ; op1:x12; dest:x27; op1val:0x1; immval:0x5 +TEST_R_OP( mop.r.25, x27, x12, 0, 0x1, x1, 7*XLEN/8, x4) + +inst_8: +// rs1==x18, rd==x0, rs1_val == imm_val, +// opcode: mop.r.25 ; op1:x18; dest:x0; op1val:0x80; immval:0x80 +TEST_R_OP( mop.r.25, x0, x18, 0, 0x80, x1, 8*XLEN/8, x4) + +inst_9: +// rs1==x5, rd==x7, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.25 ; op1:x5; dest:x7; op1val:0x6; immval:-0x21 +TEST_R_OP( mop.r.25, x7, x5, 0, 0x6, x1, 9*XLEN/8, x4) + +inst_10: +// rs1==x20, rd==x3, +// opcode: mop.r.25 ; op1:x20; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x3, x20, 0, -0x80000000, x1, 10*XLEN/8, x4) + +inst_11: +// rs1==x17, rd==x29, +// opcode: mop.r.25 ; op1:x17; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x29, x17, 0, -0x80000000, x1, 11*XLEN/8, x4) + +inst_12: +// rs1==x16, rd==x10, +// opcode: mop.r.25 ; op1:x16; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x10, x16, 0, -0x80000000, x1, 12*XLEN/8, x4) + +inst_13: +// rs1==x9, rd==x6, +// opcode: mop.r.25 ; op1:x9; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x6, x9, 0, -0x80000000, x1, 13*XLEN/8, x4) + +inst_14: +// rs1==x21, rd==x18, +// opcode: mop.r.25 ; op1:x21; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x18, x21, 0, -0x80000000, x1, 14*XLEN/8, x4) + +inst_15: +// rs1==x11, rd==x31, +// opcode: mop.r.25 ; op1:x11; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x31, x11, 0, -0x80000000, x1, 15*XLEN/8, x4) + +inst_16: +// rs1==x13, rd==x22, +// opcode: mop.r.25 ; op1:x13; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x22, x13, 0, -0x80000000, x1, 16*XLEN/8, x4) + +inst_17: +// rs1==x30, rd==x9, +// opcode: mop.r.25 ; op1:x30; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x9, x30, 0, -0x80000000, x1, 17*XLEN/8, x4) + +inst_18: +// rs1==x2, rd==x19, +// opcode: mop.r.25 ; op1:x2; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x19, x2, 0, -0x80000000, x1, 18*XLEN/8, x4) + +inst_19: +// rs1==x14, rd==x16, +// opcode: mop.r.25 ; op1:x14; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x16, x14, 0, -0x80000000, x1, 19*XLEN/8, x6) + +inst_20: +// rs1==x3, rd==x24, +// opcode: mop.r.25 ; op1:x3; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x24, x3, 0, -0x80000000, x1, 20*XLEN/8, x6) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_21: +// rs1==x1, rd==x13, +// opcode: mop.r.25 ; op1:x1; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x13, x1, 0, -0x80000000, x2, 0*XLEN/8, x6) + +inst_22: +// rs1==x19, rd==x23, +// opcode: mop.r.25 ; op1:x19; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x23, x19, 0, -0x80000000, x2, 1*XLEN/8, x6) + +inst_23: +// rs1==x10, rd==x4, +// opcode: mop.r.25 ; op1:x10; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x4, x10, 0, -0x80000000, x2, 2*XLEN/8, x6) + +inst_24: +// rs1==x24, rd==x11, +// opcode: mop.r.25 ; op1:x24; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x11, x24, 0, -0x80000000, x2, 3*XLEN/8, x6) + +inst_25: +// rs1==x27, rd==x26, +// opcode: mop.r.25 ; op1:x27; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x26, x27, 0, -0x80000000, x2, 4*XLEN/8, x6) + +inst_26: +// rs1==x0, rd==x1, +// opcode: mop.r.25 ; op1:x0; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x1, x0, 0, 0x0, x2, 5*XLEN/8, x6) + +inst_27: +// rs1==x22, rd==x15, +// opcode: mop.r.25 ; op1:x22; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x15, x22, 0, -0x80000000, x2, 6*XLEN/8, x6) + +inst_28: +// rs1==x7, rd==x30, +// opcode: mop.r.25 ; op1:x7; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x30, x7, 0, -0x80000000, x2, 7*XLEN/8, x6) + +inst_29: +// rs1==x26, rd==x21, +// opcode: mop.r.25 ; op1:x26; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x21, x26, 0, -0x80000000, x2, 8*XLEN/8, x6) + +inst_30: +// rs1==x4, rd==x17, +// opcode: mop.r.25 ; op1:x4; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x17, x4, 0, -0x80000000, x2, 9*XLEN/8, x6) + +inst_31: +// rs1==x15, rd==x5, +// opcode: mop.r.25 ; op1:x15; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.25, x5, x15, 0, -0x80000000, x2, 10*XLEN/8, x6) + +inst_32: +// rs1_val == imm_val, +// opcode: mop.r.25 ; op1:x30; dest:x31; op1val:0x80; immval:0x80 +TEST_R_OP( mop.r.25, x31, x30, 0, 0x80, x2, 11*XLEN/8, x6) +#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 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 12*((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/Zimop/src/mop.r.26-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.26-01.S new file mode 100644 index 000000000..fee660c50 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.26-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.26 instruction of the RISC-V RV32Zimop extension for the mop.r.26 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.26) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd, rs1==x13, rd==x13, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.26 ; op1:x13; dest:x13; op1val:0x3fffffff; immval:-0x800 +TEST_R_OP( mop.r.26, x13, x13, 0, 0x3fffffff, x6, 0*XLEN/8, x14) + +inst_1: +// rs1 != rd, rs1==x25, rd==x10, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.26 ; op1:x25; dest:x10; op1val:0x400000; immval:0x7ff +TEST_R_OP( mop.r.26, x10, x25, 0, 0x400000, x6, 1*XLEN/8, x14) + +inst_2: +// rs1==x8, rd==x0, imm_val == 0, +// opcode: mop.r.26 ; op1:x8; dest:x0; op1val:-0x2; immval:0x0 +TEST_R_OP( mop.r.26, x0, x8, 0, -0x2, x6, 2*XLEN/8, x14) + +inst_3: +// rs1==x19, rd==x28, imm_val == 1, +// opcode: mop.r.26 ; op1:x19; dest:x28; op1val:0x33333334; immval:0x1 +TEST_R_OP( mop.r.26, x28, x19, 0, 0x33333334, x6, 3*XLEN/8, x14) + +inst_4: +// rs1==x2, rd==x3, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.26 ; op1:x2; dest:x3; op1val:-0x4; immval:-0x2d +TEST_R_OP( mop.r.26, x3, x2, 0, -0x4, x6, 4*XLEN/8, x14) + +inst_5: +// rs1==x22, rd==x5, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.26 ; op1:x22; dest:x5; op1val:-0x401; immval:0x555 +TEST_R_OP( mop.r.26, x5, x22, 0, -0x401, x6, 5*XLEN/8, x14) + +inst_6: +// rs1==x23, rd==x15, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.26 ; op1:x23; dest:x15; op1val:-0x80000000; immval:-0x7 +TEST_R_OP( mop.r.26, x15, x23, 0, -0x80000000, x6, 6*XLEN/8, x14) + +inst_7: +// rs1==x11, rd==x2, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.26 ; op1:x11; dest:x2; op1val:0x7fffffff; immval:0x80 +TEST_R_OP( mop.r.26, x2, x11, 0, 0x7fffffff, x6, 7*XLEN/8, x14) + +inst_8: +// rs1==x27, rd==x29, rs1_val == 0, +// opcode: mop.r.26 ; op1:x27; dest:x29; op1val:0x0; immval:0x6 +TEST_R_OP( mop.r.26, x29, x27, 0, 0x0, x6, 8*XLEN/8, x14) + +inst_9: +// rs1==x7, rd==x16, rs1_val == 1, +// opcode: mop.r.26 ; op1:x7; dest:x16; op1val:0x1; immval:0x556 +TEST_R_OP( mop.r.26, x16, x7, 0, 0x1, x6, 9*XLEN/8, x14) + +inst_10: +// rs1==x17, rd==x11, rs1_val == imm_val, +// opcode: mop.r.26 ; op1:x17; dest:x11; op1val:-0x6; immval:-0x6 +TEST_R_OP( mop.r.26, x11, x17, 0, -0x6, x6, 10*XLEN/8, x14) + +inst_11: +// rs1==x12, rd==x4, +// opcode: mop.r.26 ; op1:x12; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x4, x12, 0, -0x80000000, x6, 11*XLEN/8, x14) + +inst_12: +// rs1==x24, rd==x25, +// opcode: mop.r.26 ; op1:x24; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x25, x24, 0, -0x80000000, x6, 12*XLEN/8, x14) + +inst_13: +// rs1==x4, rd==x19, +// opcode: mop.r.26 ; op1:x4; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x19, x4, 0, -0x80000000, x6, 13*XLEN/8, x14) + +inst_14: +// rs1==x9, rd==x31, +// opcode: mop.r.26 ; op1:x9; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x31, x9, 0, -0x80000000, x6, 14*XLEN/8, x14) + +inst_15: +// rs1==x5, rd==x1, +// opcode: mop.r.26 ; op1:x5; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x1, x5, 0, -0x80000000, x6, 15*XLEN/8, x14) + +inst_16: +// rs1==x20, rd==x30, +// opcode: mop.r.26 ; op1:x20; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x30, x20, 0, -0x80000000, x6, 16*XLEN/8, x14) + +inst_17: +// rs1==x14, rd==x22, +// opcode: mop.r.26 ; op1:x14; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x22, x14, 0, -0x80000000, x6, 17*XLEN/8, x4) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_18: +// rs1==x18, rd==x26, +// opcode: mop.r.26 ; op1:x18; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x26, x18, 0, -0x80000000, x2, 0*XLEN/8, x4) + +inst_19: +// rs1==x26, rd==x7, +// opcode: mop.r.26 ; op1:x26; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x7, x26, 0, -0x80000000, x2, 1*XLEN/8, x4) + +inst_20: +// rs1==x15, rd==x20, +// opcode: mop.r.26 ; op1:x15; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x20, x15, 0, -0x80000000, x2, 2*XLEN/8, x4) + +inst_21: +// rs1==x10, rd==x27, +// opcode: mop.r.26 ; op1:x10; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x27, x10, 0, -0x80000000, x2, 3*XLEN/8, x4) + +inst_22: +// rs1==x0, rd==x21, +// opcode: mop.r.26 ; op1:x0; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x21, x0, 0, 0x0, x2, 4*XLEN/8, x4) + +inst_23: +// rs1==x30, rd==x14, +// opcode: mop.r.26 ; op1:x30; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x14, x30, 0, -0x80000000, x2, 5*XLEN/8, x4) + +inst_24: +// rs1==x21, rd==x8, +// opcode: mop.r.26 ; op1:x21; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x8, x21, 0, -0x80000000, x2, 6*XLEN/8, x4) + +inst_25: +// rs1==x6, rd==x12, +// opcode: mop.r.26 ; op1:x6; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x12, x6, 0, -0x80000000, x2, 7*XLEN/8, x4) + +inst_26: +// rs1==x28, rd==x23, +// opcode: mop.r.26 ; op1:x28; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x23, x28, 0, -0x80000000, x2, 8*XLEN/8, x4) + +inst_27: +// rs1==x31, rd==x9, +// opcode: mop.r.26 ; op1:x31; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x9, x31, 0, -0x80000000, x2, 9*XLEN/8, x4) + +inst_28: +// rs1==x16, rd==x18, +// opcode: mop.r.26 ; op1:x16; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x18, x16, 0, -0x80000000, x2, 10*XLEN/8, x4) + +inst_29: +// rs1==x1, rd==x17, +// opcode: mop.r.26 ; op1:x1; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x17, x1, 0, -0x80000000, x2, 11*XLEN/8, x4) + +inst_30: +// rs1==x29, rd==x24, +// opcode: mop.r.26 ; op1:x29; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x24, x29, 0, -0x80000000, x2, 12*XLEN/8, x4) + +inst_31: +// rs1==x3, rd==x6, +// opcode: mop.r.26 ; op1:x3; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.26, x6, x3, 0, -0x80000000, x2, 13*XLEN/8, x4) + +inst_32: +// imm_val == 0, +// opcode: mop.r.26 ; op1:x30; dest:x31; op1val:-0x2; immval:0x0 +TEST_R_OP( mop.r.26, x31, x30, 0, -0x2, x2, 14*XLEN/8, x4) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 15*((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/Zimop/src/mop.r.27-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.27-01.S new file mode 100644 index 000000000..a991540c9 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.27-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.27 instruction of the RISC-V RV32Zimop extension for the mop.r.27 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.27) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd, rs1==x14, rd==x14, imm_val == (-2**(12-1)), rs1_val == 0, rs1_val != imm_val +// opcode: mop.r.27 ; op1:x14; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x14, x14, 0, 0x0, x6, 0*XLEN/8, x4) + +inst_1: +// rs1 != rd, rs1==x26, rd==x31, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.27 ; op1:x26; dest:x31; op1val:0xb504; immval:0x7ff +TEST_R_OP( mop.r.27, x31, x26, 0, 0xb504, x6, 1*XLEN/8, x4) + +inst_2: +// rs1==x15, rd==x21, imm_val == 0, +// opcode: mop.r.27 ; op1:x15; dest:x21; op1val:-0x6; immval:0x0 +TEST_R_OP( mop.r.27, x21, x15, 0, -0x6, x6, 2*XLEN/8, x4) + +inst_3: +// rs1==x3, rd==x19, imm_val == 1, +// opcode: mop.r.27 ; op1:x3; dest:x19; op1val:0x400000; immval:0x1 +TEST_R_OP( mop.r.27, x19, x3, 0, 0x400000, x6, 3*XLEN/8, x4) + +inst_4: +// rs1==x20, rd==x13, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.27 ; op1:x20; dest:x13; op1val:-0x4000001; immval:-0x1 +TEST_R_OP( mop.r.27, x13, x20, 0, -0x4000001, x6, 4*XLEN/8, x4) + +inst_5: +// rs1==x31, rd==x25, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.27 ; op1:x31; dest:x25; op1val:-0x2001; immval:0x334 +TEST_R_OP( mop.r.27, x25, x31, 0, -0x2001, x6, 5*XLEN/8, x4) + +inst_6: +// rs1==x23, rd==x17, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.27 ; op1:x23; dest:x17; op1val:-0x80000000; immval:0x80 +TEST_R_OP( mop.r.27, x17, x23, 0, -0x80000000, x6, 6*XLEN/8, x4) + +inst_7: +// rs1==x24, rd==x30, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.27 ; op1:x24; dest:x30; op1val:0x7fffffff; immval:-0x400 +TEST_R_OP( mop.r.27, x30, x24, 0, 0x7fffffff, x6, 7*XLEN/8, x4) + +inst_8: +// rs1==x13, rd==x28, rs1_val == 1, +// opcode: mop.r.27 ; op1:x13; dest:x28; op1val:0x1; immval:0x3 +TEST_R_OP( mop.r.27, x28, x13, 0, 0x1, x6, 8*XLEN/8, x4) + +inst_9: +// rs1==x0, rd==x23, rs1_val == imm_val, +// opcode: mop.r.27 ; op1:x0; dest:x23; op1val:0x0; immval:0x4 +TEST_R_OP( mop.r.27, x23, x0, 0, 0x0, x6, 9*XLEN/8, x4) + +inst_10: +// rs1==x12, rd==x10, +// opcode: mop.r.27 ; op1:x12; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x10, x12, 0, -0x80000000, x6, 10*XLEN/8, x4) + +inst_11: +// rs1==x27, rd==x26, +// opcode: mop.r.27 ; op1:x27; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x26, x27, 0, -0x80000000, x6, 11*XLEN/8, x4) + +inst_12: +// rs1==x1, rd==x24, +// opcode: mop.r.27 ; op1:x1; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x24, x1, 0, -0x80000000, x6, 12*XLEN/8, x4) + +inst_13: +// rs1==x18, rd==x15, +// opcode: mop.r.27 ; op1:x18; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x15, x18, 0, -0x80000000, x6, 13*XLEN/8, x4) + +inst_14: +// rs1==x28, rd==x27, +// opcode: mop.r.27 ; op1:x28; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x27, x28, 0, -0x80000000, x6, 14*XLEN/8, x4) + +inst_15: +// rs1==x7, rd==x0, +// opcode: mop.r.27 ; op1:x7; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x0, x7, 0, -0x80000000, x6, 15*XLEN/8, x4) + +inst_16: +// rs1==x8, rd==x29, +// opcode: mop.r.27 ; op1:x8; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x29, x8, 0, -0x80000000, x6, 16*XLEN/8, x4) + +inst_17: +// rs1==x5, rd==x9, +// opcode: mop.r.27 ; op1:x5; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x9, x5, 0, -0x80000000, x6, 17*XLEN/8, x4) + +inst_18: +// rs1==x2, rd==x1, +// opcode: mop.r.27 ; op1:x2; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x1, x2, 0, -0x80000000, x6, 18*XLEN/8, x4) + +inst_19: +// rs1==x9, rd==x4, +// opcode: mop.r.27 ; op1:x9; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x4, x9, 0, -0x80000000, x6, 19*XLEN/8, x13) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_20: +// rs1==x22, rd==x11, +// opcode: mop.r.27 ; op1:x22; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x11, x22, 0, -0x80000000, x1, 0*XLEN/8, x13) + +inst_21: +// rs1==x19, rd==x20, +// opcode: mop.r.27 ; op1:x19; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x20, x19, 0, -0x80000000, x1, 1*XLEN/8, x13) + +inst_22: +// rs1==x16, rd==x3, +// opcode: mop.r.27 ; op1:x16; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x3, x16, 0, -0x80000000, x1, 2*XLEN/8, x13) + +inst_23: +// rs1==x30, rd==x22, +// opcode: mop.r.27 ; op1:x30; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x22, x30, 0, -0x80000000, x1, 3*XLEN/8, x13) + +inst_24: +// rs1==x29, rd==x8, +// opcode: mop.r.27 ; op1:x29; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x8, x29, 0, -0x80000000, x1, 4*XLEN/8, x13) + +inst_25: +// rs1==x17, rd==x5, +// opcode: mop.r.27 ; op1:x17; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x5, x17, 0, -0x80000000, x1, 5*XLEN/8, x13) + +inst_26: +// rs1==x10, rd==x2, +// opcode: mop.r.27 ; op1:x10; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x2, x10, 0, -0x80000000, x1, 6*XLEN/8, x13) + +inst_27: +// rs1==x6, rd==x12, +// opcode: mop.r.27 ; op1:x6; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x12, x6, 0, -0x80000000, x1, 7*XLEN/8, x13) + +inst_28: +// rs1==x21, rd==x7, +// opcode: mop.r.27 ; op1:x21; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x7, x21, 0, -0x80000000, x1, 8*XLEN/8, x13) + +inst_29: +// rs1==x25, rd==x16, +// opcode: mop.r.27 ; op1:x25; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x16, x25, 0, -0x80000000, x1, 9*XLEN/8, x13) + +inst_30: +// rs1==x11, rd==x18, +// opcode: mop.r.27 ; op1:x11; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x18, x11, 0, -0x80000000, x1, 10*XLEN/8, x13) + +inst_31: +// rs1==x4, rd==x6, +// opcode: mop.r.27 ; op1:x4; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.27, x6, x4, 0, -0x80000000, x1, 11*XLEN/8, x13) + +inst_32: +// rs1_val == imm_val, +// opcode: mop.r.27 ; op1:x30; dest:x31; op1val:0x4; immval:0x4 +TEST_R_OP( mop.r.27, x31, x30, 0, 0x4, x1, 12*XLEN/8, x13) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 13*((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/Zimop/src/mop.r.28-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.28-01.S new file mode 100644 index 000000000..245343ea8 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.28-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.28 instruction of the RISC-V RV32Zimop extension for the mop.r.28 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.28) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x7, rd==x7, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.28 ; op1:x7; dest:x7; op1val:0x200; immval:-0x800 +TEST_R_OP( mop.r.28, x7, x7, 0, 0x200, x3, 0*XLEN/8, x14) + +inst_1: +// rs1 != rd, rs1==x26, rd==x10, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.28 ; op1:x26; dest:x10; op1val:0x4; immval:0x7ff +TEST_R_OP( mop.r.28, x10, x26, 0, 0x4, x3, 1*XLEN/8, x14) + +inst_2: +// rs1==x22, rd==x8, imm_val == 0, +// opcode: mop.r.28 ; op1:x22; dest:x8; op1val:0x66666666; immval:0x0 +TEST_R_OP( mop.r.28, x8, x22, 0, 0x66666666, x3, 2*XLEN/8, x14) + +inst_3: +// rs1==x6, rd==x19, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.28 ; op1:x6; dest:x19; op1val:-0x20000001; immval:0x1 +TEST_R_OP( mop.r.28, x19, x6, 0, -0x20000001, x3, 3*XLEN/8, x14) + +inst_4: +// rs1==x21, rd==x0, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.28 ; op1:x21; dest:x0; op1val:-0x8; immval:-0x101 +TEST_R_OP( mop.r.28, x0, x21, 0, -0x8, x3, 4*XLEN/8, x14) + +inst_5: +// rs1==x19, rd==x18, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.28 ; op1:x19; dest:x18; op1val:-0x80000000; immval:0x333 +TEST_R_OP( mop.r.28, x18, x19, 0, -0x80000000, x3, 5*XLEN/8, x14) + +inst_6: +// rs1==x2, rd==x24, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.28 ; op1:x2; dest:x24; op1val:0x7fffffff; immval:-0x800 +TEST_R_OP( mop.r.28, x24, x2, 0, 0x7fffffff, x3, 6*XLEN/8, x14) + +inst_7: +// rs1==x25, rd==x11, rs1_val == 0, +// opcode: mop.r.28 ; op1:x25; dest:x11; op1val:0x0; immval:0x666 +TEST_R_OP( mop.r.28, x11, x25, 0, 0x0, x3, 7*XLEN/8, x14) + +inst_8: +// rs1==x8, rd==x23, rs1_val == 1, +// opcode: mop.r.28 ; op1:x8; dest:x23; op1val:0x1; immval:0x6 +TEST_R_OP( mop.r.28, x23, x8, 0, 0x1, x3, 8*XLEN/8, x14) + +inst_9: +// rs1==x23, rd==x16, rs1_val == imm_val, +// opcode: mop.r.28 ; op1:x23; dest:x16; op1val:0x6; immval:0x6 +TEST_R_OP( mop.r.28, x16, x23, 0, 0x6, x3, 9*XLEN/8, x14) + +inst_10: +// rs1==x12, rd==x6, +// opcode: mop.r.28 ; op1:x12; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x6, x12, 0, -0x80000000, x3, 10*XLEN/8, x14) + +inst_11: +// rs1==x24, rd==x9, +// opcode: mop.r.28 ; op1:x24; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x9, x24, 0, -0x80000000, x3, 11*XLEN/8, x14) + +inst_12: +// rs1==x30, rd==x20, +// opcode: mop.r.28 ; op1:x30; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x20, x30, 0, -0x80000000, x3, 12*XLEN/8, x14) + +inst_13: +// rs1==x18, rd==x26, +// opcode: mop.r.28 ; op1:x18; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x26, x18, 0, -0x80000000, x3, 13*XLEN/8, x14) + +inst_14: +// rs1==x31, rd==x21, +// opcode: mop.r.28 ; op1:x31; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x21, x31, 0, -0x80000000, x3, 14*XLEN/8, x14) + +inst_15: +// rs1==x16, rd==x31, +// opcode: mop.r.28 ; op1:x16; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x31, x16, 0, -0x80000000, x3, 15*XLEN/8, x14) + +inst_16: +// rs1==x10, rd==x27, +// opcode: mop.r.28 ; op1:x10; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x27, x10, 0, -0x80000000, x3, 16*XLEN/8, x14) + +inst_17: +// rs1==x28, rd==x13, +// opcode: mop.r.28 ; op1:x28; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x13, x28, 0, -0x80000000, x3, 17*XLEN/8, x14) + +inst_18: +// rs1==x4, rd==x25, +// opcode: mop.r.28 ; op1:x4; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x25, x4, 0, -0x80000000, x3, 18*XLEN/8, x14) + +inst_19: +// rs1==x5, rd==x2, +// opcode: mop.r.28 ; op1:x5; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x2, x5, 0, -0x80000000, x3, 19*XLEN/8, x14) + +inst_20: +// rs1==x9, rd==x4, +// opcode: mop.r.28 ; op1:x9; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x4, x9, 0, -0x80000000, x3, 20*XLEN/8, x14) + +inst_21: +// rs1==x1, rd==x15, +// opcode: mop.r.28 ; op1:x1; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x15, x1, 0, -0x80000000, x3, 21*XLEN/8, x14) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_22: +// rs1==x15, rd==x3, +// opcode: mop.r.28 ; op1:x15; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x3, x15, 0, -0x80000000, x2, 0*XLEN/8, x4) + +inst_23: +// rs1==x27, rd==x12, +// opcode: mop.r.28 ; op1:x27; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x12, x27, 0, -0x80000000, x2, 1*XLEN/8, x4) + +inst_24: +// rs1==x13, rd==x17, +// opcode: mop.r.28 ; op1:x13; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x17, x13, 0, -0x80000000, x2, 2*XLEN/8, x4) + +inst_25: +// rs1==x29, rd==x14, +// opcode: mop.r.28 ; op1:x29; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x14, x29, 0, -0x80000000, x2, 3*XLEN/8, x4) + +inst_26: +// rs1==x0, rd==x22, +// opcode: mop.r.28 ; op1:x0; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x22, x0, 0, 0x0, x2, 4*XLEN/8, x4) + +inst_27: +// rs1==x14, rd==x28, +// opcode: mop.r.28 ; op1:x14; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x28, x14, 0, -0x80000000, x2, 5*XLEN/8, x4) + +inst_28: +// rs1==x20, rd==x5, +// opcode: mop.r.28 ; op1:x20; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x5, x20, 0, -0x80000000, x2, 6*XLEN/8, x4) + +inst_29: +// rs1==x3, rd==x29, +// opcode: mop.r.28 ; op1:x3; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x29, x3, 0, -0x80000000, x2, 7*XLEN/8, x4) + +inst_30: +// rs1==x17, rd==x1, +// opcode: mop.r.28 ; op1:x17; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x1, x17, 0, -0x80000000, x2, 8*XLEN/8, x4) + +inst_31: +// rs1==x11, rd==x30, +// opcode: mop.r.28 ; op1:x11; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.28, x30, x11, 0, -0x80000000, x2, 9*XLEN/8, x4) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 10*((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/Zimop/src/mop.r.29-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.29-01.S new file mode 100644 index 000000000..a1f24aa66 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.29-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.29 instruction of the RISC-V RV32Zimop extension for the mop.r.29 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.29) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x25, rd==x25, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.29 ; op1:x25; dest:x25; op1val:0x55555555; immval:-0x800 +TEST_R_OP( mop.r.29, x25, x25, 0, 0x55555555, x3, 0*XLEN/8, x6) + +inst_1: +// rs1 != rd, rs1==x15, rd==x8, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.29 ; op1:x15; dest:x8; op1val:-0xb503; immval:0x7ff +TEST_R_OP( mop.r.29, x8, x15, 0, -0xb503, x3, 1*XLEN/8, x6) + +inst_2: +// rs1==x8, rd==x24, imm_val == 0, +// opcode: mop.r.29 ; op1:x8; dest:x24; op1val:0x2000000; immval:0x0 +TEST_R_OP( mop.r.29, x24, x8, 0, 0x2000000, x3, 2*XLEN/8, x6) + +inst_3: +// rs1==x19, rd==x28, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.29 ; op1:x19; dest:x28; op1val:0x100000; immval:0x1 +TEST_R_OP( mop.r.29, x28, x19, 0, 0x100000, x3, 3*XLEN/8, x6) + +inst_4: +// rs1==x4, rd==x18, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.29 ; op1:x4; dest:x18; op1val:-0xb503; immval:-0x5 +TEST_R_OP( mop.r.29, x18, x4, 0, -0xb503, x3, 4*XLEN/8, x6) + +inst_5: +// rs1==x29, rd==x0, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.29 ; op1:x29; dest:x0; op1val:-0x80000000; immval:-0xa +TEST_R_OP( mop.r.29, x0, x29, 0, -0x80000000, x3, 5*XLEN/8, x6) + +inst_6: +// rs1==x13, rd==x11, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.29 ; op1:x13; dest:x11; op1val:0x7fffffff; immval:0x3 +TEST_R_OP( mop.r.29, x11, x13, 0, 0x7fffffff, x3, 6*XLEN/8, x6) + +inst_7: +// rs1==x20, rd==x10, rs1_val == 0, +// opcode: mop.r.29 ; op1:x20; dest:x10; op1val:0x0; immval:-0x400 +TEST_R_OP( mop.r.29, x10, x20, 0, 0x0, x3, 7*XLEN/8, x6) + +inst_8: +// rs1==x21, rd==x1, rs1_val == 1, +// opcode: mop.r.29 ; op1:x21; dest:x1; op1val:0x1; immval:-0x800 +TEST_R_OP( mop.r.29, x1, x21, 0, 0x1, x3, 8*XLEN/8, x6) + +inst_9: +// rs1==x31, rd==x5, rs1_val == imm_val, +// opcode: mop.r.29 ; op1:x31; dest:x5; op1val:-0x1; immval:-0x1 +TEST_R_OP( mop.r.29, x5, x31, 0, -0x1, x3, 9*XLEN/8, x6) + +inst_10: +// rs1==x5, rd==x29, +// opcode: mop.r.29 ; op1:x5; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x29, x5, 0, -0x80000000, x3, 10*XLEN/8, x6) + +inst_11: +// rs1==x7, rd==x4, +// opcode: mop.r.29 ; op1:x7; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x4, x7, 0, -0x80000000, x3, 11*XLEN/8, x6) + +inst_12: +// rs1==x18, rd==x20, +// opcode: mop.r.29 ; op1:x18; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x20, x18, 0, -0x80000000, x3, 12*XLEN/8, x6) + +inst_13: +// rs1==x12, rd==x16, +// opcode: mop.r.29 ; op1:x12; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x16, x12, 0, -0x80000000, x3, 13*XLEN/8, x6) + +inst_14: +// rs1==x16, rd==x27, +// opcode: mop.r.29 ; op1:x16; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x27, x16, 0, -0x80000000, x3, 14*XLEN/8, x6) + +inst_15: +// rs1==x24, rd==x17, +// opcode: mop.r.29 ; op1:x24; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x17, x24, 0, -0x80000000, x3, 15*XLEN/8, x6) + +inst_16: +// rs1==x9, rd==x21, +// opcode: mop.r.29 ; op1:x9; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x21, x9, 0, -0x80000000, x3, 16*XLEN/8, x6) + +inst_17: +// rs1==x1, rd==x13, +// opcode: mop.r.29 ; op1:x1; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x13, x1, 0, -0x80000000, x3, 17*XLEN/8, x6) + +inst_18: +// rs1==x11, rd==x12, +// opcode: mop.r.29 ; op1:x11; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x12, x11, 0, -0x80000000, x3, 18*XLEN/8, x6) + +inst_19: +// rs1==x0, rd==x23, +// opcode: mop.r.29 ; op1:x0; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x23, x0, 0, 0x0, x3, 19*XLEN/8, x6) + +inst_20: +// rs1==x27, rd==x26, +// opcode: mop.r.29 ; op1:x27; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x26, x27, 0, -0x80000000, x3, 20*XLEN/8, x6) + +inst_21: +// rs1==x2, rd==x22, +// opcode: mop.r.29 ; op1:x2; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x22, x2, 0, -0x80000000, x3, 21*XLEN/8, x6) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_22: +// rs1==x14, rd==x6, +// opcode: mop.r.29 ; op1:x14; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x6, x14, 0, -0x80000000, x1, 0*XLEN/8, x4) + +inst_23: +// rs1==x26, rd==x7, +// opcode: mop.r.29 ; op1:x26; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x7, x26, 0, -0x80000000, x1, 1*XLEN/8, x4) + +inst_24: +// rs1==x23, rd==x31, +// opcode: mop.r.29 ; op1:x23; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x31, x23, 0, -0x80000000, x1, 2*XLEN/8, x4) + +inst_25: +// rs1==x28, rd==x19, +// opcode: mop.r.29 ; op1:x28; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x19, x28, 0, -0x80000000, x1, 3*XLEN/8, x4) + +inst_26: +// rs1==x22, rd==x2, +// opcode: mop.r.29 ; op1:x22; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x2, x22, 0, -0x80000000, x1, 4*XLEN/8, x4) + +inst_27: +// rs1==x3, rd==x9, +// opcode: mop.r.29 ; op1:x3; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x9, x3, 0, -0x80000000, x1, 5*XLEN/8, x4) + +inst_28: +// rs1==x6, rd==x30, +// opcode: mop.r.29 ; op1:x6; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x30, x6, 0, -0x80000000, x1, 6*XLEN/8, x4) + +inst_29: +// rs1==x30, rd==x3, +// opcode: mop.r.29 ; op1:x30; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x3, x30, 0, -0x80000000, x1, 7*XLEN/8, x4) + +inst_30: +// rs1==x17, rd==x15, +// opcode: mop.r.29 ; op1:x17; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x15, x17, 0, -0x80000000, x1, 8*XLEN/8, x4) + +inst_31: +// rs1==x10, rd==x14, +// opcode: mop.r.29 ; op1:x10; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.29, x14, x10, 0, -0x80000000, x1, 9*XLEN/8, x4) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 10*((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/Zimop/src/mop.r.3-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.3-01.S new file mode 100644 index 000000000..95a66b7c1 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.3-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.3 instruction of the RISC-V RV32Zimop extension for the mop.r.3 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.3) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x15, rd==x15, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.3 ; op1:x15; dest:x15; op1val:-0x100001; immval:-0x800 +TEST_R_OP( mop.r.3, x15, x15, 0, -0x100001, x2, 0*XLEN/8, x12) + +inst_1: +// rs1 != rd, rs1==x25, rd==x31, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.3 ; op1:x25; dest:x31; op1val:0x10; immval:0x7ff +TEST_R_OP( mop.r.3, x31, x25, 0, 0x10, x2, 1*XLEN/8, x12) + +inst_2: +// rs1==x1, rd==x25, imm_val == 0, +// opcode: mop.r.3 ; op1:x1; dest:x25; op1val:-0x2001; immval:0x0 +TEST_R_OP( mop.r.3, x25, x1, 0, -0x2001, x2, 2*XLEN/8, x12) + +inst_3: +// rs1==x5, rd==x13, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.3 ; op1:x5; dest:x13; op1val:-0x3; immval:0x1 +TEST_R_OP( mop.r.3, x13, x5, 0, -0x3, x2, 3*XLEN/8, x12) + +inst_4: +// rs1==x30, rd==x11, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.3 ; op1:x30; dest:x11; op1val:-0x80000000; immval:0x0 +TEST_R_OP( mop.r.3, x11, x30, 0, -0x80000000, x2, 4*XLEN/8, x12) + +inst_5: +// rs1==x19, rd==x23, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.3 ; op1:x19; dest:x23; op1val:0x7fffffff; immval:-0xa +TEST_R_OP( mop.r.3, x23, x19, 0, 0x7fffffff, x2, 5*XLEN/8, x12) + +inst_6: +// rs1==x28, rd==x5, rs1_val == 0, rs1_val == imm_val +// opcode: mop.r.3 ; op1:x28; dest:x5; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.3, x5, x28, 0, 0x0, x2, 6*XLEN/8, x12) + +inst_7: +// rs1==x8, rd==x28, rs1_val == 1, +// opcode: mop.r.3 ; op1:x8; dest:x28; op1val:0x1; immval:0x80 +TEST_R_OP( mop.r.3, x28, x8, 0, 0x1, x2, 7*XLEN/8, x12) + +inst_8: +// rs1==x21, rd==x18, +// opcode: mop.r.3 ; op1:x21; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x18, x21, 0, -0x80000000, x2, 8*XLEN/8, x12) + +inst_9: +// rs1==x29, rd==x27, +// opcode: mop.r.3 ; op1:x29; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x27, x29, 0, -0x80000000, x2, 9*XLEN/8, x12) + +inst_10: +// rs1==x6, rd==x10, +// opcode: mop.r.3 ; op1:x6; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x10, x6, 0, -0x80000000, x2, 10*XLEN/8, x12) + +inst_11: +// rs1==x7, rd==x3, +// opcode: mop.r.3 ; op1:x7; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x3, x7, 0, -0x80000000, x2, 11*XLEN/8, x12) + +inst_12: +// rs1==x0, rd==x16, +// opcode: mop.r.3 ; op1:x0; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x16, x0, 0, 0x0, x2, 12*XLEN/8, x12) + +inst_13: +// rs1==x24, rd==x22, +// opcode: mop.r.3 ; op1:x24; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x22, x24, 0, -0x80000000, x2, 13*XLEN/8, x12) + +inst_14: +// rs1==x26, rd==x19, +// opcode: mop.r.3 ; op1:x26; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x19, x26, 0, -0x80000000, x2, 14*XLEN/8, x12) + +inst_15: +// rs1==x9, rd==x4, +// opcode: mop.r.3 ; op1:x9; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x4, x9, 0, -0x80000000, x2, 15*XLEN/8, x12) + +inst_16: +// rs1==x17, rd==x21, +// opcode: mop.r.3 ; op1:x17; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x21, x17, 0, -0x80000000, x2, 16*XLEN/8, x15) +RVTEST_SIGBASE(x5,signature_x5_0) + +inst_17: +// rs1==x2, rd==x1, +// opcode: mop.r.3 ; op1:x2; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x1, x2, 0, -0x80000000, x5, 0*XLEN/8, x15) + +inst_18: +// rs1==x20, rd==x7, +// opcode: mop.r.3 ; op1:x20; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x7, x20, 0, -0x80000000, x5, 1*XLEN/8, x15) + +inst_19: +// rs1==x22, rd==x17, +// opcode: mop.r.3 ; op1:x22; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x17, x22, 0, -0x80000000, x5, 2*XLEN/8, x15) + +inst_20: +// rs1==x23, rd==x20, +// opcode: mop.r.3 ; op1:x23; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x20, x23, 0, -0x80000000, x5, 3*XLEN/8, x15) + +inst_21: +// rs1==x14, rd==x26, +// opcode: mop.r.3 ; op1:x14; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x26, x14, 0, -0x80000000, x5, 4*XLEN/8, x15) + +inst_22: +// rs1==x4, rd==x30, +// opcode: mop.r.3 ; op1:x4; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x30, x4, 0, -0x80000000, x5, 5*XLEN/8, x15) + +inst_23: +// rs1==x12, rd==x24, +// opcode: mop.r.3 ; op1:x12; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x24, x12, 0, -0x80000000, x5, 6*XLEN/8, x15) + +inst_24: +// rs1==x18, rd==x2, +// opcode: mop.r.3 ; op1:x18; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x2, x18, 0, -0x80000000, x5, 7*XLEN/8, x15) + +inst_25: +// rs1==x11, rd==x14, +// opcode: mop.r.3 ; op1:x11; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x14, x11, 0, -0x80000000, x5, 8*XLEN/8, x15) + +inst_26: +// rs1==x27, rd==x8, +// opcode: mop.r.3 ; op1:x27; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x8, x27, 0, -0x80000000, x5, 9*XLEN/8, x15) + +inst_27: +// rs1==x10, rd==x6, +// opcode: mop.r.3 ; op1:x10; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x6, x10, 0, -0x80000000, x5, 10*XLEN/8, x15) + +inst_28: +// rs1==x13, rd==x9, +// opcode: mop.r.3 ; op1:x13; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x9, x13, 0, -0x80000000, x5, 11*XLEN/8, x15) + +inst_29: +// rs1==x3, rd==x0, +// opcode: mop.r.3 ; op1:x3; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x0, x3, 0, -0x80000000, x5, 12*XLEN/8, x15) + +inst_30: +// rs1==x16, rd==x29, +// opcode: mop.r.3 ; op1:x16; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x29, x16, 0, -0x80000000, x5, 13*XLEN/8, x15) + +inst_31: +// rs1==x31, rd==x12, +// opcode: mop.r.3 ; op1:x31; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.3, x12, x31, 0, -0x80000000, x5, 14*XLEN/8, x15) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 17*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_0: + .fill 15*((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/Zimop/src/mop.r.30-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.30-01.S new file mode 100644 index 000000000..160a0176a --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.30-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.30 instruction of the RISC-V RV32Zimop extension for the mop.r.30 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.30) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x27, rd==x27, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.30 ; op1:x27; dest:x27; op1val:-0xb503; immval:-0x800 +TEST_R_OP( mop.r.30, x27, x27, 0, -0xb503, x7, 0*XLEN/8, x16) + +inst_1: +// rs1 != rd, rs1==x15, rd==x25, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.30 ; op1:x15; dest:x25; op1val:0xb503; immval:0x7ff +TEST_R_OP( mop.r.30, x25, x15, 0, 0xb503, x7, 1*XLEN/8, x16) + +inst_2: +// rs1==x26, rd==x12, imm_val == 0, +// opcode: mop.r.30 ; op1:x26; dest:x12; op1val:-0x100001; immval:0x0 +TEST_R_OP( mop.r.30, x12, x26, 0, -0x100001, x7, 2*XLEN/8, x16) + +inst_3: +// rs1==x0, rd==x28, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.30 ; op1:x0; dest:x28; op1val:0x0; immval:0x1 +TEST_R_OP( mop.r.30, x28, x0, 0, 0x0, x7, 3*XLEN/8, x16) + +inst_4: +// rs1==x19, rd==x5, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.30 ; op1:x19; dest:x5; op1val:-0x80000000; immval:-0xa +TEST_R_OP( mop.r.30, x5, x19, 0, -0x80000000, x7, 4*XLEN/8, x16) + +inst_5: +// rs1==x29, rd==x3, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.30 ; op1:x29; dest:x3; op1val:0x7fffffff; immval:-0x7 +TEST_R_OP( mop.r.30, x3, x29, 0, 0x7fffffff, x7, 5*XLEN/8, x16) + +inst_6: +// rs1==x25, rd==x22, rs1_val == 0, +// opcode: mop.r.30 ; op1:x25; dest:x22; op1val:0x0; immval:-0x11 +TEST_R_OP( mop.r.30, x22, x25, 0, 0x0, x7, 6*XLEN/8, x16) + +inst_7: +// rs1==x3, rd==x9, rs1_val == 1, +// opcode: mop.r.30 ; op1:x3; dest:x9; op1val:0x1; immval:0x555 +TEST_R_OP( mop.r.30, x9, x3, 0, 0x1, x7, 7*XLEN/8, x16) + +inst_8: +// rs1==x28, rd==x21, rs1_val == imm_val, +// opcode: mop.r.30 ; op1:x28; dest:x21; op1val:0x100; immval:0x100 +TEST_R_OP( mop.r.30, x21, x28, 0, 0x100, x7, 8*XLEN/8, x16) + +inst_9: +// rs1==x13, rd==x2, +// opcode: mop.r.30 ; op1:x13; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x2, x13, 0, -0x80000000, x7, 9*XLEN/8, x16) + +inst_10: +// rs1==x8, rd==x14, +// opcode: mop.r.30 ; op1:x8; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x14, x8, 0, -0x80000000, x7, 10*XLEN/8, x16) + +inst_11: +// rs1==x30, rd==x10, +// opcode: mop.r.30 ; op1:x30; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x10, x30, 0, -0x80000000, x7, 11*XLEN/8, x16) + +inst_12: +// rs1==x4, rd==x17, +// opcode: mop.r.30 ; op1:x4; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x17, x4, 0, -0x80000000, x7, 12*XLEN/8, x16) + +inst_13: +// rs1==x6, rd==x11, +// opcode: mop.r.30 ; op1:x6; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x11, x6, 0, -0x80000000, x7, 13*XLEN/8, x16) + +inst_14: +// rs1==x1, rd==x0, +// opcode: mop.r.30 ; op1:x1; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x0, x1, 0, -0x80000000, x7, 14*XLEN/8, x16) + +inst_15: +// rs1==x20, rd==x19, +// opcode: mop.r.30 ; op1:x20; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x19, x20, 0, -0x80000000, x7, 15*XLEN/8, x16) + +inst_16: +// rs1==x12, rd==x30, +// opcode: mop.r.30 ; op1:x12; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x30, x12, 0, -0x80000000, x7, 16*XLEN/8, x16) + +inst_17: +// rs1==x10, rd==x24, +// opcode: mop.r.30 ; op1:x10; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x24, x10, 0, -0x80000000, x7, 17*XLEN/8, x16) + +inst_18: +// rs1==x17, rd==x31, +// opcode: mop.r.30 ; op1:x17; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x31, x17, 0, -0x80000000, x7, 18*XLEN/8, x10) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_19: +// rs1==x21, rd==x7, +// opcode: mop.r.30 ; op1:x21; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x7, x21, 0, -0x80000000, x3, 0*XLEN/8, x10) + +inst_20: +// rs1==x24, rd==x6, +// opcode: mop.r.30 ; op1:x24; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x6, x24, 0, -0x80000000, x3, 1*XLEN/8, x10) + +inst_21: +// rs1==x18, rd==x13, +// opcode: mop.r.30 ; op1:x18; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x13, x18, 0, -0x80000000, x3, 2*XLEN/8, x10) + +inst_22: +// rs1==x2, rd==x26, +// opcode: mop.r.30 ; op1:x2; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x26, x2, 0, -0x80000000, x3, 3*XLEN/8, x10) + +inst_23: +// rs1==x31, rd==x23, +// opcode: mop.r.30 ; op1:x31; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x23, x31, 0, -0x80000000, x3, 4*XLEN/8, x10) + +inst_24: +// rs1==x11, rd==x4, +// opcode: mop.r.30 ; op1:x11; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x4, x11, 0, -0x80000000, x3, 5*XLEN/8, x10) + +inst_25: +// rs1==x14, rd==x1, +// opcode: mop.r.30 ; op1:x14; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x1, x14, 0, -0x80000000, x3, 6*XLEN/8, x10) + +inst_26: +// rs1==x9, rd==x29, +// opcode: mop.r.30 ; op1:x9; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x29, x9, 0, -0x80000000, x3, 7*XLEN/8, x10) + +inst_27: +// rs1==x22, rd==x8, +// opcode: mop.r.30 ; op1:x22; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x8, x22, 0, -0x80000000, x3, 8*XLEN/8, x10) + +inst_28: +// rs1==x7, rd==x15, +// opcode: mop.r.30 ; op1:x7; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x15, x7, 0, -0x80000000, x3, 9*XLEN/8, x10) + +inst_29: +// rs1==x23, rd==x16, +// opcode: mop.r.30 ; op1:x23; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x16, x23, 0, -0x80000000, x3, 10*XLEN/8, x10) + +inst_30: +// rs1==x5, rd==x20, +// opcode: mop.r.30 ; op1:x5; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x20, x5, 0, -0x80000000, x3, 11*XLEN/8, x10) + +inst_31: +// rs1==x16, rd==x18, +// opcode: mop.r.30 ; op1:x16; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.30, x18, x16, 0, -0x80000000, x3, 12*XLEN/8, x10) + +inst_32: +// imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.30 ; op1:x30; dest:x31; op1val:-0x8001; immval:0x1 +TEST_R_OP( mop.r.30, x31, x30, 0, -0x8001, x3, 13*XLEN/8, x10) +#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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 14*((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/Zimop/src/mop.r.31-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.31-01.S new file mode 100644 index 000000000..60378a88e --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.31-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.31 instruction of the RISC-V RV32Zimop extension for the mop.r.31 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.31) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x2, rd==x2, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.31 ; op1:x2; dest:x2; op1val:0x2; immval:-0x800 +TEST_R_OP( mop.r.31, x2, x2, 0, 0x2, x3, 0*XLEN/8, x19) + +inst_1: +// rs1 != rd, rs1==x24, rd==x15, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.31 ; op1:x24; dest:x15; op1val:0x7; immval:0x7ff +TEST_R_OP( mop.r.31, x15, x24, 0, 0x7, x3, 1*XLEN/8, x19) + +inst_2: +// rs1==x18, rd==x8, imm_val == 0, +// opcode: mop.r.31 ; op1:x18; dest:x8; op1val:-0x5; immval:0x0 +TEST_R_OP( mop.r.31, x8, x18, 0, -0x5, x3, 2*XLEN/8, x19) + +inst_3: +// rs1==x10, rd==x17, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.31 ; op1:x10; dest:x17; op1val:-0x40000000; immval:0x1 +TEST_R_OP( mop.r.31, x17, x10, 0, -0x40000000, x3, 3*XLEN/8, x19) + +inst_4: +// rs1==x17, rd==x1, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.31 ; op1:x17; dest:x1; op1val:-0x400001; immval:-0x800 +TEST_R_OP( mop.r.31, x1, x17, 0, -0x400001, x3, 4*XLEN/8, x19) + +inst_5: +// rs1==x22, rd==x10, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.31 ; op1:x22; dest:x10; op1val:-0x80000000; immval:0x10 +TEST_R_OP( mop.r.31, x10, x22, 0, -0x80000000, x3, 5*XLEN/8, x19) + +inst_6: +// rs1==x12, rd==x27, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.31 ; op1:x12; dest:x27; op1val:0x7fffffff; immval:-0x7 +TEST_R_OP( mop.r.31, x27, x12, 0, 0x7fffffff, x3, 6*XLEN/8, x19) + +inst_7: +// rs1==x21, rd==x5, rs1_val == 0, +// opcode: mop.r.31 ; op1:x21; dest:x5; op1val:0x0; immval:-0x2d +TEST_R_OP( mop.r.31, x5, x21, 0, 0x0, x3, 7*XLEN/8, x19) + +inst_8: +// rs1==x13, rd==x0, rs1_val == 1, +// opcode: mop.r.31 ; op1:x13; dest:x0; op1val:0x1; immval:0x0 +TEST_R_OP( mop.r.31, x0, x13, 0, 0x1, x3, 8*XLEN/8, x19) + +inst_9: +// rs1==x7, rd==x16, rs1_val == imm_val, +// opcode: mop.r.31 ; op1:x7; dest:x16; op1val:0x3; immval:0x3 +TEST_R_OP( mop.r.31, x16, x7, 0, 0x3, x3, 9*XLEN/8, x19) + +inst_10: +// rs1==x29, rd==x28, +// opcode: mop.r.31 ; op1:x29; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x28, x29, 0, -0x80000000, x3, 10*XLEN/8, x19) + +inst_11: +// rs1==x27, rd==x4, +// opcode: mop.r.31 ; op1:x27; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x4, x27, 0, -0x80000000, x3, 11*XLEN/8, x19) + +inst_12: +// rs1==x16, rd==x11, +// opcode: mop.r.31 ; op1:x16; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x11, x16, 0, -0x80000000, x3, 12*XLEN/8, x19) + +inst_13: +// rs1==x14, rd==x23, +// opcode: mop.r.31 ; op1:x14; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x23, x14, 0, -0x80000000, x3, 13*XLEN/8, x19) + +inst_14: +// rs1==x15, rd==x22, +// opcode: mop.r.31 ; op1:x15; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x22, x15, 0, -0x80000000, x3, 14*XLEN/8, x19) + +inst_15: +// rs1==x4, rd==x7, +// opcode: mop.r.31 ; op1:x4; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x7, x4, 0, -0x80000000, x3, 15*XLEN/8, x19) + +inst_16: +// rs1==x6, rd==x14, +// opcode: mop.r.31 ; op1:x6; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x14, x6, 0, -0x80000000, x3, 16*XLEN/8, x19) + +inst_17: +// rs1==x20, rd==x9, +// opcode: mop.r.31 ; op1:x20; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x9, x20, 0, -0x80000000, x3, 17*XLEN/8, x19) + +inst_18: +// rs1==x8, rd==x25, +// opcode: mop.r.31 ; op1:x8; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x25, x8, 0, -0x80000000, x3, 18*XLEN/8, x19) + +inst_19: +// rs1==x31, rd==x19, +// opcode: mop.r.31 ; op1:x31; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x19, x31, 0, -0x80000000, x3, 19*XLEN/8, x4) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_20: +// rs1==x3, rd==x18, +// opcode: mop.r.31 ; op1:x3; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x18, x3, 0, -0x80000000, x2, 0*XLEN/8, x4) + +inst_21: +// rs1==x0, rd==x26, +// opcode: mop.r.31 ; op1:x0; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x26, x0, 0, 0x0, x2, 1*XLEN/8, x4) + +inst_22: +// rs1==x11, rd==x24, +// opcode: mop.r.31 ; op1:x11; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x24, x11, 0, -0x80000000, x2, 2*XLEN/8, x4) + +inst_23: +// rs1==x1, rd==x12, +// opcode: mop.r.31 ; op1:x1; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x12, x1, 0, -0x80000000, x2, 3*XLEN/8, x4) + +inst_24: +// rs1==x26, rd==x20, +// opcode: mop.r.31 ; op1:x26; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x20, x26, 0, -0x80000000, x2, 4*XLEN/8, x4) + +inst_25: +// rs1==x25, rd==x3, +// opcode: mop.r.31 ; op1:x25; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x3, x25, 0, -0x80000000, x2, 5*XLEN/8, x4) + +inst_26: +// rs1==x28, rd==x13, +// opcode: mop.r.31 ; op1:x28; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x13, x28, 0, -0x80000000, x2, 6*XLEN/8, x4) + +inst_27: +// rs1==x30, rd==x31, +// opcode: mop.r.31 ; op1:x30; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x31, x30, 0, -0x80000000, x2, 7*XLEN/8, x4) + +inst_28: +// rs1==x19, rd==x29, +// opcode: mop.r.31 ; op1:x19; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x29, x19, 0, -0x80000000, x2, 8*XLEN/8, x4) + +inst_29: +// rs1==x9, rd==x21, +// opcode: mop.r.31 ; op1:x9; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x21, x9, 0, -0x80000000, x2, 9*XLEN/8, x4) + +inst_30: +// rs1==x5, rd==x30, +// opcode: mop.r.31 ; op1:x5; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x30, x5, 0, -0x80000000, x2, 10*XLEN/8, x4) + +inst_31: +// rs1==x23, rd==x6, +// opcode: mop.r.31 ; op1:x23; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.31, x6, x23, 0, -0x80000000, x2, 11*XLEN/8, x4) + +inst_32: +// rs1_val == 1, +// opcode: mop.r.31 ; op1:x30; dest:x31; op1val:0x1; immval:0x0 +TEST_R_OP( mop.r.31, x31, x30, 0, 0x1, x2, 12*XLEN/8, x4) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 13*((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/Zimop/src/mop.r.4-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.4-01.S new file mode 100644 index 000000000..1e57aa256 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.4-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.4 instruction of the RISC-V RV32Zimop extension for the mop.r.4 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.4) + +RVTEST_SIGBASE(x17,signature_x17_1) + +inst_0: +// rs1 == rd, rs1==x26, rd==x26, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.4 ; op1:x26; dest:x26; op1val:0x8000000; immval:-0x800 +TEST_R_OP( mop.r.4, x26, x26, 0, 0x8000000, x17, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x6, rd==x24, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.4 ; op1:x6; dest:x24; op1val:-0x9; immval:0x7ff +TEST_R_OP( mop.r.4, x24, x6, 0, -0x9, x17, 1*XLEN/8, x9) + +inst_2: +// rs1==x11, rd==x10, imm_val == 0, +// opcode: mop.r.4 ; op1:x11; dest:x10; op1val:0x20000000; immval:0x0 +TEST_R_OP( mop.r.4, x10, x11, 0, 0x20000000, x17, 2*XLEN/8, x9) + +inst_3: +// rs1==x7, rd==x3, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.4 ; op1:x7; dest:x3; op1val:0x2; immval:0x1 +TEST_R_OP( mop.r.4, x3, x7, 0, 0x2, x17, 3*XLEN/8, x9) + +inst_4: +// rs1==x22, rd==x31, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.4 ; op1:x22; dest:x31; op1val:-0x20001; immval:-0x201 +TEST_R_OP( mop.r.4, x31, x22, 0, -0x20001, x17, 4*XLEN/8, x9) + +inst_5: +// rs1==x1, rd==x15, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.4 ; op1:x1; dest:x15; op1val:-0x80000000; immval:0x332 +TEST_R_OP( mop.r.4, x15, x1, 0, -0x80000000, x17, 5*XLEN/8, x9) + +inst_6: +// rs1==x0, rd==x25, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.4 ; op1:x0; dest:x25; op1val:0x0; immval:-0x21 +TEST_R_OP( mop.r.4, x25, x0, 0, 0x0, x17, 6*XLEN/8, x9) + +inst_7: +// rs1==x18, rd==x12, rs1_val == 0, +// opcode: mop.r.4 ; op1:x18; dest:x12; op1val:0x0; immval:-0x2 +TEST_R_OP( mop.r.4, x12, x18, 0, 0x0, x17, 7*XLEN/8, x9) + +inst_8: +// rs1==x4, rd==x11, rs1_val == 1, +// opcode: mop.r.4 ; op1:x4; dest:x11; op1val:0x1; immval:-0x1 +TEST_R_OP( mop.r.4, x11, x4, 0, 0x1, x17, 8*XLEN/8, x9) + +inst_9: +// rs1==x15, rd==x22, rs1_val == imm_val, +// opcode: mop.r.4 ; op1:x15; dest:x22; op1val:-0x3; immval:-0x3 +TEST_R_OP( mop.r.4, x22, x15, 0, -0x3, x17, 9*XLEN/8, x9) + +inst_10: +// rs1==x2, rd==x5, +// opcode: mop.r.4 ; op1:x2; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x5, x2, 0, -0x80000000, x17, 10*XLEN/8, x9) + +inst_11: +// rs1==x12, rd==x27, +// opcode: mop.r.4 ; op1:x12; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x27, x12, 0, -0x80000000, x17, 11*XLEN/8, x9) + +inst_12: +// rs1==x16, rd==x23, +// opcode: mop.r.4 ; op1:x16; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x23, x16, 0, -0x80000000, x17, 12*XLEN/8, x9) + +inst_13: +// rs1==x28, rd==x4, +// opcode: mop.r.4 ; op1:x28; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x4, x28, 0, -0x80000000, x17, 13*XLEN/8, x9) + +inst_14: +// rs1==x29, rd==x18, +// opcode: mop.r.4 ; op1:x29; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x18, x29, 0, -0x80000000, x17, 14*XLEN/8, x9) + +inst_15: +// rs1==x30, rd==x29, +// opcode: mop.r.4 ; op1:x30; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x29, x30, 0, -0x80000000, x17, 15*XLEN/8, x9) + +inst_16: +// rs1==x8, rd==x14, +// opcode: mop.r.4 ; op1:x8; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x14, x8, 0, -0x80000000, x17, 16*XLEN/8, x9) + +inst_17: +// rs1==x27, rd==x28, +// opcode: mop.r.4 ; op1:x27; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x28, x27, 0, -0x80000000, x17, 17*XLEN/8, x9) + +inst_18: +// rs1==x13, rd==x16, +// opcode: mop.r.4 ; op1:x13; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x16, x13, 0, -0x80000000, x17, 18*XLEN/8, x9) + +inst_19: +// rs1==x3, rd==x1, +// opcode: mop.r.4 ; op1:x3; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x1, x3, 0, -0x80000000, x17, 19*XLEN/8, x4) + +inst_20: +// rs1==x5, rd==x9, +// opcode: mop.r.4 ; op1:x5; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x9, x5, 0, -0x80000000, x17, 20*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_21: +// rs1==x23, rd==x8, +// opcode: mop.r.4 ; op1:x23; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x8, x23, 0, -0x80000000, x1, 0*XLEN/8, x4) + +inst_22: +// rs1==x24, rd==x13, +// opcode: mop.r.4 ; op1:x24; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x13, x24, 0, -0x80000000, x1, 1*XLEN/8, x4) + +inst_23: +// rs1==x17, rd==x19, +// opcode: mop.r.4 ; op1:x17; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x19, x17, 0, -0x80000000, x1, 2*XLEN/8, x4) + +inst_24: +// rs1==x21, rd==x6, +// opcode: mop.r.4 ; op1:x21; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x6, x21, 0, -0x80000000, x1, 3*XLEN/8, x4) + +inst_25: +// rs1==x20, rd==x21, +// opcode: mop.r.4 ; op1:x20; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x21, x20, 0, -0x80000000, x1, 4*XLEN/8, x4) + +inst_26: +// rs1==x14, rd==x30, +// opcode: mop.r.4 ; op1:x14; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x30, x14, 0, -0x80000000, x1, 5*XLEN/8, x4) + +inst_27: +// rs1==x25, rd==x2, +// opcode: mop.r.4 ; op1:x25; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x2, x25, 0, -0x80000000, x1, 6*XLEN/8, x4) + +inst_28: +// rs1==x31, rd==x20, +// opcode: mop.r.4 ; op1:x31; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x20, x31, 0, -0x80000000, x1, 7*XLEN/8, x4) + +inst_29: +// rs1==x9, rd==x7, +// opcode: mop.r.4 ; op1:x9; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x7, x9, 0, -0x80000000, x1, 8*XLEN/8, x4) + +inst_30: +// rs1==x10, rd==x0, +// opcode: mop.r.4 ; op1:x10; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x0, x10, 0, -0x80000000, x1, 9*XLEN/8, x4) + +inst_31: +// rs1==x19, rd==x17, +// opcode: mop.r.4 ; op1:x19; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.4, x17, x19, 0, -0x80000000, x1, 10*XLEN/8, x4) + +inst_32: +// rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.4 ; op1:x30; dest:x31; op1val:0x7fffffff; immval:-0x21 +TEST_R_OP( mop.r.4, x31, x30, 0, 0x7fffffff, x1, 11*XLEN/8, x4) +#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_x17_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x17_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 12*((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/Zimop/src/mop.r.5-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.5-01.S new file mode 100644 index 000000000..33148339a --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.5-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.5 instruction of the RISC-V RV32Zimop extension for the mop.r.5 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.5) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd, rs1==x16, rd==x16, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.5 ; op1:x16; dest:x16; op1val:0x33333333; immval:-0x800 +TEST_R_OP( mop.r.5, x16, x16, 0, 0x33333333, x6, 0*XLEN/8, x15) + +inst_1: +// rs1 != rd, rs1==x7, rd==x30, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.5 ; op1:x7; dest:x30; op1val:0x200000; immval:0x7ff +TEST_R_OP( mop.r.5, x30, x7, 0, 0x200000, x6, 1*XLEN/8, x15) + +inst_2: +// rs1==x27, rd==x29, imm_val == 0, +// opcode: mop.r.5 ; op1:x27; dest:x29; op1val:0x55555555; immval:0x0 +TEST_R_OP( mop.r.5, x29, x27, 0, 0x55555555, x6, 2*XLEN/8, x15) + +inst_3: +// rs1==x30, rd==x14, imm_val == 1, +// opcode: mop.r.5 ; op1:x30; dest:x14; op1val:0x55555554; immval:0x1 +TEST_R_OP( mop.r.5, x14, x30, 0, 0x55555554, x6, 3*XLEN/8, x15) + +inst_4: +// rs1==x21, rd==x23, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.5 ; op1:x21; dest:x23; op1val:-0xb504; immval:-0x5 +TEST_R_OP( mop.r.5, x23, x21, 0, -0xb504, x6, 4*XLEN/8, x15) + +inst_5: +// rs1==x24, rd==x31, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.5 ; op1:x24; dest:x31; op1val:-0xb503; immval:0x333 +TEST_R_OP( mop.r.5, x31, x24, 0, -0xb503, x6, 5*XLEN/8, x15) + +inst_6: +// rs1==x18, rd==x5, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.5 ; op1:x18; dest:x5; op1val:-0x80000000; immval:-0x11 +TEST_R_OP( mop.r.5, x5, x18, 0, -0x80000000, x6, 6*XLEN/8, x15) + +inst_7: +// rs1==x12, rd==x26, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.5 ; op1:x12; dest:x26; op1val:0x7fffffff; immval:-0x5 +TEST_R_OP( mop.r.5, x26, x12, 0, 0x7fffffff, x6, 7*XLEN/8, x15) + +inst_8: +// rs1==x10, rd==x4, rs1_val == 0, +// opcode: mop.r.5 ; op1:x10; dest:x4; op1val:0x0; immval:0x554 +TEST_R_OP( mop.r.5, x4, x10, 0, 0x0, x6, 8*XLEN/8, x15) + +inst_9: +// rs1==x31, rd==x21, rs1_val == 1, +// opcode: mop.r.5 ; op1:x31; dest:x21; op1val:0x1; immval:0x555 +TEST_R_OP( mop.r.5, x21, x31, 0, 0x1, x6, 9*XLEN/8, x15) + +inst_10: +// rs1==x19, rd==x11, rs1_val == imm_val, +// opcode: mop.r.5 ; op1:x19; dest:x11; op1val:-0x401; immval:-0x401 +TEST_R_OP( mop.r.5, x11, x19, 0, -0x401, x6, 10*XLEN/8, x15) + +inst_11: +// rs1==x17, rd==x3, +// opcode: mop.r.5 ; op1:x17; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x3, x17, 0, -0x80000000, x6, 11*XLEN/8, x15) + +inst_12: +// rs1==x8, rd==x24, +// opcode: mop.r.5 ; op1:x8; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x24, x8, 0, -0x80000000, x6, 12*XLEN/8, x15) + +inst_13: +// rs1==x29, rd==x8, +// opcode: mop.r.5 ; op1:x29; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x8, x29, 0, -0x80000000, x6, 13*XLEN/8, x15) + +inst_14: +// rs1==x1, rd==x9, +// opcode: mop.r.5 ; op1:x1; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x9, x1, 0, -0x80000000, x6, 14*XLEN/8, x15) + +inst_15: +// rs1==x0, rd==x10, +// opcode: mop.r.5 ; op1:x0; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x10, x0, 0, 0x0, x6, 15*XLEN/8, x15) + +inst_16: +// rs1==x14, rd==x7, +// opcode: mop.r.5 ; op1:x14; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x7, x14, 0, -0x80000000, x6, 16*XLEN/8, x15) + +inst_17: +// rs1==x2, rd==x19, +// opcode: mop.r.5 ; op1:x2; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x19, x2, 0, -0x80000000, x6, 17*XLEN/8, x15) + +inst_18: +// rs1==x5, rd==x12, +// opcode: mop.r.5 ; op1:x5; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x12, x5, 0, -0x80000000, x6, 18*XLEN/8, x15) + +inst_19: +// rs1==x4, rd==x28, +// opcode: mop.r.5 ; op1:x4; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x28, x4, 0, -0x80000000, x6, 19*XLEN/8, x15) + +inst_20: +// rs1==x3, rd==x13, +// opcode: mop.r.5 ; op1:x3; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x13, x3, 0, -0x80000000, x6, 20*XLEN/8, x15) + +inst_21: +// rs1==x26, rd==x25, +// opcode: mop.r.5 ; op1:x26; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x25, x26, 0, -0x80000000, x6, 21*XLEN/8, x4) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_22: +// rs1==x13, rd==x20, +// opcode: mop.r.5 ; op1:x13; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x20, x13, 0, -0x80000000, x3, 0*XLEN/8, x4) + +inst_23: +// rs1==x22, rd==x17, +// opcode: mop.r.5 ; op1:x22; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x17, x22, 0, -0x80000000, x3, 1*XLEN/8, x4) + +inst_24: +// rs1==x25, rd==x1, +// opcode: mop.r.5 ; op1:x25; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x1, x25, 0, -0x80000000, x3, 2*XLEN/8, x4) + +inst_25: +// rs1==x20, rd==x27, +// opcode: mop.r.5 ; op1:x20; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x27, x20, 0, -0x80000000, x3, 3*XLEN/8, x4) + +inst_26: +// rs1==x11, rd==x22, +// opcode: mop.r.5 ; op1:x11; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x22, x11, 0, -0x80000000, x3, 4*XLEN/8, x4) + +inst_27: +// rs1==x6, rd==x18, +// opcode: mop.r.5 ; op1:x6; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x18, x6, 0, -0x80000000, x3, 5*XLEN/8, x4) + +inst_28: +// rs1==x9, rd==x2, +// opcode: mop.r.5 ; op1:x9; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x2, x9, 0, -0x80000000, x3, 6*XLEN/8, x4) + +inst_29: +// rs1==x15, rd==x6, +// opcode: mop.r.5 ; op1:x15; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x6, x15, 0, -0x80000000, x3, 7*XLEN/8, x4) + +inst_30: +// rs1==x23, rd==x0, +// opcode: mop.r.5 ; op1:x23; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x0, x23, 0, -0x80000000, x3, 8*XLEN/8, x4) + +inst_31: +// rs1==x28, rd==x15, +// opcode: mop.r.5 ; op1:x28; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.5, x15, x28, 0, -0x80000000, x3, 9*XLEN/8, x4) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 10*((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/Zimop/src/mop.r.6-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.6-01.S new file mode 100644 index 000000000..6d71b5d27 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.6-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.6 instruction of the RISC-V RV32Zimop extension for the mop.r.6 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.6) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x0, rd==x0, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.6 ; op1:x0; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x0, x0, 0, 0x0, x3, 0*XLEN/8, x6) + +inst_1: +// rs1 != rd, rs1==x9, rd==x23, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.6 ; op1:x9; dest:x23; op1val:0x5; immval:0x7ff +TEST_R_OP( mop.r.6, x23, x9, 0, 0x5, x3, 1*XLEN/8, x6) + +inst_2: +// rs1==x15, rd==x2, imm_val == 0, +// opcode: mop.r.6 ; op1:x15; dest:x2; op1val:0x800; immval:0x0 +TEST_R_OP( mop.r.6, x2, x15, 0, 0x800, x3, 2*XLEN/8, x6) + +inst_3: +// rs1==x21, rd==x16, imm_val == 1, +// opcode: mop.r.6 ; op1:x21; dest:x16; op1val:0x400; immval:0x1 +TEST_R_OP( mop.r.6, x16, x21, 0, 0x400, x3, 3*XLEN/8, x6) + +inst_4: +// rs1==x8, rd==x1, rs1_val < 0 and imm_val < 0, rs1_val == (-2**(xlen-1)) +// opcode: mop.r.6 ; op1:x8; dest:x1; op1val:-0x80000000; immval:-0x2d +TEST_R_OP( mop.r.6, x1, x8, 0, -0x80000000, x3, 4*XLEN/8, x6) + +inst_5: +// rs1==x11, rd==x30, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.6 ; op1:x11; dest:x30; op1val:-0x801; immval:0x6 +TEST_R_OP( mop.r.6, x30, x11, 0, -0x801, x3, 5*XLEN/8, x6) + +inst_6: +// rs1==x12, rd==x21, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.6 ; op1:x12; dest:x21; op1val:0x7fffffff; immval:-0x800 +TEST_R_OP( mop.r.6, x21, x12, 0, 0x7fffffff, x3, 6*XLEN/8, x6) + +inst_7: +// rs1==x26, rd==x8, rs1_val == 0, +// opcode: mop.r.6 ; op1:x26; dest:x8; op1val:0x0; immval:0x2c +TEST_R_OP( mop.r.6, x8, x26, 0, 0x0, x3, 7*XLEN/8, x6) + +inst_8: +// rs1==x24, rd==x17, rs1_val == 1, +// opcode: mop.r.6 ; op1:x24; dest:x17; op1val:0x1; immval:0x400 +TEST_R_OP( mop.r.6, x17, x24, 0, 0x1, x3, 8*XLEN/8, x6) + +inst_9: +// rs1==x17, rd==x9, rs1_val == imm_val, +// opcode: mop.r.6 ; op1:x17; dest:x9; op1val:-0x6; immval:-0x6 +TEST_R_OP( mop.r.6, x9, x17, 0, -0x6, x3, 9*XLEN/8, x6) + +inst_10: +// rs1==x19, rd==x26, +// opcode: mop.r.6 ; op1:x19; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x26, x19, 0, -0x80000000, x3, 10*XLEN/8, x6) + +inst_11: +// rs1==x18, rd==x29, +// opcode: mop.r.6 ; op1:x18; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x29, x18, 0, -0x80000000, x3, 11*XLEN/8, x6) + +inst_12: +// rs1==x7, rd==x13, +// opcode: mop.r.6 ; op1:x7; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x13, x7, 0, -0x80000000, x3, 12*XLEN/8, x6) + +inst_13: +// rs1==x13, rd==x14, +// opcode: mop.r.6 ; op1:x13; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x14, x13, 0, -0x80000000, x3, 13*XLEN/8, x6) + +inst_14: +// rs1==x5, rd==x19, +// opcode: mop.r.6 ; op1:x5; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x19, x5, 0, -0x80000000, x3, 14*XLEN/8, x6) + +inst_15: +// rs1==x4, rd==x5, +// opcode: mop.r.6 ; op1:x4; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x5, x4, 0, -0x80000000, x3, 15*XLEN/8, x6) + +inst_16: +// rs1==x29, rd==x18, +// opcode: mop.r.6 ; op1:x29; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x18, x29, 0, -0x80000000, x3, 16*XLEN/8, x6) + +inst_17: +// rs1==x30, rd==x27, +// opcode: mop.r.6 ; op1:x30; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x27, x30, 0, -0x80000000, x3, 17*XLEN/8, x6) + +inst_18: +// rs1==x20, rd==x7, +// opcode: mop.r.6 ; op1:x20; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x7, x20, 0, -0x80000000, x3, 18*XLEN/8, x6) + +inst_19: +// rs1==x31, rd==x4, +// opcode: mop.r.6 ; op1:x31; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x4, x31, 0, -0x80000000, x3, 19*XLEN/8, x6) + +inst_20: +// rs1==x22, rd==x28, +// opcode: mop.r.6 ; op1:x22; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x28, x22, 0, -0x80000000, x3, 20*XLEN/8, x6) +RVTEST_SIGBASE(x4,signature_x4_0) + +inst_21: +// rs1==x28, rd==x3, +// opcode: mop.r.6 ; op1:x28; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x3, x28, 0, -0x80000000, x4, 0*XLEN/8, x5) + +inst_22: +// rs1==x10, rd==x15, +// opcode: mop.r.6 ; op1:x10; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x15, x10, 0, -0x80000000, x4, 1*XLEN/8, x5) + +inst_23: +// rs1==x3, rd==x10, +// opcode: mop.r.6 ; op1:x3; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x10, x3, 0, -0x80000000, x4, 2*XLEN/8, x5) + +inst_24: +// rs1==x27, rd==x12, +// opcode: mop.r.6 ; op1:x27; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x12, x27, 0, -0x80000000, x4, 3*XLEN/8, x5) + +inst_25: +// rs1==x23, rd==x6, +// opcode: mop.r.6 ; op1:x23; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x6, x23, 0, -0x80000000, x4, 4*XLEN/8, x5) + +inst_26: +// rs1==x16, rd==x20, +// opcode: mop.r.6 ; op1:x16; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x20, x16, 0, -0x80000000, x4, 5*XLEN/8, x5) + +inst_27: +// rs1==x1, rd==x11, +// opcode: mop.r.6 ; op1:x1; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x11, x1, 0, -0x80000000, x4, 6*XLEN/8, x5) + +inst_28: +// rs1==x6, rd==x25, +// opcode: mop.r.6 ; op1:x6; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x25, x6, 0, -0x80000000, x4, 7*XLEN/8, x5) + +inst_29: +// rs1==x2, rd==x22, +// opcode: mop.r.6 ; op1:x2; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x22, x2, 0, -0x80000000, x4, 8*XLEN/8, x5) + +inst_30: +// rs1==x14, rd==x24, +// opcode: mop.r.6 ; op1:x14; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x24, x14, 0, -0x80000000, x4, 9*XLEN/8, x5) + +inst_31: +// rs1==x25, rd==x31, +// opcode: mop.r.6 ; op1:x25; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.6, x31, x25, 0, -0x80000000, x4, 10*XLEN/8, x5) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_0: + .fill 11*((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/Zimop/src/mop.r.7-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.7-01.S new file mode 100644 index 000000000..2a3089369 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.7-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.7 instruction of the RISC-V RV32Zimop extension for the mop.r.7 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.7) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x24, rd==x24, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.7 ; op1:x24; dest:x24; op1val:-0x10001; immval:-0x800 +TEST_R_OP( mop.r.7, x24, x24, 0, -0x10001, x3, 0*XLEN/8, x7) + +inst_1: +// rs1 != rd, rs1==x0, rd==x6, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.7 ; op1:x0; dest:x6; op1val:0x0; immval:0x7ff +TEST_R_OP( mop.r.7, x6, x0, 0, 0x0, x3, 1*XLEN/8, x7) + +inst_2: +// rs1==x14, rd==x10, imm_val == 0, +// opcode: mop.r.7 ; op1:x14; dest:x10; op1val:-0x401; immval:0x0 +TEST_R_OP( mop.r.7, x10, x14, 0, -0x401, x3, 2*XLEN/8, x7) + +inst_3: +// rs1==x31, rd==x5, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.7 ; op1:x31; dest:x5; op1val:0x4000; immval:0x1 +TEST_R_OP( mop.r.7, x5, x31, 0, 0x4000, x3, 3*XLEN/8, x7) + +inst_4: +// rs1==x29, rd==x11, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.7 ; op1:x29; dest:x11; op1val:-0x80000000; immval:0x20 +TEST_R_OP( mop.r.7, x11, x29, 0, -0x80000000, x3, 4*XLEN/8, x7) + +inst_5: +// rs1==x21, rd==x22, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.7 ; op1:x21; dest:x22; op1val:0x7fffffff; immval:-0x556 +TEST_R_OP( mop.r.7, x22, x21, 0, 0x7fffffff, x3, 5*XLEN/8, x7) + +inst_6: +// rs1==x25, rd==x15, rs1_val == 0, +// opcode: mop.r.7 ; op1:x25; dest:x15; op1val:0x0; immval:0x3 +TEST_R_OP( mop.r.7, x15, x25, 0, 0x0, x3, 6*XLEN/8, x7) + +inst_7: +// rs1==x4, rd==x16, rs1_val == 1, +// opcode: mop.r.7 ; op1:x4; dest:x16; op1val:0x1; immval:-0x401 +TEST_R_OP( mop.r.7, x16, x4, 0, 0x1, x3, 7*XLEN/8, x7) + +inst_8: +// rs1==x17, rd==x27, rs1_val == imm_val, +// opcode: mop.r.7 ; op1:x17; dest:x27; op1val:0x6; immval:0x6 +TEST_R_OP( mop.r.7, x27, x17, 0, 0x6, x3, 8*XLEN/8, x7) + +inst_9: +// rs1==x28, rd==x21, +// opcode: mop.r.7 ; op1:x28; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x21, x28, 0, -0x80000000, x3, 9*XLEN/8, x7) + +inst_10: +// rs1==x16, rd==x17, +// opcode: mop.r.7 ; op1:x16; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x17, x16, 0, -0x80000000, x3, 10*XLEN/8, x7) + +inst_11: +// rs1==x11, rd==x2, +// opcode: mop.r.7 ; op1:x11; dest:x2; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x2, x11, 0, -0x80000000, x3, 11*XLEN/8, x7) + +inst_12: +// rs1==x20, rd==x9, +// opcode: mop.r.7 ; op1:x20; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x9, x20, 0, -0x80000000, x3, 12*XLEN/8, x7) + +inst_13: +// rs1==x9, rd==x30, +// opcode: mop.r.7 ; op1:x9; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x30, x9, 0, -0x80000000, x3, 13*XLEN/8, x7) + +inst_14: +// rs1==x26, rd==x23, +// opcode: mop.r.7 ; op1:x26; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x23, x26, 0, -0x80000000, x3, 14*XLEN/8, x7) + +inst_15: +// rs1==x10, rd==x13, +// opcode: mop.r.7 ; op1:x10; dest:x13; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x13, x10, 0, -0x80000000, x3, 15*XLEN/8, x7) + +inst_16: +// rs1==x1, rd==x19, +// opcode: mop.r.7 ; op1:x1; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x19, x1, 0, -0x80000000, x3, 16*XLEN/8, x7) + +inst_17: +// rs1==x8, rd==x28, +// opcode: mop.r.7 ; op1:x8; dest:x28; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x28, x8, 0, -0x80000000, x3, 17*XLEN/8, x10) +RVTEST_SIGBASE(x9,signature_x9_0) + +inst_18: +// rs1==x13, rd==x12, +// opcode: mop.r.7 ; op1:x13; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x12, x13, 0, -0x80000000, x9, 0*XLEN/8, x10) + +inst_19: +// rs1==x2, rd==x14, +// opcode: mop.r.7 ; op1:x2; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x14, x2, 0, -0x80000000, x9, 1*XLEN/8, x10) + +inst_20: +// rs1==x7, rd==x1, +// opcode: mop.r.7 ; op1:x7; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x1, x7, 0, -0x80000000, x9, 2*XLEN/8, x10) + +inst_21: +// rs1==x6, rd==x8, +// opcode: mop.r.7 ; op1:x6; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x8, x6, 0, -0x80000000, x9, 3*XLEN/8, x10) + +inst_22: +// rs1==x3, rd==x29, +// opcode: mop.r.7 ; op1:x3; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x29, x3, 0, -0x80000000, x9, 4*XLEN/8, x10) + +inst_23: +// rs1==x5, rd==x4, +// opcode: mop.r.7 ; op1:x5; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x4, x5, 0, -0x80000000, x9, 5*XLEN/8, x10) + +inst_24: +// rs1==x12, rd==x25, +// opcode: mop.r.7 ; op1:x12; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x25, x12, 0, -0x80000000, x9, 6*XLEN/8, x10) + +inst_25: +// rs1==x27, rd==x0, +// opcode: mop.r.7 ; op1:x27; dest:x0; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x0, x27, 0, -0x80000000, x9, 7*XLEN/8, x10) + +inst_26: +// rs1==x18, rd==x26, +// opcode: mop.r.7 ; op1:x18; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x26, x18, 0, -0x80000000, x9, 8*XLEN/8, x10) + +inst_27: +// rs1==x30, rd==x3, +// opcode: mop.r.7 ; op1:x30; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x3, x30, 0, -0x80000000, x9, 9*XLEN/8, x10) + +inst_28: +// rs1==x22, rd==x20, +// opcode: mop.r.7 ; op1:x22; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x20, x22, 0, -0x80000000, x9, 10*XLEN/8, x10) + +inst_29: +// rs1==x23, rd==x31, +// opcode: mop.r.7 ; op1:x23; dest:x31; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x31, x23, 0, -0x80000000, x9, 11*XLEN/8, x10) + +inst_30: +// rs1==x19, rd==x7, +// opcode: mop.r.7 ; op1:x19; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x7, x19, 0, -0x80000000, x9, 12*XLEN/8, x10) + +inst_31: +// rs1==x15, rd==x18, +// opcode: mop.r.7 ; op1:x15; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.7, x18, x15, 0, -0x80000000, x9, 13*XLEN/8, x10) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.7 ; op1:x30; dest:x31; op1val:-0x20000001; immval:0x7ff +TEST_R_OP( mop.r.7, x31, x30, 0, -0x20000001, x9, 14*XLEN/8, x10) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x9_0: + .fill 15*((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/Zimop/src/mop.r.8-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.8-01.S new file mode 100644 index 000000000..2645d0fe0 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.8-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.8 instruction of the RISC-V RV32Zimop extension for the mop.r.8 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.8) + +RVTEST_SIGBASE(x9,signature_x9_1) + +inst_0: +// rs1 == rd, rs1==x28, rd==x28, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.8 ; op1:x28; dest:x28; op1val:-0x1000001; immval:-0x800 +TEST_R_OP( mop.r.8, x28, x28, 0, -0x1000001, x9, 0*XLEN/8, x18) + +inst_1: +// rs1 != rd, rs1==x7, rd==x15, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.8 ; op1:x7; dest:x15; op1val:-0x2001; immval:0x7ff +TEST_R_OP( mop.r.8, x15, x7, 0, -0x2001, x9, 1*XLEN/8, x18) + +inst_2: +// rs1==x11, rd==x31, imm_val == 0, +// opcode: mop.r.8 ; op1:x11; dest:x31; op1val:0x100000; immval:0x0 +TEST_R_OP( mop.r.8, x31, x11, 0, 0x100000, x9, 2*XLEN/8, x18) + +inst_3: +// rs1==x15, rd==x16, imm_val == 1, +// opcode: mop.r.8 ; op1:x15; dest:x16; op1val:-0x80001; immval:0x1 +TEST_R_OP( mop.r.8, x16, x15, 0, -0x80001, x9, 3*XLEN/8, x18) + +inst_4: +// rs1==x3, rd==x0, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.8 ; op1:x3; dest:x0; op1val:-0x80000000; immval:-0x11 +TEST_R_OP( mop.r.8, x0, x3, 0, -0x80000000, x9, 4*XLEN/8, x18) + +inst_5: +// rs1==x10, rd==x26, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.8 ; op1:x10; dest:x26; op1val:0x7fffffff; immval:0x1 +TEST_R_OP( mop.r.8, x26, x10, 0, 0x7fffffff, x9, 5*XLEN/8, x18) + +inst_6: +// rs1==x5, rd==x13, rs1_val == 0, +// opcode: mop.r.8 ; op1:x5; dest:x13; op1val:0x0; immval:-0x7 +TEST_R_OP( mop.r.8, x13, x5, 0, 0x0, x9, 6*XLEN/8, x18) + +inst_7: +// rs1==x8, rd==x11, rs1_val == 1, +// opcode: mop.r.8 ; op1:x8; dest:x11; op1val:0x1; immval:0x555 +TEST_R_OP( mop.r.8, x11, x8, 0, 0x1, x9, 7*XLEN/8, x18) + +inst_8: +// rs1==x17, rd==x27, rs1_val == imm_val, +// opcode: mop.r.8 ; op1:x17; dest:x27; op1val:-0x6; immval:-0x6 +TEST_R_OP( mop.r.8, x27, x17, 0, -0x6, x9, 8*XLEN/8, x18) + +inst_9: +// rs1==x25, rd==x2, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.8 ; op1:x25; dest:x2; op1val:0x5; immval:-0x1 +TEST_R_OP( mop.r.8, x2, x25, 0, 0x5, x9, 9*XLEN/8, x18) + +inst_10: +// rs1==x20, rd==x25, +// opcode: mop.r.8 ; op1:x20; dest:x25; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x25, x20, 0, -0x80000000, x9, 10*XLEN/8, x18) + +inst_11: +// rs1==x31, rd==x12, +// opcode: mop.r.8 ; op1:x31; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x12, x31, 0, -0x80000000, x9, 11*XLEN/8, x18) + +inst_12: +// rs1==x21, rd==x5, +// opcode: mop.r.8 ; op1:x21; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x5, x21, 0, -0x80000000, x9, 12*XLEN/8, x18) + +inst_13: +// rs1==x1, rd==x14, +// opcode: mop.r.8 ; op1:x1; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x14, x1, 0, -0x80000000, x9, 13*XLEN/8, x18) + +inst_14: +// rs1==x2, rd==x21, +// opcode: mop.r.8 ; op1:x2; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x21, x2, 0, -0x80000000, x9, 14*XLEN/8, x18) + +inst_15: +// rs1==x19, rd==x7, +// opcode: mop.r.8 ; op1:x19; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x7, x19, 0, -0x80000000, x9, 15*XLEN/8, x18) + +inst_16: +// rs1==x26, rd==x22, +// opcode: mop.r.8 ; op1:x26; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x22, x26, 0, -0x80000000, x9, 16*XLEN/8, x18) + +inst_17: +// rs1==x6, rd==x4, +// opcode: mop.r.8 ; op1:x6; dest:x4; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x4, x6, 0, -0x80000000, x9, 17*XLEN/8, x18) + +inst_18: +// rs1==x22, rd==x29, +// opcode: mop.r.8 ; op1:x22; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x29, x22, 0, -0x80000000, x9, 18*XLEN/8, x18) + +inst_19: +// rs1==x23, rd==x24, +// opcode: mop.r.8 ; op1:x23; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x24, x23, 0, -0x80000000, x9, 19*XLEN/8, x5) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_20: +// rs1==x29, rd==x19, +// opcode: mop.r.8 ; op1:x29; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x19, x29, 0, -0x80000000, x2, 0*XLEN/8, x5) + +inst_21: +// rs1==x0, rd==x1, +// opcode: mop.r.8 ; op1:x0; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x1, x0, 0, 0x0, x2, 1*XLEN/8, x5) + +inst_22: +// rs1==x12, rd==x20, +// opcode: mop.r.8 ; op1:x12; dest:x20; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x20, x12, 0, -0x80000000, x2, 2*XLEN/8, x5) + +inst_23: +// rs1==x30, rd==x8, +// opcode: mop.r.8 ; op1:x30; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x8, x30, 0, -0x80000000, x2, 3*XLEN/8, x5) + +inst_24: +// rs1==x24, rd==x23, +// opcode: mop.r.8 ; op1:x24; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x23, x24, 0, -0x80000000, x2, 4*XLEN/8, x5) + +inst_25: +// rs1==x4, rd==x9, +// opcode: mop.r.8 ; op1:x4; dest:x9; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x9, x4, 0, -0x80000000, x2, 5*XLEN/8, x5) + +inst_26: +// rs1==x14, rd==x6, +// opcode: mop.r.8 ; op1:x14; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x6, x14, 0, -0x80000000, x2, 6*XLEN/8, x5) + +inst_27: +// rs1==x16, rd==x3, +// opcode: mop.r.8 ; op1:x16; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x3, x16, 0, -0x80000000, x2, 7*XLEN/8, x5) + +inst_28: +// rs1==x27, rd==x17, +// opcode: mop.r.8 ; op1:x27; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x17, x27, 0, -0x80000000, x2, 8*XLEN/8, x5) + +inst_29: +// rs1==x13, rd==x18, +// opcode: mop.r.8 ; op1:x13; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x18, x13, 0, -0x80000000, x2, 9*XLEN/8, x5) + +inst_30: +// rs1==x9, rd==x10, +// opcode: mop.r.8 ; op1:x9; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x10, x9, 0, -0x80000000, x2, 10*XLEN/8, x5) + +inst_31: +// rs1==x18, rd==x30, +// opcode: mop.r.8 ; op1:x18; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.8, x30, x18, 0, -0x80000000, x2, 11*XLEN/8, x5) +#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_x9_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x9_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 12*((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/Zimop/src/mop.r.9-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.9-01.S new file mode 100644 index 000000000..d7e281c73 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.r.9-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.9 instruction of the RISC-V RV32Zimop extension for the mop.r.9 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.9) + +RVTEST_SIGBASE(x10,signature_x10_1) + +inst_0: +// rs1 == rd, rs1==x28, rd==x28, imm_val == (-2**(12-1)), rs1_val == 0, rs1_val != imm_val +// opcode: mop.r.9 ; op1:x28; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x28, x28, 0, 0x0, x10, 0*XLEN/8, x14) + +inst_1: +// rs1 != rd, rs1==x17, rd==x4, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.9 ; op1:x17; dest:x4; op1val:-0x201; immval:0x7ff +TEST_R_OP( mop.r.9, x4, x17, 0, -0x201, x10, 1*XLEN/8, x14) + +inst_2: +// rs1==x8, rd==x31, imm_val == 0, +// opcode: mop.r.9 ; op1:x8; dest:x31; op1val:0x8; immval:0x0 +TEST_R_OP( mop.r.9, x31, x8, 0, 0x8, x10, 2*XLEN/8, x14) + +inst_3: +// rs1==x0, rd==x25, imm_val == 1, +// opcode: mop.r.9 ; op1:x0; dest:x25; op1val:0x0; immval:0x1 +TEST_R_OP( mop.r.9, x25, x0, 0, 0x0, x10, 3*XLEN/8, x14) + +inst_4: +// rs1==x4, rd==x13, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.9 ; op1:x4; dest:x13; op1val:-0x21; immval:-0x2c +TEST_R_OP( mop.r.9, x13, x4, 0, -0x21, x10, 4*XLEN/8, x14) + +inst_5: +// rs1==x3, rd==x0, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.9 ; op1:x3; dest:x0; op1val:-0x80000000; immval:-0x201 +TEST_R_OP( mop.r.9, x0, x3, 0, -0x80000000, x10, 5*XLEN/8, x14) + +inst_6: +// rs1==x13, rd==x20, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.9 ; op1:x13; dest:x20; op1val:0x7fffffff; immval:-0x101 +TEST_R_OP( mop.r.9, x20, x13, 0, 0x7fffffff, x10, 6*XLEN/8, x14) + +inst_7: +// rs1==x16, rd==x2, rs1_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.9 ; op1:x16; dest:x2; op1val:0x1; immval:0x5 +TEST_R_OP( mop.r.9, x2, x16, 0, 0x1, x10, 7*XLEN/8, x14) + +inst_8: +// rs1==x29, rd==x9, rs1_val == imm_val, +// opcode: mop.r.9 ; op1:x29; dest:x9; op1val:0x5; immval:0x5 +TEST_R_OP( mop.r.9, x9, x29, 0, 0x5, x10, 8*XLEN/8, x14) + +inst_9: +// rs1==x19, rd==x7, +// opcode: mop.r.9 ; op1:x19; dest:x7; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x7, x19, 0, -0x80000000, x10, 9*XLEN/8, x14) + +inst_10: +// rs1==x18, rd==x30, +// opcode: mop.r.9 ; op1:x18; dest:x30; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x30, x18, 0, -0x80000000, x10, 10*XLEN/8, x14) + +inst_11: +// rs1==x1, rd==x15, +// opcode: mop.r.9 ; op1:x1; dest:x15; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x15, x1, 0, -0x80000000, x10, 11*XLEN/8, x14) + +inst_12: +// rs1==x22, rd==x6, +// opcode: mop.r.9 ; op1:x22; dest:x6; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x6, x22, 0, -0x80000000, x10, 12*XLEN/8, x14) + +inst_13: +// rs1==x12, rd==x1, +// opcode: mop.r.9 ; op1:x12; dest:x1; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x1, x12, 0, -0x80000000, x10, 13*XLEN/8, x14) + +inst_14: +// rs1==x31, rd==x21, +// opcode: mop.r.9 ; op1:x31; dest:x21; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x21, x31, 0, -0x80000000, x10, 14*XLEN/8, x14) + +inst_15: +// rs1==x21, rd==x26, +// opcode: mop.r.9 ; op1:x21; dest:x26; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x26, x21, 0, -0x80000000, x10, 15*XLEN/8, x14) + +inst_16: +// rs1==x7, rd==x3, +// opcode: mop.r.9 ; op1:x7; dest:x3; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x3, x7, 0, -0x80000000, x10, 16*XLEN/8, x14) + +inst_17: +// rs1==x11, rd==x29, +// opcode: mop.r.9 ; op1:x11; dest:x29; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x29, x11, 0, -0x80000000, x10, 17*XLEN/8, x14) + +inst_18: +// rs1==x26, rd==x5, +// opcode: mop.r.9 ; op1:x26; dest:x5; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x5, x26, 0, -0x80000000, x10, 18*XLEN/8, x14) + +inst_19: +// rs1==x23, rd==x27, +// opcode: mop.r.9 ; op1:x23; dest:x27; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x27, x23, 0, -0x80000000, x10, 19*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_20: +// rs1==x14, rd==x18, +// opcode: mop.r.9 ; op1:x14; dest:x18; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x18, x14, 0, -0x80000000, x1, 0*XLEN/8, x3) + +inst_21: +// rs1==x30, rd==x24, +// opcode: mop.r.9 ; op1:x30; dest:x24; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x24, x30, 0, -0x80000000, x1, 1*XLEN/8, x3) + +inst_22: +// rs1==x2, rd==x11, +// opcode: mop.r.9 ; op1:x2; dest:x11; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x11, x2, 0, -0x80000000, x1, 2*XLEN/8, x3) + +inst_23: +// rs1==x20, rd==x23, +// opcode: mop.r.9 ; op1:x20; dest:x23; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x23, x20, 0, -0x80000000, x1, 3*XLEN/8, x3) + +inst_24: +// rs1==x9, rd==x10, +// opcode: mop.r.9 ; op1:x9; dest:x10; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x10, x9, 0, -0x80000000, x1, 4*XLEN/8, x3) + +inst_25: +// rs1==x27, rd==x16, +// opcode: mop.r.9 ; op1:x27; dest:x16; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x16, x27, 0, -0x80000000, x1, 5*XLEN/8, x3) + +inst_26: +// rs1==x6, rd==x8, +// opcode: mop.r.9 ; op1:x6; dest:x8; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x8, x6, 0, -0x80000000, x1, 6*XLEN/8, x3) + +inst_27: +// rs1==x10, rd==x14, +// opcode: mop.r.9 ; op1:x10; dest:x14; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x14, x10, 0, -0x80000000, x1, 7*XLEN/8, x3) + +inst_28: +// rs1==x5, rd==x19, +// opcode: mop.r.9 ; op1:x5; dest:x19; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x19, x5, 0, -0x80000000, x1, 8*XLEN/8, x3) + +inst_29: +// rs1==x24, rd==x22, +// opcode: mop.r.9 ; op1:x24; dest:x22; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x22, x24, 0, -0x80000000, x1, 9*XLEN/8, x3) + +inst_30: +// rs1==x25, rd==x17, +// opcode: mop.r.9 ; op1:x25; dest:x17; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x17, x25, 0, -0x80000000, x1, 10*XLEN/8, x3) + +inst_31: +// rs1==x15, rd==x12, +// opcode: mop.r.9 ; op1:x15; dest:x12; op1val:-0x80000000; immval:-0x800 +TEST_R_OP( mop.r.9, x12, x15, 0, -0x80000000, x1, 11*XLEN/8, x3) + +inst_32: +// imm_val == 1, +// opcode: mop.r.9 ; op1:x30; dest:x31; op1val:-0x10000001; immval:0x1 +TEST_R_OP( mop.r.9, x31, x30, 0, -0x10000001, x1, 12*XLEN/8, x3) +#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_x10_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x10_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 13*((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/Zimop/src/mop.rr.0-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.0-01.S new file mode 100644 index 000000000..de00cecb2 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.0-01.S @@ -0,0 +1,3062 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.0 instruction of the RISC-V RV32Zimop extension for the mop.rr.0 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.0) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x16, rs2==x16, rd==x16, rs1_val != rs2_val, rs1_val > 0 and rs2_val > 0, rs2_val == 4194304 +// opcode: mop.rr.0 ; op1:x16; op2:x16; dest:x16; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x16, x16, x16, 0, 0x55555556, 0x55555556, x7, 0*XLEN/8, x15) + +inst_1: +// rs1 == rs2 != rd, rs1==x12, rs2==x12, rd==x3, rs1_val < 0 and rs2_val < 0, rs1_val == -524289, rs2_val == -1431655766 +// opcode: mop.rr.0 ; op1:x12; op2:x12; dest:x3; op1val:-0x80001; op2val:-0x80001 +TEST_RR_OP(mop.rr.0, x3, x12, x12, 0, -0x80001, -0x80001, x7, 1*XLEN/8, x15) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x0, rs2==x19, rd==x10, rs1_val < 0 and rs2_val > 0, rs2_val == 4, rs1_val == -67108865 +// opcode: mop.rr.0 ; op1:x0; op2:x19; dest:x10; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.0, x10, x0, x19, 0, 0x0, 0x4, x7, 2*XLEN/8, x15) + +inst_3: +// rs2 == rd != rs1, rs1==x20, rs2==x17, rd==x17, rs1_val == (-2**(xlen-1)), rs1_val == -2147483648 +// opcode: mop.rr.0 ; op1:x20; op2:x17; dest:x17; op1val:-0x80000000; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x17, x20, x17, 0, -0x80000000, -0x55555556, x7, 3*XLEN/8, x15) + +inst_4: +// rs1 == rd != rs2, rs1==x29, rs2==x24, rd==x29, rs1_val == (2**(xlen-1)-1), rs2_val == 67108864, rs1_val == 2147483647 +// opcode: mop.rr.0 ; op1:x29; op2:x24; dest:x29; op1val:0x7fffffff; op2val:0x4000000 +TEST_RR_OP(mop.rr.0, x29, x29, x24, 0, 0x7fffffff, 0x4000000, x7, 4*XLEN/8, x15) + +inst_5: +// rs1==x24, rs2==x0, rd==x25, rs1_val == 0, rs1_val==0 and rs2_val==6 +// opcode: mop.rr.0 ; op1:x24; op2:x0; dest:x25; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.0, x25, x24, x0, 0, 0x0, 0x0, x7, 5*XLEN/8, x15) + +inst_6: +// rs1==x30, rs2==x27, rd==x5, rs1_val == 1, rs1_val > 0 and rs2_val < 0, rs2_val == -32769 +// opcode: mop.rr.0 ; op1:x30; op2:x27; dest:x5; op1val:0x1; op2val:-0x8001 +TEST_RR_OP(mop.rr.0, x5, x30, x27, 0, 0x1, -0x8001, x7, 6*XLEN/8, x15) + +inst_7: +// rs1==x18, rs2==x2, rd==x9, rs2_val == -2, +// opcode: mop.rr.0 ; op1:x18; op2:x2; dest:x9; op1val:0x3fffffff; op2val:-0x2 +TEST_RR_OP(mop.rr.0, x9, x18, x2, 0, 0x3fffffff, -0x2, x7, 7*XLEN/8, x15) + +inst_8: +// rs1==x2, rs2==x3, rd==x13, rs2_val == -3, +// opcode: mop.rr.0 ; op1:x2; op2:x3; dest:x13; op1val:0x33333332; op2val:-0x3 +TEST_RR_OP(mop.rr.0, x13, x2, x3, 0, 0x33333332, -0x3, x7, 8*XLEN/8, x15) + +inst_9: +// rs1==x8, rs2==x30, rd==x4, rs2_val == -5, +// opcode: mop.rr.0 ; op1:x8; op2:x30; dest:x4; op1val:0x3fffffff; op2val:-0x5 +TEST_RR_OP(mop.rr.0, x4, x8, x30, 0, 0x3fffffff, -0x5, x7, 9*XLEN/8, x15) + +inst_10: +// rs1==x19, rs2==x6, rd==x12, rs2_val == -9, rs1_val == -4194305 +// opcode: mop.rr.0 ; op1:x19; op2:x6; dest:x12; op1val:-0x400001; op2val:-0x9 +TEST_RR_OP(mop.rr.0, x12, x19, x6, 0, -0x400001, -0x9, x7, 10*XLEN/8, x15) + +inst_11: +// rs1==x22, rs2==x18, rd==x19, rs2_val == -17, +// opcode: mop.rr.0 ; op1:x22; op2:x18; dest:x19; op1val:0x0; op2val:-0x11 +TEST_RR_OP(mop.rr.0, x19, x22, x18, 0, 0x0, -0x11, x7, 11*XLEN/8, x15) + +inst_12: +// rs1==x14, rs2==x9, rd==x1, rs2_val == -33, +// opcode: mop.rr.0 ; op1:x14; op2:x9; dest:x1; op1val:-0x8; op2val:-0x21 +TEST_RR_OP(mop.rr.0, x1, x14, x9, 0, -0x8, -0x21, x7, 12*XLEN/8, x15) + +inst_13: +// rs1==x1, rs2==x11, rd==x20, rs2_val == -65, +// opcode: mop.rr.0 ; op1:x1; op2:x11; dest:x20; op1val:-0x1; op2val:-0x41 +TEST_RR_OP(mop.rr.0, x20, x1, x11, 0, -0x1, -0x41, x7, 13*XLEN/8, x15) + +inst_14: +// rs1==x11, rs2==x25, rd==x31, rs2_val == -129, rs1_val == -5 +// opcode: mop.rr.0 ; op1:x11; op2:x25; dest:x31; op1val:-0x5; op2val:-0x81 +TEST_RR_OP(mop.rr.0, x31, x11, x25, 0, -0x5, -0x81, x7, 14*XLEN/8, x15) + +inst_15: +// rs1==x6, rs2==x26, rd==x8, rs2_val == -257, +// opcode: mop.rr.0 ; op1:x6; op2:x26; dest:x8; op1val:0x0; op2val:-0x101 +TEST_RR_OP(mop.rr.0, x8, x6, x26, 0, 0x0, -0x101, x7, 15*XLEN/8, x12) +RVTEST_SIGBASE(x6,signature_x6_0) + +inst_16: +// rs1==x10, rs2==x31, rd==x24, rs2_val == -513, rs1_val == -8193 +// opcode: mop.rr.0 ; op1:x10; op2:x31; dest:x24; op1val:-0x2001; op2val:-0x201 +TEST_RR_OP(mop.rr.0, x24, x10, x31, 0, -0x2001, -0x201, x6, 0*XLEN/8, x12) + +inst_17: +// rs1==x4, rs2==x8, rd==x11, rs2_val == -1025, rs1_val == 524288 +// opcode: mop.rr.0 ; op1:x4; op2:x8; dest:x11; op1val:0x80000; op2val:-0x401 +TEST_RR_OP(mop.rr.0, x11, x4, x8, 0, 0x80000, -0x401, x6, 1*XLEN/8, x12) + +inst_18: +// rs1==x25, rs2==x15, rd==x27, rs2_val == -2049, +// opcode: mop.rr.0 ; op1:x25; op2:x15; dest:x27; op1val:-0x4000001; op2val:-0x801 +TEST_RR_OP(mop.rr.0, x27, x25, x15, 0, -0x4000001, -0x801, x6, 2*XLEN/8, x12) + +inst_19: +// rs1==x9, rs2==x4, rd==x28, rs2_val == -4097, +// opcode: mop.rr.0 ; op1:x9; op2:x4; dest:x28; op1val:-0x80000000; op2val:-0x1001 +TEST_RR_OP(mop.rr.0, x28, x9, x4, 0, -0x80000000, -0x1001, x6, 3*XLEN/8, x12) + +inst_20: +// rs1==x23, rs2==x10, rd==x22, rs2_val == -8193, +// opcode: mop.rr.0 ; op1:x23; op2:x10; dest:x22; op1val:0x66666666; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x22, x23, x10, 0, 0x66666666, -0x2001, x6, 4*XLEN/8, x12) + +inst_21: +// rs1==x31, rs2==x29, rd==x18, rs2_val == -16385, rs1_val == 4 +// opcode: mop.rr.0 ; op1:x31; op2:x29; dest:x18; op1val:0x4; op2val:-0x4001 +TEST_RR_OP(mop.rr.0, x18, x31, x29, 0, 0x4, -0x4001, x6, 5*XLEN/8, x12) + +inst_22: +// rs1==x27, rs2==x1, rd==x30, rs2_val == -65537, +// opcode: mop.rr.0 ; op1:x27; op2:x1; dest:x30; op1val:0x55555556; op2val:-0x10001 +TEST_RR_OP(mop.rr.0, x30, x27, x1, 0, 0x55555556, -0x10001, x6, 6*XLEN/8, x12) + +inst_23: +// rs1==x15, rs2==x28, rd==x14, rs2_val == -131073, +// opcode: mop.rr.0 ; op1:x15; op2:x28; dest:x14; op1val:-0x40000000; op2val:-0x20001 +TEST_RR_OP(mop.rr.0, x14, x15, x28, 0, -0x40000000, -0x20001, x6, 7*XLEN/8, x12) + +inst_24: +// rs1==x5, rs2==x7, rd==x26, rs2_val == -262145, +// opcode: mop.rr.0 ; op1:x5; op2:x7; dest:x26; op1val:0x0; op2val:-0x40001 +TEST_RR_OP(mop.rr.0, x26, x5, x7, 0, 0x0, -0x40001, x6, 8*XLEN/8, x12) + +inst_25: +// rs1==x26, rs2==x5, rd==x21, rs2_val == -524289, +// opcode: mop.rr.0 ; op1:x26; op2:x5; dest:x21; op1val:-0x5; op2val:-0x80001 +TEST_RR_OP(mop.rr.0, x21, x26, x5, 0, -0x5, -0x80001, x6, 9*XLEN/8, x12) + +inst_26: +// rs1==x21, rs2==x13, rd==x15, rs2_val == -1048577, rs1_val == 32768 +// opcode: mop.rr.0 ; op1:x21; op2:x13; dest:x15; op1val:0x8000; op2val:-0x100001 +TEST_RR_OP(mop.rr.0, x15, x21, x13, 0, 0x8000, -0x100001, x6, 10*XLEN/8, x12) + +inst_27: +// rs1==x3, rs2==x14, rd==x2, rs2_val == -2097153, rs1_val == 2 +// opcode: mop.rr.0 ; op1:x3; op2:x14; dest:x2; op1val:0x2; op2val:-0x200001 +TEST_RR_OP(mop.rr.0, x2, x3, x14, 0, 0x2, -0x200001, x6, 11*XLEN/8, x12) + +inst_28: +// rs1==x17, rs2==x20, rd==x7, rs2_val == -4194305, +// opcode: mop.rr.0 ; op1:x17; op2:x20; dest:x7; op1val:0x33333334; op2val:-0x400001 +TEST_RR_OP(mop.rr.0, x7, x17, x20, 0, 0x33333334, -0x400001, x6, 12*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_29: +// rs1==x13, rs2==x22, rd==x6, rs2_val == -8388609, +// opcode: mop.rr.0 ; op1:x13; op2:x22; dest:x6; op1val:-0xb504; op2val:-0x800001 +TEST_RR_OP(mop.rr.0, x6, x13, x22, 0, -0xb504, -0x800001, x1, 0*XLEN/8, x2) + +inst_30: +// rs1==x28, rs2==x21, rd==x0, rs2_val == -16777217, +// opcode: mop.rr.0 ; op1:x28; op2:x21; dest:x0; op1val:-0xb504; op2val:-0x1000001 +TEST_RR_OP(mop.rr.0, x0, x28, x21, 0, -0xb504, -0x1000001, x1, 1*XLEN/8, x2) + +inst_31: +// rs1==x7, rs2_val == -33554433, rs1_val == 262144 +// opcode: mop.rr.0 ; op1:x7; op2:x11; dest:x4; op1val:0x40000; op2val:-0x2000001 +TEST_RR_OP(mop.rr.0, x4, x7, x11, 0, 0x40000, -0x2000001, x1, 2*XLEN/8, x2) + +inst_32: +// rs2==x23, rs2_val == -67108865, rs1_val == 512 +// opcode: mop.rr.0 ; op1:x18; op2:x23; dest:x21; op1val:0x200; op2val:-0x4000001 +TEST_RR_OP(mop.rr.0, x21, x18, x23, 0, 0x200, -0x4000001, x1, 3*XLEN/8, x2) + +inst_33: +// rd==x23, rs2_val == -134217729, rs1_val == -268435457 +// opcode: mop.rr.0 ; op1:x17; op2:x30; dest:x23; op1val:-0x10000001; op2val:-0x8000001 +TEST_RR_OP(mop.rr.0, x23, x17, x30, 0, -0x10000001, -0x8000001, x1, 4*XLEN/8, x2) + +inst_34: +// rs2_val == -268435457, rs1_val == -257 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:-0x10000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x101, -0x10000001, x1, 5*XLEN/8, x2) + +inst_35: +// rs2_val == -536870913, rs1_val == 268435456 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10000000, -0x20000001, x1, 6*XLEN/8, x2) + +inst_36: +// rs2_val == -1073741825, rs1_val == -16777217 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1000001, -0x40000001, x1, 7*XLEN/8, x2) + +inst_37: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x7fffffff +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x7fffffff, x1, 8*XLEN/8, x2) + +inst_38: +// rs1_val == -2, rs2_val == 2 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2, 0x2, x1, 9*XLEN/8, x2) + +inst_39: +// rs1_val == -3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x3, 0x5, x1, 10*XLEN/8, x2) + +inst_40: +// rs1_val == -9, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x40001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x9, -0x40001, x1, 11*XLEN/8, x2) + +inst_41: +// rs1_val == -17, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x11, -0x55555555, x1, 12*XLEN/8, x2) + +inst_42: +// rs1_val == -33, rs2_val == 0 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x21, 0x0, x1, 13*XLEN/8, x2) + +inst_43: +// rs1_val == -65, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x41, -0xb503, x1, 14*XLEN/8, x2) + +inst_44: +// rs1_val == -129, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x21 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x81, -0x21, x1, 15*XLEN/8, x2) + +inst_45: +// rs1_val == -513, rs2_val == 32768 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x8000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x201, 0x8000, x1, 16*XLEN/8, x2) + +inst_46: +// rs1_val == -1025, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x401, 0x4, x1, 17*XLEN/8, x2) + +inst_47: +// rs1_val == -2049, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:-0x20001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x801, -0x20001, x1, 18*XLEN/8, x2) + +inst_48: +// rs1_val == -4097, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1001, -0x4, x1, 19*XLEN/8, x2) + +inst_49: +// rs1_val == -16385, rs2_val == 1 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x1 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4001, 0x1, x1, 20*XLEN/8, x2) + +inst_50: +// rs1_val == -32769, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:-0x41 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8001, -0x41, x1, 21*XLEN/8, x2) + +inst_51: +// rs1_val == -65537, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x10001, -0x2001, x1, 22*XLEN/8, x2) + +inst_52: +// rs1_val == -131073, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20001, -0x40000001, x1, 23*XLEN/8, x2) + +inst_53: +// rs1_val == -262145, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x10001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x40001, -0x10001, x1, 24*XLEN/8, x2) + +inst_54: +// rs1_val == -1048577, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x100001, -0xb504, x1, 25*XLEN/8, x2) + +inst_55: +// rs1_val == -2097153, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x200001, -0x3, x1, 26*XLEN/8, x2) + +inst_56: +// rs1_val == -8388609, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800001, -0x40000001, x1, 27*XLEN/8, x2) + +inst_57: +// rs1_val == -33554433, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x40001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2000001, -0x40001, x1, 28*XLEN/8, x2) + +inst_58: +// rs1_val == -134217729, rs2_val == 32 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x20 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000001, 0x20, x1, 29*XLEN/8, x2) + +inst_59: +// rs1_val == -536870913, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x4000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20000001, -0x4000001, x1, 30*XLEN/8, x2) + +inst_60: +// rs1_val == -1073741825, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x40000001, -0xb503, x1, 31*XLEN/8, x2) + +inst_61: +// rs2_val == 8, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x8 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x8, x1, 32*XLEN/8, x2) + +inst_62: +// rs2_val == 16, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x10 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x10, x1, 33*XLEN/8, x2) + +inst_63: +// rs2_val == 64, rs1_val == 8388608 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x40 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800000, 0x40, x1, 34*XLEN/8, x2) + +inst_64: +// rs2_val == 128, rs1_val == 2097152 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x80 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x200000, 0x80, x1, 35*XLEN/8, x2) + +inst_65: +// rs2_val == 256, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x100 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x100, x1, 36*XLEN/8, x2) + +inst_66: +// rs2_val == 512, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x200 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8001, 0x200, x1, 37*XLEN/8, x2) + +inst_67: +// rs2_val == 1024, rs1_val == 64 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x400 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40, 0x400, x1, 38*XLEN/8, x2) + +inst_68: +// rs2_val == 2048, rs1_val == 4194304 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:0x800 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400000, 0x800, x1, 39*XLEN/8, x2) + +inst_69: +// rs2_val == 4096, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:0x1000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x7, 0x1000, x1, 40*XLEN/8, x2) + +inst_70: +// rs2_val == 8192, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8; op2val:0x2000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8, 0x2000, x1, 41*XLEN/8, x2) + +inst_71: +// rs2_val == 16384, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x4000, x1, 42*XLEN/8, x2) + +inst_72: +// rs2_val == 65536, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x10000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x10000, x1, 43*XLEN/8, x2) + +inst_73: +// rs2_val == 131072, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x20000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x20000, x1, 44*XLEN/8, x2) + +inst_74: +// rs2_val == 262144, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x40000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000001, 0x40000, x1, 45*XLEN/8, x2) + +inst_75: +// rs2_val == 524288, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x80000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x80000, x1, 46*XLEN/8, x2) + +inst_76: +// rs2_val == 1048576, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x100000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000001, 0x100000, x1, 47*XLEN/8, x2) + +inst_77: +// rs2_val == 2097152, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x200000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000001, 0x200000, x1, 48*XLEN/8, x2) + +inst_78: +// rs2_val == 8388608, rs1_val == 256 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x800000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x100, 0x800000, x1, 49*XLEN/8, x2) + +inst_79: +// rs2_val == 16777216, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x1000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x1000000, x1, 50*XLEN/8, x2) + +inst_80: +// rs2_val == 33554432, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:0x2000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20001, 0x2000000, x1, 51*XLEN/8, x2) + +inst_81: +// rs2_val == 134217728, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x8000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x8000000, x1, 52*XLEN/8, x2) + +inst_82: +// rs2_val == 268435456, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x10000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x10000000, x1, 53*XLEN/8, x2) + +inst_83: +// rs2_val == 536870912, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x20000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x20000000, x1, 54*XLEN/8, x2) + +inst_84: +// rs2_val == 1073741824, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:0x40000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20001, 0x40000000, x1, 55*XLEN/8, x2) + +inst_85: +// rs2_val == -2147483648, rs1_val == -1431655766, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x80000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, -0x80000000, x1, 56*XLEN/8, x2) + +inst_86: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x3, x1, 57*XLEN/8, x2) + +inst_87: +// rs1_val == 8, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x8 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x8, 0x8, x1, 58*XLEN/8, x2) + +inst_88: +// rs1_val == 16, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x8000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10, 0x8000000, x1, 59*XLEN/8, x2) + +inst_89: +// rs1_val == 32, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20, -0x2001, x1, 60*XLEN/8, x2) + +inst_90: +// rs1_val == 128, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x2000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80, -0x2000001, x1, 61*XLEN/8, x2) + +inst_91: +// rs1_val == 1024, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400, 0x33333332, x1, 62*XLEN/8, x2) + +inst_92: +// rs1_val == 2048, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x800000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800, 0x800000, x1, 63*XLEN/8, x2) + +inst_93: +// rs1_val == 4096, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:0x10000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x1000, 0x10000, x1, 64*XLEN/8, x2) + +inst_94: +// rs1_val == 8192, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000, 0x6, x1, 65*XLEN/8, x2) + +inst_95: +// rs1_val == 16384, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x80000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000, -0x80000000, x1, 66*XLEN/8, x2) + +inst_96: +// rs1_val == 65536, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x20 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10000, 0x20, x1, 67*XLEN/8, x2) + +inst_97: +// rs1_val == 131072, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20000, 0x6, x1, 68*XLEN/8, x2) + +inst_98: +// rs1_val == 1048576, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x10000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x100000, 0x10000, x1, 69*XLEN/8, x2) + +inst_99: +// rs1_val == 16777216, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x1000000, 0x66666667, x1, 70*XLEN/8, x2) + +inst_100: +// rs1_val == 33554432, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x80000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000000, 0x80000, x1, 71*XLEN/8, x2) + +inst_101: +// rs1_val == 67108864, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:-0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000, -0x5, x1, 72*XLEN/8, x2) + +inst_102: +// rs1_val == 134217728, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x20001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x8000000, -0x20001, x1, 73*XLEN/8, x2) + +inst_103: +// rs1_val == 536870912, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x40 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20000000, 0x40, x1, 74*XLEN/8, x2) + +inst_104: +// rs1_val == 1073741824, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40000000, -0x400001, x1, 75*XLEN/8, x2) + +inst_105: +// rs1_val==3 and rs2_val==1431655765, rs2_val == 1431655765 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x55555555, x1, 76*XLEN/8, x2) + +inst_106: +// rs1_val==3 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0x55555556, x1, 77*XLEN/8, x2) + +inst_107: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x5, x1, 78*XLEN/8, x2) + +inst_108: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x33333333, x1, 79*XLEN/8, x2) + +inst_109: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x66666666, x1, 80*XLEN/8, x2) + +inst_110: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0xb504, x1, 81*XLEN/8, x2) + +inst_111: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0xb504, x1, 82*XLEN/8, x2) + +inst_112: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x2, x1, 83*XLEN/8, x2) + +inst_113: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x55555554, x1, 84*XLEN/8, x2) + +inst_114: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x0, x1, 85*XLEN/8, x2) + +inst_115: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x4, x1, 86*XLEN/8, x2) + +inst_116: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x33333332, x1, 87*XLEN/8, x2) + +inst_117: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x66666665, x1, 88*XLEN/8, x2) + +inst_118: +// rs1_val == 1431655765, rs1_val==1431655765 and rs2_val==0 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x0, x1, 89*XLEN/8, x2) + +inst_119: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0xb503, x1, 90*XLEN/8, x2) + +inst_120: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x55555556, x1, 91*XLEN/8, x2) + +inst_121: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0x55555555, x1, 92*XLEN/8, x2) + +inst_122: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x6, x1, 93*XLEN/8, x2) + +inst_123: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x33333334, x1, 94*XLEN/8, x2) + +inst_124: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x66666667, x1, 95*XLEN/8, x2) + +inst_125: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0xb503, x1, 96*XLEN/8, x2) + +inst_126: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0xb505, x1, 97*XLEN/8, x2) + +inst_127: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x3, x1, 98*XLEN/8, x2) + +inst_128: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x55555555, x1, 99*XLEN/8, x2) + +inst_129: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, -0x55555556, x1, 100*XLEN/8, x2) + +inst_130: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x5, x1, 101*XLEN/8, x2) + +inst_131: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x33333333, x1, 102*XLEN/8, x2) + +inst_132: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x66666666, x1, 103*XLEN/8, x2) + +inst_133: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, -0xb504, x1, 104*XLEN/8, x2) + +inst_134: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0xb504, x1, 105*XLEN/8, x2) + +inst_135: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x2, x1, 106*XLEN/8, x2) + +inst_136: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x55555554, x1, 107*XLEN/8, x2) + +inst_137: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x4, x1, 108*XLEN/8, x2) + +inst_138: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x33333332, x1, 109*XLEN/8, x2) + +inst_139: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x66666665, x1, 110*XLEN/8, x2) + +inst_140: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0xb503, x1, 111*XLEN/8, x2) + +inst_141: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x55555556, x1, 112*XLEN/8, x2) + +inst_142: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, -0x55555555, x1, 113*XLEN/8, x2) + +inst_143: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x6, x1, 114*XLEN/8, x2) + +inst_144: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x33333334, x1, 115*XLEN/8, x2) + +inst_145: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0x66666667, x1, 116*XLEN/8, x2) + +inst_146: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, -0xb503, x1, 117*XLEN/8, x2) + +inst_147: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555555, 0xb505, x1, 118*XLEN/8, x2) + +inst_148: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x3, x1, 119*XLEN/8, x2) + +inst_149: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x55555555, x1, 120*XLEN/8, x2) + +inst_150: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, -0x55555556, x1, 121*XLEN/8, x2) + +inst_151: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x5, x1, 122*XLEN/8, x2) + +inst_152: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x33333333, x1, 123*XLEN/8, x2) + +inst_153: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x66666666, x1, 124*XLEN/8, x2) + +inst_154: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, -0xb504, x1, 125*XLEN/8, x2) + +inst_155: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0xb504, x1, 126*XLEN/8, x2) + +inst_156: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x2, x1, 127*XLEN/8, x2) + +inst_157: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x55555554, x1, 128*XLEN/8, x2) + +inst_158: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x0, x1, 129*XLEN/8, x2) + +inst_159: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x4, x1, 130*XLEN/8, x2) + +inst_160: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x33333332, x1, 131*XLEN/8, x2) + +inst_161: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x66666665, x1, 132*XLEN/8, x2) + +inst_162: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0xb503, x1, 133*XLEN/8, x2) + +inst_163: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x55555556, x1, 134*XLEN/8, x2) + +inst_164: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, -0x55555555, x1, 135*XLEN/8, x2) + +inst_165: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x6, x1, 136*XLEN/8, x2) + +inst_166: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x33333334, x1, 137*XLEN/8, x2) + +inst_167: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0x66666667, x1, 138*XLEN/8, x2) + +inst_168: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, -0xb503, x1, 139*XLEN/8, x2) + +inst_169: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555556, 0xb505, x1, 140*XLEN/8, x2) + +inst_170: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x3, x1, 141*XLEN/8, x2) + +inst_171: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x55555555, x1, 142*XLEN/8, x2) + +inst_172: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0x55555556, x1, 143*XLEN/8, x2) + +inst_173: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x5, x1, 144*XLEN/8, x2) + +inst_174: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x33333333, x1, 145*XLEN/8, x2) + +inst_175: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x66666666, x1, 146*XLEN/8, x2) + +inst_176: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0xb504, x1, 147*XLEN/8, x2) + +inst_177: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0xb504, x1, 148*XLEN/8, x2) + +inst_178: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x2, x1, 149*XLEN/8, x2) + +inst_179: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x55555554, x1, 150*XLEN/8, x2) + +inst_180: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x0, x1, 151*XLEN/8, x2) + +inst_181: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x4, x1, 152*XLEN/8, x2) + +inst_182: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x33333332, x1, 153*XLEN/8, x2) + +inst_183: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x66666665, x1, 154*XLEN/8, x2) + +inst_184: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0xb503, x1, 155*XLEN/8, x2) + +inst_185: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x55555556, x1, 156*XLEN/8, x2) + +inst_186: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0x55555555, x1, 157*XLEN/8, x2) + +inst_187: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x6, x1, 158*XLEN/8, x2) + +inst_188: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x33333334, x1, 159*XLEN/8, x2) + +inst_189: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x66666667, x1, 160*XLEN/8, x2) + +inst_190: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0xb503, x1, 161*XLEN/8, x2) + +inst_191: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0xb505, x1, 162*XLEN/8, x2) + +inst_192: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x3, x1, 163*XLEN/8, x2) + +inst_193: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x55555555, x1, 164*XLEN/8, x2) + +inst_194: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, -0x55555556, x1, 165*XLEN/8, x2) + +inst_195: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x5, x1, 166*XLEN/8, x2) + +inst_196: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x33333333, x1, 167*XLEN/8, x2) + +inst_197: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x66666666, x1, 168*XLEN/8, x2) + +inst_198: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, -0xb504, x1, 169*XLEN/8, x2) + +inst_199: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0xb504, x1, 170*XLEN/8, x2) + +inst_200: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x2, x1, 171*XLEN/8, x2) + +inst_201: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x55555554, x1, 172*XLEN/8, x2) + +inst_202: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x0, x1, 173*XLEN/8, x2) + +inst_203: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x4, x1, 174*XLEN/8, x2) + +inst_204: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x33333332, x1, 175*XLEN/8, x2) + +inst_205: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x66666665, x1, 176*XLEN/8, x2) + +inst_206: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0xb503, x1, 177*XLEN/8, x2) + +inst_207: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x55555556, x1, 178*XLEN/8, x2) + +inst_208: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, -0x55555555, x1, 179*XLEN/8, x2) + +inst_209: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x6, x1, 180*XLEN/8, x2) + +inst_210: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x33333334, x1, 181*XLEN/8, x2) + +inst_211: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0x66666667, x1, 182*XLEN/8, x2) + +inst_212: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, -0xb503, x1, 183*XLEN/8, x2) + +inst_213: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333333, 0xb505, x1, 184*XLEN/8, x2) + +inst_214: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x3, x1, 185*XLEN/8, x2) + +inst_215: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x55555555, x1, 186*XLEN/8, x2) + +inst_216: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, -0x55555556, x1, 187*XLEN/8, x2) + +inst_217: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x5, x1, 188*XLEN/8, x2) + +inst_218: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x33333333, x1, 189*XLEN/8, x2) + +inst_219: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x66666666, x1, 190*XLEN/8, x2) + +inst_220: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, -0xb504, x1, 191*XLEN/8, x2) + +inst_221: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0xb504, x1, 192*XLEN/8, x2) + +inst_222: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x2, x1, 193*XLEN/8, x2) + +inst_223: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x55555554, x1, 194*XLEN/8, x2) + +inst_224: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x0, x1, 195*XLEN/8, x2) + +inst_225: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x4, x1, 196*XLEN/8, x2) + +inst_226: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x33333332, x1, 197*XLEN/8, x2) + +inst_227: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x66666665, x1, 198*XLEN/8, x2) + +inst_228: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0xb503, x1, 199*XLEN/8, x2) + +inst_229: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x55555556, x1, 200*XLEN/8, x2) + +inst_230: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, -0x55555555, x1, 201*XLEN/8, x2) + +inst_231: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x6, x1, 202*XLEN/8, x2) + +inst_232: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x33333334, x1, 203*XLEN/8, x2) + +inst_233: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0x66666667, x1, 204*XLEN/8, x2) + +inst_234: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, -0xb503, x1, 205*XLEN/8, x2) + +inst_235: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666666, 0xb505, x1, 206*XLEN/8, x2) + +inst_236: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x3, x1, 207*XLEN/8, x2) + +inst_237: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x55555555, x1, 208*XLEN/8, x2) + +inst_238: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, -0x55555556, x1, 209*XLEN/8, x2) + +inst_239: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x5, x1, 210*XLEN/8, x2) + +inst_240: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x33333333, x1, 211*XLEN/8, x2) + +inst_241: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x66666666, x1, 212*XLEN/8, x2) + +inst_242: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, -0xb504, x1, 213*XLEN/8, x2) + +inst_243: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0xb504, x1, 214*XLEN/8, x2) + +inst_244: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x2, x1, 215*XLEN/8, x2) + +inst_245: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x55555554, x1, 216*XLEN/8, x2) + +inst_246: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x0, x1, 217*XLEN/8, x2) + +inst_247: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x4, x1, 218*XLEN/8, x2) + +inst_248: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x33333332, x1, 219*XLEN/8, x2) + +inst_249: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x66666665, x1, 220*XLEN/8, x2) + +inst_250: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0xb503, x1, 221*XLEN/8, x2) + +inst_251: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x55555556, x1, 222*XLEN/8, x2) + +inst_252: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, -0x55555555, x1, 223*XLEN/8, x2) + +inst_253: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x6, x1, 224*XLEN/8, x2) + +inst_254: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x33333334, x1, 225*XLEN/8, x2) + +inst_255: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0x66666667, x1, 226*XLEN/8, x2) + +inst_256: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, -0xb503, x1, 227*XLEN/8, x2) + +inst_257: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, 0xb505, x1, 228*XLEN/8, x2) + +inst_258: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x3, x1, 229*XLEN/8, x2) + +inst_259: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x55555555, x1, 230*XLEN/8, x2) + +inst_260: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, -0x55555556, x1, 231*XLEN/8, x2) + +inst_261: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x5, x1, 232*XLEN/8, x2) + +inst_262: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x33333333, x1, 233*XLEN/8, x2) + +inst_263: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x66666666, x1, 234*XLEN/8, x2) + +inst_264: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, -0xb504, x1, 235*XLEN/8, x2) + +inst_265: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0xb504, x1, 236*XLEN/8, x2) + +inst_266: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x2, x1, 237*XLEN/8, x2) + +inst_267: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x55555554, x1, 238*XLEN/8, x2) + +inst_268: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x0, x1, 239*XLEN/8, x2) + +inst_269: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x4, x1, 240*XLEN/8, x2) + +inst_270: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x33333332, x1, 241*XLEN/8, x2) + +inst_271: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x66666665, x1, 242*XLEN/8, x2) + +inst_272: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0xb503, x1, 243*XLEN/8, x2) + +inst_273: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x55555556, x1, 244*XLEN/8, x2) + +inst_274: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, -0x55555555, x1, 245*XLEN/8, x2) + +inst_275: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x6, x1, 246*XLEN/8, x2) + +inst_276: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x33333334, x1, 247*XLEN/8, x2) + +inst_277: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0x66666667, x1, 248*XLEN/8, x2) + +inst_278: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, -0xb503, x1, 249*XLEN/8, x2) + +inst_279: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504, 0xb505, x1, 250*XLEN/8, x2) + +inst_280: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x3, x1, 251*XLEN/8, x2) + +inst_281: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x55555555, x1, 252*XLEN/8, x2) + +inst_282: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0x55555556, x1, 253*XLEN/8, x2) + +inst_283: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x5, x1, 254*XLEN/8, x2) + +inst_284: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x33333333, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_285: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x66666666, x1, 0*XLEN/8, x2) + +inst_286: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0xb504, x1, 1*XLEN/8, x2) + +inst_287: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0xb504, x1, 2*XLEN/8, x2) + +inst_288: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x2, x1, 3*XLEN/8, x2) + +inst_289: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x55555554, x1, 4*XLEN/8, x2) + +inst_290: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x0, x1, 5*XLEN/8, x2) + +inst_291: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x4, x1, 6*XLEN/8, x2) + +inst_292: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x33333332, x1, 7*XLEN/8, x2) + +inst_293: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x66666665, x1, 8*XLEN/8, x2) + +inst_294: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0xb503, x1, 9*XLEN/8, x2) + +inst_295: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x55555556, x1, 10*XLEN/8, x2) + +inst_296: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0x55555555, x1, 11*XLEN/8, x2) + +inst_297: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x6, x1, 12*XLEN/8, x2) + +inst_298: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x33333334, x1, 13*XLEN/8, x2) + +inst_299: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x66666667, x1, 14*XLEN/8, x2) + +inst_300: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0xb503, x1, 15*XLEN/8, x2) + +inst_301: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0xb505, x1, 16*XLEN/8, x2) + +inst_302: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x3, x1, 17*XLEN/8, x2) + +inst_303: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x55555555, x1, 18*XLEN/8, x2) + +inst_304: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, -0x55555556, x1, 19*XLEN/8, x2) + +inst_305: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x5, x1, 20*XLEN/8, x2) + +inst_306: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x33333333, x1, 21*XLEN/8, x2) + +inst_307: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x66666666, x1, 22*XLEN/8, x2) + +inst_308: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, -0xb504, x1, 23*XLEN/8, x2) + +inst_309: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0xb504, x1, 24*XLEN/8, x2) + +inst_310: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x2, x1, 25*XLEN/8, x2) + +inst_311: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x55555554, x1, 26*XLEN/8, x2) + +inst_312: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x0, x1, 27*XLEN/8, x2) + +inst_313: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x4, x1, 28*XLEN/8, x2) + +inst_314: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x33333332, x1, 29*XLEN/8, x2) + +inst_315: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x66666665, x1, 30*XLEN/8, x2) + +inst_316: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0xb503, x1, 31*XLEN/8, x2) + +inst_317: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x55555556, x1, 32*XLEN/8, x2) + +inst_318: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, -0x55555555, x1, 33*XLEN/8, x2) + +inst_319: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x6, x1, 34*XLEN/8, x2) + +inst_320: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x33333334, x1, 35*XLEN/8, x2) + +inst_321: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0x66666667, x1, 36*XLEN/8, x2) + +inst_322: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, -0xb503, x1, 37*XLEN/8, x2) + +inst_323: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555554, 0xb505, x1, 38*XLEN/8, x2) + +inst_324: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x3, x1, 39*XLEN/8, x2) + +inst_325: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x55555555, x1, 40*XLEN/8, x2) + +inst_326: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0x55555556, x1, 41*XLEN/8, x2) + +inst_327: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x5, x1, 42*XLEN/8, x2) + +inst_328: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x33333333, x1, 43*XLEN/8, x2) + +inst_329: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x66666666, x1, 44*XLEN/8, x2) + +inst_330: +// rs1_val==0 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0xb504, x1, 45*XLEN/8, x2) + +inst_331: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0xb504, x1, 46*XLEN/8, x2) + +inst_332: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, -0x55555555, x1, 47*XLEN/8, x2) + +inst_333: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x6, x1, 48*XLEN/8, x2) + +inst_334: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x33333334, x1, 49*XLEN/8, x2) + +inst_335: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x66666667, x1, 50*XLEN/8, x2) + +inst_336: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, -0xb503, x1, 51*XLEN/8, x2) + +inst_337: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0xb505, x1, 52*XLEN/8, x2) + +inst_338: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x3, x1, 53*XLEN/8, x2) + +inst_339: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x55555555, x1, 54*XLEN/8, x2) + +inst_340: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0x55555556, x1, 55*XLEN/8, x2) + +inst_341: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x5, x1, 56*XLEN/8, x2) + +inst_342: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x33333333, x1, 57*XLEN/8, x2) + +inst_343: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x66666666, x1, 58*XLEN/8, x2) + +inst_344: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0xb504, x1, 59*XLEN/8, x2) + +inst_345: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0xb504, x1, 60*XLEN/8, x2) + +inst_346: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x2, x1, 61*XLEN/8, x2) + +inst_347: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x55555554, x1, 62*XLEN/8, x2) + +inst_348: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x0, x1, 63*XLEN/8, x2) + +inst_349: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x4, x1, 64*XLEN/8, x2) + +inst_350: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x33333332, x1, 65*XLEN/8, x2) + +inst_351: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x66666665, x1, 66*XLEN/8, x2) + +inst_352: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0xb503, x1, 67*XLEN/8, x2) + +inst_353: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x55555556, x1, 68*XLEN/8, x2) + +inst_354: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0x55555555, x1, 69*XLEN/8, x2) + +inst_355: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x6, x1, 70*XLEN/8, x2) + +inst_356: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x33333334, x1, 71*XLEN/8, x2) + +inst_357: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x66666667, x1, 72*XLEN/8, x2) + +inst_358: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0xb503, x1, 73*XLEN/8, x2) + +inst_359: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0xb505, x1, 74*XLEN/8, x2) + +inst_360: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x3, x1, 75*XLEN/8, x2) + +inst_361: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x55555555, x1, 76*XLEN/8, x2) + +inst_362: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, -0x55555556, x1, 77*XLEN/8, x2) + +inst_363: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x5, x1, 78*XLEN/8, x2) + +inst_364: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x33333333, x1, 79*XLEN/8, x2) + +inst_365: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x66666666, x1, 80*XLEN/8, x2) + +inst_366: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, -0xb504, x1, 81*XLEN/8, x2) + +inst_367: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0xb504, x1, 82*XLEN/8, x2) + +inst_368: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x2, x1, 83*XLEN/8, x2) + +inst_369: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x55555554, x1, 84*XLEN/8, x2) + +inst_370: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x0, x1, 85*XLEN/8, x2) + +inst_371: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x4, x1, 86*XLEN/8, x2) + +inst_372: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x33333332, x1, 87*XLEN/8, x2) + +inst_373: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x66666665, x1, 88*XLEN/8, x2) + +inst_374: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0xb503, x1, 89*XLEN/8, x2) + +inst_375: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x55555556, x1, 90*XLEN/8, x2) + +inst_376: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, -0x55555555, x1, 91*XLEN/8, x2) + +inst_377: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x6, x1, 92*XLEN/8, x2) + +inst_378: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x33333334, x1, 93*XLEN/8, x2) + +inst_379: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0x66666667, x1, 94*XLEN/8, x2) + +inst_380: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, -0xb503, x1, 95*XLEN/8, x2) + +inst_381: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333334, 0xb505, x1, 96*XLEN/8, x2) + +inst_382: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x3, x1, 97*XLEN/8, x2) + +inst_383: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x55555555, x1, 98*XLEN/8, x2) + +inst_384: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, -0x55555556, x1, 99*XLEN/8, x2) + +inst_385: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x5, x1, 100*XLEN/8, x2) + +inst_386: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x33333333, x1, 101*XLEN/8, x2) + +inst_387: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x66666666, x1, 102*XLEN/8, x2) + +inst_388: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, -0xb504, x1, 103*XLEN/8, x2) + +inst_389: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0xb504, x1, 104*XLEN/8, x2) + +inst_390: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x2, x1, 105*XLEN/8, x2) + +inst_391: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x55555554, x1, 106*XLEN/8, x2) + +inst_392: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x0, x1, 107*XLEN/8, x2) + +inst_393: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x4, x1, 108*XLEN/8, x2) + +inst_394: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x33333332, x1, 109*XLEN/8, x2) + +inst_395: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x66666665, x1, 110*XLEN/8, x2) + +inst_396: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0xb503, x1, 111*XLEN/8, x2) + +inst_397: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x55555556, x1, 112*XLEN/8, x2) + +inst_398: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, -0x55555555, x1, 113*XLEN/8, x2) + +inst_399: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x6, x1, 114*XLEN/8, x2) + +inst_400: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x33333334, x1, 115*XLEN/8, x2) + +inst_401: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0x66666667, x1, 116*XLEN/8, x2) + +inst_402: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, -0xb503, x1, 117*XLEN/8, x2) + +inst_403: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666667, 0xb505, x1, 118*XLEN/8, x2) + +inst_404: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x3, x1, 119*XLEN/8, x2) + +inst_405: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x55555555, x1, 120*XLEN/8, x2) + +inst_406: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, -0x55555556, x1, 121*XLEN/8, x2) + +inst_407: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x5, x1, 122*XLEN/8, x2) + +inst_408: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x33333333, x1, 123*XLEN/8, x2) + +inst_409: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x66666666, x1, 124*XLEN/8, x2) + +inst_410: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, -0xb504, x1, 125*XLEN/8, x2) + +inst_411: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0xb504, x1, 126*XLEN/8, x2) + +inst_412: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x2, x1, 127*XLEN/8, x2) + +inst_413: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x55555554, x1, 128*XLEN/8, x2) + +inst_414: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x0, x1, 129*XLEN/8, x2) + +inst_415: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x4, x1, 130*XLEN/8, x2) + +inst_416: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x33333332, x1, 131*XLEN/8, x2) + +inst_417: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x66666665, x1, 132*XLEN/8, x2) + +inst_418: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0xb503, x1, 133*XLEN/8, x2) + +inst_419: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x55555556, x1, 134*XLEN/8, x2) + +inst_420: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, -0x55555555, x1, 135*XLEN/8, x2) + +inst_421: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x6, x1, 136*XLEN/8, x2) + +inst_422: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x33333334, x1, 137*XLEN/8, x2) + +inst_423: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0x66666667, x1, 138*XLEN/8, x2) + +inst_424: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, -0xb503, x1, 139*XLEN/8, x2) + +inst_425: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb503, 0xb505, x1, 140*XLEN/8, x2) + +inst_426: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x3, x1, 141*XLEN/8, x2) + +inst_427: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x55555555, x1, 142*XLEN/8, x2) + +inst_428: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, -0x55555556, x1, 143*XLEN/8, x2) + +inst_429: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x5, x1, 144*XLEN/8, x2) + +inst_430: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x33333333, x1, 145*XLEN/8, x2) + +inst_431: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x66666666, x1, 146*XLEN/8, x2) + +inst_432: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, -0xb504, x1, 147*XLEN/8, x2) + +inst_433: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0xb504, x1, 148*XLEN/8, x2) + +inst_434: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x2, x1, 149*XLEN/8, x2) + +inst_435: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x55555554, x1, 150*XLEN/8, x2) + +inst_436: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x0, x1, 151*XLEN/8, x2) + +inst_437: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x4, x1, 152*XLEN/8, x2) + +inst_438: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x33333332, x1, 153*XLEN/8, x2) + +inst_439: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x66666665, x1, 154*XLEN/8, x2) + +inst_440: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0xb503, x1, 155*XLEN/8, x2) + +inst_441: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x55555556, x1, 156*XLEN/8, x2) + +inst_442: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, -0x55555555, x1, 157*XLEN/8, x2) + +inst_443: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x6, x1, 158*XLEN/8, x2) + +inst_444: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x33333334, x1, 159*XLEN/8, x2) + +inst_445: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0x66666667, x1, 160*XLEN/8, x2) + +inst_446: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, -0xb503, x1, 161*XLEN/8, x2) + +inst_447: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb505, 0xb505, x1, 162*XLEN/8, x2) + +inst_448: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x2, x1, 163*XLEN/8, x2) + +inst_449: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x55555554, x1, 164*XLEN/8, x2) + +inst_450: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x0, x1, 165*XLEN/8, x2) + +inst_451: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x4, x1, 166*XLEN/8, x2) + +inst_452: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x33333332, x1, 167*XLEN/8, x2) + +inst_453: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x66666665, x1, 168*XLEN/8, x2) + +inst_454: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0xb503, x1, 169*XLEN/8, x2) + +inst_455: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x55555556, x1, 170*XLEN/8, x2) + +inst_456: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0x55555555, x1, 171*XLEN/8, x2) + +inst_457: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x33333334, x1, 172*XLEN/8, x2) + +inst_458: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x66666667, x1, 173*XLEN/8, x2) + +inst_459: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0xb503, x1, 174*XLEN/8, x2) + +inst_460: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0xb505, x1, 175*XLEN/8, x2) + +inst_461: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x3, x1, 176*XLEN/8, x2) + +inst_462: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x55555555, x1, 177*XLEN/8, x2) + +inst_463: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0x55555556, x1, 178*XLEN/8, x2) + +inst_464: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x5, x1, 179*XLEN/8, x2) + +inst_465: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x33333333, x1, 180*XLEN/8, x2) + +inst_466: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x66666666, x1, 181*XLEN/8, x2) + +inst_467: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0xb504, x1, 182*XLEN/8, x2) + +inst_468: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0xb504, x1, 183*XLEN/8, x2) + +inst_469: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x2, x1, 184*XLEN/8, x2) + +inst_470: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x55555554, x1, 185*XLEN/8, x2) + +inst_471: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x0, x1, 186*XLEN/8, x2) + +inst_472: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x4, x1, 187*XLEN/8, x2) + +inst_473: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x33333332, x1, 188*XLEN/8, x2) + +inst_474: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x66666665, x1, 189*XLEN/8, x2) + +inst_475: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0xb503, x1, 190*XLEN/8, x2) + +inst_476: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x55555556, x1, 191*XLEN/8, x2) + +inst_477: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0x55555555, x1, 192*XLEN/8, x2) + +inst_478: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x6, x1, 193*XLEN/8, x2) + +inst_479: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x33333334, x1, 194*XLEN/8, x2) + +inst_480: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x66666667, x1, 195*XLEN/8, x2) + +inst_481: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0xb503, x1, 196*XLEN/8, x2) + +inst_482: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0xb505, x1, 197*XLEN/8, x2) + +inst_483: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x3, x1, 198*XLEN/8, x2) + +inst_484: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x55555555, x1, 199*XLEN/8, x2) + +inst_485: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, -0x55555556, x1, 200*XLEN/8, x2) + +inst_486: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x5, x1, 201*XLEN/8, x2) + +inst_487: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x33333333, x1, 202*XLEN/8, x2) + +inst_488: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x66666666, x1, 203*XLEN/8, x2) + +inst_489: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, -0xb504, x1, 204*XLEN/8, x2) + +inst_490: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0xb504, x1, 205*XLEN/8, x2) + +inst_491: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x2, x1, 206*XLEN/8, x2) + +inst_492: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x55555554, x1, 207*XLEN/8, x2) + +inst_493: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x0, x1, 208*XLEN/8, x2) + +inst_494: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x4, x1, 209*XLEN/8, x2) + +inst_495: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x33333332, x1, 210*XLEN/8, x2) + +inst_496: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x66666665, x1, 211*XLEN/8, x2) + +inst_497: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0xb503, x1, 212*XLEN/8, x2) + +inst_498: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x55555556, x1, 213*XLEN/8, x2) + +inst_499: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, -0x55555555, x1, 214*XLEN/8, x2) + +inst_500: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x6, x1, 215*XLEN/8, x2) + +inst_501: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x33333334, x1, 216*XLEN/8, x2) + +inst_502: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0x66666667, x1, 217*XLEN/8, x2) + +inst_503: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, -0xb503, x1, 218*XLEN/8, x2) + +inst_504: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x33333332, 0xb505, x1, 219*XLEN/8, x2) + +inst_505: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x3, x1, 220*XLEN/8, x2) + +inst_506: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x55555555, x1, 221*XLEN/8, x2) + +inst_507: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, -0x55555556, x1, 222*XLEN/8, x2) + +inst_508: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x5, x1, 223*XLEN/8, x2) + +inst_509: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x33333333, x1, 224*XLEN/8, x2) + +inst_510: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x66666666, x1, 225*XLEN/8, x2) + +inst_511: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, -0xb504, x1, 226*XLEN/8, x2) + +inst_512: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0xb504, x1, 227*XLEN/8, x2) + +inst_513: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x2, x1, 228*XLEN/8, x2) + +inst_514: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x55555554, x1, 229*XLEN/8, x2) + +inst_515: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x0, x1, 230*XLEN/8, x2) + +inst_516: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x4, x1, 231*XLEN/8, x2) + +inst_517: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x33333332, x1, 232*XLEN/8, x2) + +inst_518: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x66666665, x1, 233*XLEN/8, x2) + +inst_519: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0xb503, x1, 234*XLEN/8, x2) + +inst_520: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x55555556, x1, 235*XLEN/8, x2) + +inst_521: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, -0x55555555, x1, 236*XLEN/8, x2) + +inst_522: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x6, x1, 237*XLEN/8, x2) + +inst_523: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x33333334, x1, 238*XLEN/8, x2) + +inst_524: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0x66666667, x1, 239*XLEN/8, x2) + +inst_525: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, -0xb503, x1, 240*XLEN/8, x2) + +inst_526: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x66666665, 0xb505, x1, 241*XLEN/8, x2) + +inst_527: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x3, x1, 242*XLEN/8, x2) + +inst_528: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x55555555, x1, 243*XLEN/8, x2) + +inst_529: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, -0x55555556, x1, 244*XLEN/8, x2) + +inst_530: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x5, x1, 245*XLEN/8, x2) + +inst_531: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x33333333, x1, 246*XLEN/8, x2) + +inst_532: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x66666666, x1, 247*XLEN/8, x2) + +inst_533: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, -0xb504, x1, 248*XLEN/8, x2) + +inst_534: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0xb504, x1, 249*XLEN/8, x2) + +inst_535: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x2, x1, 250*XLEN/8, x2) + +inst_536: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x55555554, x1, 251*XLEN/8, x2) + +inst_537: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x0, x1, 252*XLEN/8, x2) + +inst_538: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x4, x1, 253*XLEN/8, x2) + +inst_539: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x33333332, x1, 254*XLEN/8, x2) + +inst_540: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x66666665, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_541: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0xb503, x1, 0*XLEN/8, x2) + +inst_542: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x55555556, x1, 1*XLEN/8, x2) + +inst_543: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, -0x55555555, x1, 2*XLEN/8, x2) + +inst_544: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x6, x1, 3*XLEN/8, x2) + +inst_545: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x33333334, x1, 4*XLEN/8, x2) + +inst_546: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0x66666667, x1, 5*XLEN/8, x2) + +inst_547: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, -0xb503, x1, 6*XLEN/8, x2) + +inst_548: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb503, 0xb505, x1, 7*XLEN/8, x2) + +inst_549: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x3, x1, 8*XLEN/8, x2) + +inst_550: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x55555555, x1, 9*XLEN/8, x2) + +inst_551: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, -0x55555556, x1, 10*XLEN/8, x2) + +inst_552: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x5, x1, 11*XLEN/8, x2) + +inst_553: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x33333333, x1, 12*XLEN/8, x2) + +inst_554: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x66666666, x1, 13*XLEN/8, x2) + +inst_555: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, -0xb504, x1, 14*XLEN/8, x2) + +inst_556: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0xb504, x1, 15*XLEN/8, x2) + +inst_557: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x2, x1, 16*XLEN/8, x2) + +inst_558: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x55555554, x1, 17*XLEN/8, x2) + +inst_559: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x0, x1, 18*XLEN/8, x2) + +inst_560: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x4, x1, 19*XLEN/8, x2) + +inst_561: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x33333332, x1, 20*XLEN/8, x2) + +inst_562: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x66666665, x1, 21*XLEN/8, x2) + +inst_563: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0xb503, x1, 22*XLEN/8, x2) + +inst_564: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x55555556, x1, 23*XLEN/8, x2) + +inst_565: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, -0x55555555, x1, 24*XLEN/8, x2) + +inst_566: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x6, x1, 25*XLEN/8, x2) + +inst_567: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x33333334, x1, 26*XLEN/8, x2) + +inst_568: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x66666667, x1, 27*XLEN/8, x2) + +inst_569: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, -0xb503, x1, 28*XLEN/8, x2) + +inst_570: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0xb505, x1, 29*XLEN/8, x2) + +inst_571: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x3, x1, 30*XLEN/8, x2) + +inst_572: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x55555555, x1, 31*XLEN/8, x2) + +inst_573: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, -0x55555556, x1, 32*XLEN/8, x2) + +inst_574: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x5, x1, 33*XLEN/8, x2) + +inst_575: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x33333333, x1, 34*XLEN/8, x2) + +inst_576: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x66666666, x1, 35*XLEN/8, x2) + +inst_577: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, -0xb504, x1, 36*XLEN/8, x2) + +inst_578: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0xb504, x1, 37*XLEN/8, x2) + +inst_579: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x2, x1, 38*XLEN/8, x2) + +inst_580: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x55555554, x1, 39*XLEN/8, x2) + +inst_581: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x0, x1, 40*XLEN/8, x2) + +inst_582: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x4, x1, 41*XLEN/8, x2) + +inst_583: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x33333332, x1, 42*XLEN/8, x2) + +inst_584: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x66666665, x1, 43*XLEN/8, x2) + +inst_585: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0xb503, x1, 44*XLEN/8, x2) + +inst_586: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x55555555, 0x55555556, x1, 45*XLEN/8, x2) + +inst_587: +// rs1_val != rs2_val, rs1_val > 0 and rs2_val > 0, rs2_val == 4194304 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x400000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x55555556, 0x400000, x1, 46*XLEN/8, x2) + +inst_588: +// rs1_val < 0 and rs2_val < 0, rs1_val == -524289, rs2_val == -1431655766 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x55555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x80001, -0x55555556, x1, 47*XLEN/8, x2) + +inst_589: +// rs1_val == 0, rs1_val==0 and rs2_val==6 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x6, x1, 48*XLEN/8, x2) + +inst_590: +// rs2_val == -16777217, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x1000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504, -0x1000001, x1, 49*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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_0: + .fill 13*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 50*((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/Zimop/src/mop.rr.1-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.1-01.S new file mode 100644 index 000000000..068f38ab5 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.1-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 : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.1 instruction of the RISC-V RV32Zimop extension for the mop.rr.1 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.1) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x18, rs2==x18, rd==x18, rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0, rs1_val == 16384, rs2_val == -16777217 +// opcode: mop.rr.1 ; op1:x18; op2:x18; dest:x18; op1val:0x4000; op2val:0x4000 +TEST_RR_OP(mop.rr.1, x18, x18, x18, 0, 0x4000, 0x4000, x1, 0*XLEN/8, x6) + +inst_1: +// rs1 == rs2 != rd, rs1==x5, rs2==x5, rd==x8, rs1_val < 0 and rs2_val < 0, rs1_val == -1431655766, rs2_val == -8388609 +// opcode: mop.rr.1 ; op1:x5; op2:x5; dest:x8; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x8, x5, x5, 0, -0x55555556, -0x55555556, x1, 1*XLEN/8, x6) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x20, rs2==x30, rd==x13, rs1_val < 0 and rs2_val > 0, rs1_val == -8388609 +// opcode: mop.rr.1 ; op1:x20; op2:x30; dest:x13; op1val:-0x800001; op2val:0x5 +TEST_RR_OP(mop.rr.1, x13, x20, x30, 0, -0x800001, 0x5, x1, 2*XLEN/8, x6) + +inst_3: +// rs2 == rd != rs1, rs1==x3, rs2==x15, rd==x15, rs1_val == (-2**(xlen-1)), rs1_val == -2147483648 +// opcode: mop.rr.1 ; op1:x3; op2:x15; dest:x15; op1val:-0x80000000; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x15, x3, x15, 0, -0x80000000, -0x55555555, x1, 3*XLEN/8, x6) + +inst_4: +// rs1 == rd != rs2, rs1==x2, rs2==x28, rd==x2, rs1_val == (2**(xlen-1)-1), rs1_val == 2147483647 +// opcode: mop.rr.1 ; op1:x2; op2:x28; dest:x2; op1val:0x7fffffff; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x2, x2, x28, 0, 0x7fffffff, -0xb504, x1, 4*XLEN/8, x6) + +inst_5: +// rs1==x14, rs2==x10, rd==x21, rs1_val == 0, rs2_val == 2097152 +// opcode: mop.rr.1 ; op1:x14; op2:x10; dest:x21; op1val:0x0; op2val:0x200000 +TEST_RR_OP(mop.rr.1, x21, x14, x10, 0, 0x0, 0x200000, x1, 5*XLEN/8, x6) + +inst_6: +// rs1==x0, rs2==x9, rd==x28, rs1_val == 1, rs2_val == -17 +// opcode: mop.rr.1 ; op1:x0; op2:x9; dest:x28; op1val:0x0; op2val:-0x11 +TEST_RR_OP(mop.rr.1, x28, x0, x9, 0, 0x0, -0x11, x1, 6*XLEN/8, x6) + +inst_7: +// rs1==x11, rs2==x12, rd==x25, rs2_val == -2, rs1_val == 2097152 +// opcode: mop.rr.1 ; op1:x11; op2:x12; dest:x25; op1val:0x200000; op2val:-0x2 +TEST_RR_OP(mop.rr.1, x25, x11, x12, 0, 0x200000, -0x2, x1, 7*XLEN/8, x6) + +inst_8: +// rs1==x4, rs2==x17, rd==x0, rs2_val == -3, +// opcode: mop.rr.1 ; op1:x4; op2:x17; dest:x0; op1val:0x66666666; op2val:-0x3 +TEST_RR_OP(mop.rr.1, x0, x4, x17, 0, 0x66666666, -0x3, x1, 8*XLEN/8, x6) + +inst_9: +// rs1==x30, rs2==x2, rd==x9, rs2_val == -5, rs1_val == 268435456 +// opcode: mop.rr.1 ; op1:x30; op2:x2; dest:x9; op1val:0x10000000; op2val:-0x5 +TEST_RR_OP(mop.rr.1, x9, x30, x2, 0, 0x10000000, -0x5, x1, 9*XLEN/8, x6) + +inst_10: +// rs1==x10, rs2==x16, rd==x31, rs2_val == -9, rs1_val == 512 +// opcode: mop.rr.1 ; op1:x10; op2:x16; dest:x31; op1val:0x200; op2val:-0x9 +TEST_RR_OP(mop.rr.1, x31, x10, x16, 0, 0x200, -0x9, x1, 10*XLEN/8, x6) + +inst_11: +// rs1==x13, rs2==x11, rd==x7, rs2_val == -33, rs1_val == 64 +// opcode: mop.rr.1 ; op1:x13; op2:x11; dest:x7; op1val:0x40; op2val:-0x21 +TEST_RR_OP(mop.rr.1, x7, x13, x11, 0, 0x40, -0x21, x1, 11*XLEN/8, x6) + +inst_12: +// rs1==x25, rs2==x0, rd==x29, rs2_val == -65, rs1_val == 1431655765 +// opcode: mop.rr.1 ; op1:x25; op2:x0; dest:x29; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.1, x29, x25, x0, 0, 0x55555555, 0x0, x1, 12*XLEN/8, x6) + +inst_13: +// rs1==x23, rs2==x4, rd==x24, rs2_val == -129, rs1_val == -17 +// opcode: mop.rr.1 ; op1:x23; op2:x4; dest:x24; op1val:-0x11; op2val:-0x81 +TEST_RR_OP(mop.rr.1, x24, x23, x4, 0, -0x11, -0x81, x1, 13*XLEN/8, x6) + +inst_14: +// rs1==x7, rs2==x3, rd==x10, rs2_val == -257, +// opcode: mop.rr.1 ; op1:x7; op2:x3; dest:x10; op1val:-0x4; op2val:-0x101 +TEST_RR_OP(mop.rr.1, x10, x7, x3, 0, -0x4, -0x101, x1, 14*XLEN/8, x9) + +inst_15: +// rs1==x16, rs2==x21, rd==x26, rs2_val == -513, rs1_val == 4194304 +// opcode: mop.rr.1 ; op1:x16; op2:x21; dest:x26; op1val:0x400000; op2val:-0x201 +TEST_RR_OP(mop.rr.1, x26, x16, x21, 0, 0x400000, -0x201, x1, 15*XLEN/8, x9) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_16: +// rs1==x12, rs2==x8, rd==x30, rs2_val == -1025, +// opcode: mop.rr.1 ; op1:x12; op2:x8; dest:x30; op1val:0x66666666; op2val:-0x401 +TEST_RR_OP(mop.rr.1, x30, x12, x8, 0, 0x66666666, -0x401, x2, 0*XLEN/8, x9) + +inst_17: +// rs1==x21, rs2==x1, rd==x14, rs2_val == -2049, rs1_val == -1025 +// opcode: mop.rr.1 ; op1:x21; op2:x1; dest:x14; op1val:-0x401; op2val:-0x801 +TEST_RR_OP(mop.rr.1, x14, x21, x1, 0, -0x401, -0x801, x2, 1*XLEN/8, x9) + +inst_18: +// rs1==x24, rs2==x19, rd==x3, rs2_val == -4097, +// opcode: mop.rr.1 ; op1:x24; op2:x19; dest:x3; op1val:-0x4; op2val:-0x1001 +TEST_RR_OP(mop.rr.1, x3, x24, x19, 0, -0x4, -0x1001, x2, 2*XLEN/8, x9) + +inst_19: +// rs1==x22, rs2==x13, rd==x16, rs2_val == -8193, +// opcode: mop.rr.1 ; op1:x22; op2:x13; dest:x16; op1val:-0x55555556; op2val:-0x2001 +TEST_RR_OP(mop.rr.1, x16, x22, x13, 0, -0x55555556, -0x2001, x2, 3*XLEN/8, x9) + +inst_20: +// rs1==x8, rs2==x23, rd==x5, rs2_val == -16385, +// opcode: mop.rr.1 ; op1:x8; op2:x23; dest:x5; op1val:0x0; op2val:-0x4001 +TEST_RR_OP(mop.rr.1, x5, x8, x23, 0, 0x0, -0x4001, x2, 4*XLEN/8, x9) + +inst_21: +// rs1==x27, rs2==x26, rd==x20, rs2_val == -32769, +// opcode: mop.rr.1 ; op1:x27; op2:x26; dest:x20; op1val:-0xb503; op2val:-0x8001 +TEST_RR_OP(mop.rr.1, x20, x27, x26, 0, -0xb503, -0x8001, x2, 5*XLEN/8, x9) + +inst_22: +// rs1==x29, rs2==x6, rd==x27, rs2_val == -65537, rs1_val == 1024 +// opcode: mop.rr.1 ; op1:x29; op2:x6; dest:x27; op1val:0x400; op2val:-0x10001 +TEST_RR_OP(mop.rr.1, x27, x29, x6, 0, 0x400, -0x10001, x2, 6*XLEN/8, x9) + +inst_23: +// rs1==x15, rs2==x7, rd==x17, rs2_val == -131073, +// opcode: mop.rr.1 ; op1:x15; op2:x7; dest:x17; op1val:0x4000; op2val:-0x20001 +TEST_RR_OP(mop.rr.1, x17, x15, x7, 0, 0x4000, -0x20001, x2, 7*XLEN/8, x9) + +inst_24: +// rs1==x31, rs2==x24, rd==x22, rs2_val == -262145, rs1_val == 256 +// opcode: mop.rr.1 ; op1:x31; op2:x24; dest:x22; op1val:0x100; op2val:-0x40001 +TEST_RR_OP(mop.rr.1, x22, x31, x24, 0, 0x100, -0x40001, x2, 8*XLEN/8, x9) + +inst_25: +// rs1==x19, rs2==x27, rd==x4, rs2_val == -524289, rs1_val == -32769 +// opcode: mop.rr.1 ; op1:x19; op2:x27; dest:x4; op1val:-0x8001; op2val:-0x80001 +TEST_RR_OP(mop.rr.1, x4, x19, x27, 0, -0x8001, -0x80001, x2, 9*XLEN/8, x9) + +inst_26: +// rs1==x6, rs2==x14, rd==x23, rs2_val == -1048577, +// opcode: mop.rr.1 ; op1:x6; op2:x14; dest:x23; op1val:0xb505; op2val:-0x100001 +TEST_RR_OP(mop.rr.1, x23, x6, x14, 0, 0xb505, -0x100001, x2, 10*XLEN/8, x3) + +inst_27: +// rs1==x28, rs2==x20, rd==x12, rs2_val == -2097153, rs1_val == -257 +// opcode: mop.rr.1 ; op1:x28; op2:x20; dest:x12; op1val:-0x101; op2val:-0x200001 +TEST_RR_OP(mop.rr.1, x12, x28, x20, 0, -0x101, -0x200001, x2, 11*XLEN/8, x3) + +inst_28: +// rs1==x26, rs2==x31, rd==x6, rs2_val == -4194305, rs1_val == 4 +// opcode: mop.rr.1 ; op1:x26; op2:x31; dest:x6; op1val:0x4; op2val:-0x400001 +TEST_RR_OP(mop.rr.1, x6, x26, x31, 0, 0x4, -0x400001, x2, 12*XLEN/8, x3) + +inst_29: +// rs1==x1, rs2==x29, rd==x19, rs2_val == -33554433, rs1_val == -33554433, rs1_val == rs2_val +// opcode: mop.rr.1 ; op1:x1; op2:x29; dest:x19; op1val:-0x2000001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.1, x19, x1, x29, 0, -0x2000001, -0x2000001, x2, 13*XLEN/8, x3) + +inst_30: +// rs1==x9, rs2==x22, rd==x11, rs2_val == -67108865, +// opcode: mop.rr.1 ; op1:x9; op2:x22; dest:x11; op1val:0x33333332; op2val:-0x4000001 +TEST_RR_OP(mop.rr.1, x11, x9, x22, 0, 0x33333332, -0x4000001, x2, 14*XLEN/8, x3) +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_31: +// rs1==x17, rs2==x25, rd==x1, rs2_val == -134217729, +// opcode: mop.rr.1 ; op1:x17; op2:x25; dest:x1; op1val:0xb505; op2val:-0x8000001 +TEST_RR_OP(mop.rr.1, x1, x17, x25, 0, 0xb505, -0x8000001, x2, 0*XLEN/8, x3) + +inst_32: +// rs2_val == -268435457, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x10000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, -0x10000001, x2, 1*XLEN/8, x3) + +inst_33: +// rs2_val == -536870913, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x20000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, -0x20000001, x2, 2*XLEN/8, x3) + +inst_34: +// rs2_val == -1073741825, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x40000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0x40000001, x2, 3*XLEN/8, x3) + +inst_35: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4; op2val:0x7fffffff +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4, 0x7fffffff, x2, 4*XLEN/8, x3) + +inst_36: +// rs1_val == -2, rs2_val == 131072 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:0x20000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2, 0x20000, x2, 5*XLEN/8, x3) + +inst_37: +// rs1_val == -3, rs2_val == 262144 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x40000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x3, 0x40000, x2, 6*XLEN/8, x3) + +inst_38: +// rs1_val == -5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x20001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5, -0x20001, x2, 7*XLEN/8, x3) + +inst_39: +// rs1_val == -9, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x81 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x9, -0x81, x2, 8*XLEN/8, x3) + +inst_40: +// rs1_val == -33, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:-0x2001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x21, -0x2001, x2, 9*XLEN/8, x3) + +inst_41: +// rs1_val == -65, rs2_val == 0 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x41, 0x0, x2, 10*XLEN/8, x3) + +inst_42: +// rs1_val == -129, rs2_val == 1024 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x400 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x81, 0x400, x2, 11*XLEN/8, x3) + +inst_43: +// rs1_val == -513, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x201, 0x0, x2, 12*XLEN/8, x3) + +inst_44: +// rs1_val == -2049, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x801, -0x55555555, x2, 13*XLEN/8, x3) + +inst_45: +// rs1_val == -4097, rs2_val == 4194304 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x400000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1001, 0x400000, x2, 14*XLEN/8, x3) + +inst_46: +// rs1_val == -8193, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x9 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2001, -0x9, x2, 15*XLEN/8, x3) + +inst_47: +// rs1_val == -16385, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4001, -0x55555555, x2, 16*XLEN/8, x3) + +inst_48: +// rs1_val == -65537, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10001, -0x10000001, x2, 17*XLEN/8, x3) + +inst_49: +// rs1_val == -131073, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20001, -0xb503, x2, 18*XLEN/8, x3) + +inst_50: +// rs1_val == -262145, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40001, 0xb503, x2, 19*XLEN/8, x3) + +inst_51: +// rs1_val == -524289, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x401 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x80001, -0x401, x2, 20*XLEN/8, x3) + +inst_52: +// rs1_val == -1048577, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x100001, 0x66666665, x2, 21*XLEN/8, x3) + +inst_53: +// rs1_val == -2097153, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x8 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x200001, -0x8, x2, 22*XLEN/8, x3) + +inst_54: +// rs1_val == -4194305, rs2_val == 8192 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x2000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x400001, 0x2000, x2, 23*XLEN/8, x3) + +inst_55: +// rs1_val == -16777217, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x3fffffff +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1000001, 0x3fffffff, x2, 24*XLEN/8, x3) + +inst_56: +// rs1_val == -67108865, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x3fffffff +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4000001, 0x3fffffff, x2, 25*XLEN/8, x3) + +inst_57: +// rs1_val == -134217729, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x1001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8000001, -0x1001, x2, 26*XLEN/8, x3) + +inst_58: +// rs1_val == -268435457, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10000001, 0x66666667, x2, 27*XLEN/8, x3) + +inst_59: +// rs1_val == -536870913, rs2_val == 16384 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x4000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20000001, 0x4000, x2, 28*XLEN/8, x3) + +inst_60: +// rs1_val == -1073741825, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000001, -0x20001, x2, 29*XLEN/8, x3) + +inst_61: +// rs2_val == 1, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:0x1 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000000, 0x1, x2, 30*XLEN/8, x3) + +inst_62: +// rs2_val == 2, rs1_val > 0 and rs2_val > 0, rs1_val == 8 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8, 0x2, x2, 31*XLEN/8, x3) + +inst_63: +// rs2_val == 4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x9, 0x4, x2, 32*XLEN/8, x3) + +inst_64: +// rs2_val == 8, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x8 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5, 0x8, x2, 33*XLEN/8, x3) + +inst_65: +// rs2_val == 16, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x10 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1000001, 0x10, x2, 34*XLEN/8, x3) + +inst_66: +// rs2_val == 32, rs1_val == 131072 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x20 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20000, 0x20, x2, 35*XLEN/8, x3) + +inst_67: +// rs2_val == 64, rs1_val == 16 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x40 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x10, 0x40, x2, 36*XLEN/8, x3) + +inst_68: +// rs2_val == 128, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x80 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4001, 0x80, x2, 37*XLEN/8, x3) + +inst_69: +// rs2_val == 256, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x100 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40001, 0x100, x2, 38*XLEN/8, x3) + +inst_70: +// rs2_val == 512, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x200 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x200, x2, 39*XLEN/8, x3) + +inst_71: +// rs2_val == 2048, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x800 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4001, 0x800, x2, 40*XLEN/8, x3) + +inst_72: +// rs2_val == 4096, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x1000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x201, 0x1000, x2, 41*XLEN/8, x3) + +inst_73: +// rs2_val == 32768, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x8000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xa, 0x8000, x2, 42*XLEN/8, x3) + +inst_74: +// rs2_val == 65536, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x10000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x10000, x2, 43*XLEN/8, x3) + +inst_75: +// rs2_val == 524288, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x80000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x80000, x2, 44*XLEN/8, x3) + +inst_76: +// rs2_val == 1048576, rs1_val == 128 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x100000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80, 0x100000, x2, 45*XLEN/8, x3) + +inst_77: +// rs2_val == 8388608, rs1_val == 8388608 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x800000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800000, 0x800000, x2, 46*XLEN/8, x3) + +inst_78: +// rs2_val == 16777216, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8; op2val:0x1000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8, 0x1000000, x2, 47*XLEN/8, x3) + +inst_79: +// rs2_val == 33554432, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x2000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000001, 0x2000000, x2, 48*XLEN/8, x3) + +inst_80: +// rs2_val == 67108864, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x4000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20000, 0x4000000, x2, 49*XLEN/8, x3) + +inst_81: +// rs2_val == 134217728, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x8000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x101, 0x8000000, x2, 50*XLEN/8, x3) + +inst_82: +// rs2_val == 268435456, rs1_val == 16777216 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1000000, 0x10000000, x2, 51*XLEN/8, x3) + +inst_83: +// rs2_val == 536870912, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x20000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x20000000, x2, 52*XLEN/8, x3) + +inst_84: +// rs2_val == 1073741824, rs1_val == 32768 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x40000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000, 0x40000000, x2, 53*XLEN/8, x3) + +inst_85: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffff; op2val:-0x80000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x7fffffff, -0x80000000, x2, 54*XLEN/8, x3) + +inst_86: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x3, x2, 55*XLEN/8, x3) + +inst_87: +// rs1_val == 2, rs1_val==2 and rs2_val==46341 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0xb505, x2, 56*XLEN/8, x3) + +inst_88: +// rs1_val == 32, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20, 0x0, x2, 57*XLEN/8, x3) + +inst_89: +// rs1_val == 2048, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800, 0xb504, x2, 58*XLEN/8, x3) + +inst_90: +// rs1_val == 4096, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1000, 0x4, x2, 59*XLEN/8, x3) + +inst_91: +// rs1_val == 8192, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000, -0x5, x2, 60*XLEN/8, x3) + +inst_92: +// rs1_val == 65536, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x2000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x10000, 0x2000000, x2, 61*XLEN/8, x3) + +inst_93: +// rs1_val == 262144, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x7fffffff +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000, 0x7fffffff, x2, 62*XLEN/8, x3) + +inst_94: +// rs1_val == 524288, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80000, -0x3, x2, 63*XLEN/8, x3) + +inst_95: +// rs1_val == 1048576, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100000, 0x4, x2, 64*XLEN/8, x3) + +inst_96: +// rs1_val == 33554432, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x100 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000000, 0x100, x2, 65*XLEN/8, x3) + +inst_97: +// rs1_val == 67108864, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x400000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4000000, 0x400000, x2, 66*XLEN/8, x3) + +inst_98: +// rs1_val == 134217728, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000000, 0x6, x2, 67*XLEN/8, x3) + +inst_99: +// rs1_val == 536870912, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20000000, 0x10000000, x2, 68*XLEN/8, x3) + +inst_100: +// rs1_val == 1073741824, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000000, -0x10000001, x2, 69*XLEN/8, x3) + +inst_101: +// rs1_val==3 and rs2_val==1431655765, rs2_val == 1431655765 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x55555555, x2, 70*XLEN/8, x3) + +inst_102: +// rs1_val==3 and rs2_val==-1431655766, rs2_val == -1431655766 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0x55555556, x2, 71*XLEN/8, x3) + +inst_103: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x5, x2, 72*XLEN/8, x3) + +inst_104: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x33333333, x2, 73*XLEN/8, x3) + +inst_105: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x66666666, x2, 74*XLEN/8, x3) + +inst_106: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0xb504, x2, 75*XLEN/8, x3) + +inst_107: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0xb504, x2, 76*XLEN/8, x3) + +inst_108: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x2, x2, 77*XLEN/8, x3) + +inst_109: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x55555554, x2, 78*XLEN/8, x3) + +inst_110: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x0, x2, 79*XLEN/8, x3) + +inst_111: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x4, x2, 80*XLEN/8, x3) + +inst_112: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x33333332, x2, 81*XLEN/8, x3) + +inst_113: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x66666665, x2, 82*XLEN/8, x3) + +inst_114: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0xb503, x2, 83*XLEN/8, x3) + +inst_115: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x55555556, x2, 84*XLEN/8, x3) + +inst_116: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0x55555555, x2, 85*XLEN/8, x3) + +inst_117: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x6, x2, 86*XLEN/8, x3) + +inst_118: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x33333334, x2, 87*XLEN/8, x3) + +inst_119: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x66666667, x2, 88*XLEN/8, x3) + +inst_120: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0xb503, x2, 89*XLEN/8, x3) + +inst_121: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0xb505, x2, 90*XLEN/8, x3) + +inst_122: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x3, x2, 91*XLEN/8, x3) + +inst_123: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x55555555, x2, 92*XLEN/8, x3) + +inst_124: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, -0x55555556, x2, 93*XLEN/8, x3) + +inst_125: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x5, x2, 94*XLEN/8, x3) + +inst_126: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x33333333, x2, 95*XLEN/8, x3) + +inst_127: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x66666666, x2, 96*XLEN/8, x3) + +inst_128: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, -0xb504, x2, 97*XLEN/8, x3) + +inst_129: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0xb504, x2, 98*XLEN/8, x3) + +inst_130: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x2, x2, 99*XLEN/8, x3) + +inst_131: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x55555554, x2, 100*XLEN/8, x3) + +inst_132: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x0, x2, 101*XLEN/8, x3) + +inst_133: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x4, x2, 102*XLEN/8, x3) + +inst_134: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x33333332, x2, 103*XLEN/8, x3) + +inst_135: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x66666665, x2, 104*XLEN/8, x3) + +inst_136: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0xb503, x2, 105*XLEN/8, x3) + +inst_137: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x55555556, x2, 106*XLEN/8, x3) + +inst_138: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, -0x55555555, x2, 107*XLEN/8, x3) + +inst_139: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x6, x2, 108*XLEN/8, x3) + +inst_140: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x33333334, x2, 109*XLEN/8, x3) + +inst_141: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0x66666667, x2, 110*XLEN/8, x3) + +inst_142: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, -0xb503, x2, 111*XLEN/8, x3) + +inst_143: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, 0xb505, x2, 112*XLEN/8, x3) + +inst_144: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x3, x2, 113*XLEN/8, x3) + +inst_145: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x55555555, x2, 114*XLEN/8, x3) + +inst_146: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, -0x55555556, x2, 115*XLEN/8, x3) + +inst_147: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x5, x2, 116*XLEN/8, x3) + +inst_148: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x33333333, x2, 117*XLEN/8, x3) + +inst_149: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x66666666, x2, 118*XLEN/8, x3) + +inst_150: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, -0xb504, x2, 119*XLEN/8, x3) + +inst_151: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0xb504, x2, 120*XLEN/8, x3) + +inst_152: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x2, x2, 121*XLEN/8, x3) + +inst_153: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x55555554, x2, 122*XLEN/8, x3) + +inst_154: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x0, x2, 123*XLEN/8, x3) + +inst_155: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x4, x2, 124*XLEN/8, x3) + +inst_156: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x33333332, x2, 125*XLEN/8, x3) + +inst_157: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x66666665, x2, 126*XLEN/8, x3) + +inst_158: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0xb503, x2, 127*XLEN/8, x3) + +inst_159: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x55555556, x2, 128*XLEN/8, x3) + +inst_160: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, -0x55555555, x2, 129*XLEN/8, x3) + +inst_161: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x6, x2, 130*XLEN/8, x3) + +inst_162: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x33333334, x2, 131*XLEN/8, x3) + +inst_163: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0x66666667, x2, 132*XLEN/8, x3) + +inst_164: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, -0xb503, x2, 133*XLEN/8, x3) + +inst_165: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, 0xb505, x2, 134*XLEN/8, x3) + +inst_166: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x3, x2, 135*XLEN/8, x3) + +inst_167: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x55555555, x2, 136*XLEN/8, x3) + +inst_168: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0x55555556, x2, 137*XLEN/8, x3) + +inst_169: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x5, x2, 138*XLEN/8, x3) + +inst_170: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x33333333, x2, 139*XLEN/8, x3) + +inst_171: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x66666666, x2, 140*XLEN/8, x3) + +inst_172: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0xb504, x2, 141*XLEN/8, x3) + +inst_173: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0xb504, x2, 142*XLEN/8, x3) + +inst_174: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x2, x2, 143*XLEN/8, x3) + +inst_175: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x55555554, x2, 144*XLEN/8, x3) + +inst_176: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x0, x2, 145*XLEN/8, x3) + +inst_177: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x4, x2, 146*XLEN/8, x3) + +inst_178: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x33333332, x2, 147*XLEN/8, x3) + +inst_179: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x66666665, x2, 148*XLEN/8, x3) + +inst_180: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0xb503, x2, 149*XLEN/8, x3) + +inst_181: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x55555556, x2, 150*XLEN/8, x3) + +inst_182: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0x55555555, x2, 151*XLEN/8, x3) + +inst_183: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x6, x2, 152*XLEN/8, x3) + +inst_184: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x33333334, x2, 153*XLEN/8, x3) + +inst_185: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x66666667, x2, 154*XLEN/8, x3) + +inst_186: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0xb503, x2, 155*XLEN/8, x3) + +inst_187: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0xb505, x2, 156*XLEN/8, x3) + +inst_188: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x3, x2, 157*XLEN/8, x3) + +inst_189: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x55555555, x2, 158*XLEN/8, x3) + +inst_190: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, -0x55555556, x2, 159*XLEN/8, x3) + +inst_191: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x5, x2, 160*XLEN/8, x3) + +inst_192: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x33333333, x2, 161*XLEN/8, x3) + +inst_193: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x66666666, x2, 162*XLEN/8, x3) + +inst_194: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, -0xb504, x2, 163*XLEN/8, x3) + +inst_195: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0xb504, x2, 164*XLEN/8, x3) + +inst_196: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x2, x2, 165*XLEN/8, x3) + +inst_197: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x55555554, x2, 166*XLEN/8, x3) + +inst_198: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x0, x2, 167*XLEN/8, x3) + +inst_199: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x4, x2, 168*XLEN/8, x3) + +inst_200: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x33333332, x2, 169*XLEN/8, x3) + +inst_201: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x66666665, x2, 170*XLEN/8, x3) + +inst_202: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0xb503, x2, 171*XLEN/8, x3) + +inst_203: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x55555556, x2, 172*XLEN/8, x3) + +inst_204: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, -0x55555555, x2, 173*XLEN/8, x3) + +inst_205: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x6, x2, 174*XLEN/8, x3) + +inst_206: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x33333334, x2, 175*XLEN/8, x3) + +inst_207: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0x66666667, x2, 176*XLEN/8, x3) + +inst_208: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, -0xb503, x2, 177*XLEN/8, x3) + +inst_209: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333333, 0xb505, x2, 178*XLEN/8, x3) + +inst_210: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x3, x2, 179*XLEN/8, x3) + +inst_211: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x55555555, x2, 180*XLEN/8, x3) + +inst_212: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, -0x55555556, x2, 181*XLEN/8, x3) + +inst_213: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x5, x2, 182*XLEN/8, x3) + +inst_214: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x33333333, x2, 183*XLEN/8, x3) + +inst_215: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x66666666, x2, 184*XLEN/8, x3) + +inst_216: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, -0xb504, x2, 185*XLEN/8, x3) + +inst_217: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0xb504, x2, 186*XLEN/8, x3) + +inst_218: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x2, x2, 187*XLEN/8, x3) + +inst_219: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x55555554, x2, 188*XLEN/8, x3) + +inst_220: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x0, x2, 189*XLEN/8, x3) + +inst_221: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x4, x2, 190*XLEN/8, x3) + +inst_222: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x33333332, x2, 191*XLEN/8, x3) + +inst_223: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x66666665, x2, 192*XLEN/8, x3) + +inst_224: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0xb503, x2, 193*XLEN/8, x3) + +inst_225: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x55555556, x2, 194*XLEN/8, x3) + +inst_226: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, -0x55555555, x2, 195*XLEN/8, x3) + +inst_227: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x6, x2, 196*XLEN/8, x3) + +inst_228: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x33333334, x2, 197*XLEN/8, x3) + +inst_229: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0x66666667, x2, 198*XLEN/8, x3) + +inst_230: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, -0xb503, x2, 199*XLEN/8, x3) + +inst_231: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666666, 0xb505, x2, 200*XLEN/8, x3) + +inst_232: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x3, x2, 201*XLEN/8, x3) + +inst_233: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x55555555, x2, 202*XLEN/8, x3) + +inst_234: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, -0x55555556, x2, 203*XLEN/8, x3) + +inst_235: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x5, x2, 204*XLEN/8, x3) + +inst_236: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x33333333, x2, 205*XLEN/8, x3) + +inst_237: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x66666666, x2, 206*XLEN/8, x3) + +inst_238: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, -0xb504, x2, 207*XLEN/8, x3) + +inst_239: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0xb504, x2, 208*XLEN/8, x3) + +inst_240: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x2, x2, 209*XLEN/8, x3) + +inst_241: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x55555554, x2, 210*XLEN/8, x3) + +inst_242: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x0, x2, 211*XLEN/8, x3) + +inst_243: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x4, x2, 212*XLEN/8, x3) + +inst_244: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x33333332, x2, 213*XLEN/8, x3) + +inst_245: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x66666665, x2, 214*XLEN/8, x3) + +inst_246: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0xb503, x2, 215*XLEN/8, x3) + +inst_247: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x55555556, x2, 216*XLEN/8, x3) + +inst_248: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, -0x55555555, x2, 217*XLEN/8, x3) + +inst_249: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x6, x2, 218*XLEN/8, x3) + +inst_250: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x33333334, x2, 219*XLEN/8, x3) + +inst_251: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0x66666667, x2, 220*XLEN/8, x3) + +inst_252: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, -0xb503, x2, 221*XLEN/8, x3) + +inst_253: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504, 0xb505, x2, 222*XLEN/8, x3) + +inst_254: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x3, x2, 223*XLEN/8, x3) + +inst_255: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x55555555, x2, 224*XLEN/8, x3) + +inst_256: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, -0x55555556, x2, 225*XLEN/8, x3) + +inst_257: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x5, x2, 226*XLEN/8, x3) + +inst_258: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x33333333, x2, 227*XLEN/8, x3) + +inst_259: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x66666666, x2, 228*XLEN/8, x3) + +inst_260: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, -0xb504, x2, 229*XLEN/8, x3) + +inst_261: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0xb504, x2, 230*XLEN/8, x3) + +inst_262: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x2, x2, 231*XLEN/8, x3) + +inst_263: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x55555554, x2, 232*XLEN/8, x3) + +inst_264: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x0, x2, 233*XLEN/8, x3) + +inst_265: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x4, x2, 234*XLEN/8, x3) + +inst_266: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x33333332, x2, 235*XLEN/8, x3) + +inst_267: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x66666665, x2, 236*XLEN/8, x3) + +inst_268: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0xb503, x2, 237*XLEN/8, x3) + +inst_269: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x55555556, x2, 238*XLEN/8, x3) + +inst_270: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, -0x55555555, x2, 239*XLEN/8, x3) + +inst_271: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x6, x2, 240*XLEN/8, x3) + +inst_272: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x33333334, x2, 241*XLEN/8, x3) + +inst_273: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0x66666667, x2, 242*XLEN/8, x3) + +inst_274: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, -0xb503, x2, 243*XLEN/8, x3) + +inst_275: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504, 0xb505, x2, 244*XLEN/8, x3) + +inst_276: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x3, x2, 245*XLEN/8, x3) + +inst_277: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x55555555, x2, 246*XLEN/8, x3) + +inst_278: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0x55555556, x2, 247*XLEN/8, x3) + +inst_279: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x5, x2, 248*XLEN/8, x3) + +inst_280: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x33333333, x2, 249*XLEN/8, x3) + +inst_281: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x66666666, x2, 250*XLEN/8, x3) + +inst_282: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0xb504, x2, 251*XLEN/8, x3) + +inst_283: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0xb504, x2, 252*XLEN/8, x3) + +inst_284: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x2, x2, 253*XLEN/8, x3) + +inst_285: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x55555554, x2, 254*XLEN/8, x3) + +inst_286: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x0, x2, 255*XLEN/8, x3) +RVTEST_SIGBASE(x2,signature_x2_2) + +inst_287: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x4, x2, 0*XLEN/8, x3) + +inst_288: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x33333332, x2, 1*XLEN/8, x3) + +inst_289: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x66666665, x2, 2*XLEN/8, x3) + +inst_290: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0xb503, x2, 3*XLEN/8, x3) + +inst_291: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x55555556, x2, 4*XLEN/8, x3) + +inst_292: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0x55555555, x2, 5*XLEN/8, x3) + +inst_293: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x6, x2, 6*XLEN/8, x3) + +inst_294: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x33333334, x2, 7*XLEN/8, x3) + +inst_295: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x66666667, x2, 8*XLEN/8, x3) + +inst_296: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0xb503, x2, 9*XLEN/8, x3) + +inst_297: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x3, x2, 10*XLEN/8, x3) + +inst_298: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x55555555, x2, 11*XLEN/8, x3) + +inst_299: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, -0x55555556, x2, 12*XLEN/8, x3) + +inst_300: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x5, x2, 13*XLEN/8, x3) + +inst_301: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x33333333, x2, 14*XLEN/8, x3) + +inst_302: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x66666666, x2, 15*XLEN/8, x3) + +inst_303: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, -0xb504, x2, 16*XLEN/8, x3) + +inst_304: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0xb504, x2, 17*XLEN/8, x3) + +inst_305: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x2, x2, 18*XLEN/8, x3) + +inst_306: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x55555554, x2, 19*XLEN/8, x3) + +inst_307: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x0, x2, 20*XLEN/8, x3) + +inst_308: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x4, x2, 21*XLEN/8, x3) + +inst_309: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x33333332, x2, 22*XLEN/8, x3) + +inst_310: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x66666665, x2, 23*XLEN/8, x3) + +inst_311: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0xb503, x2, 24*XLEN/8, x3) + +inst_312: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x55555556, x2, 25*XLEN/8, x3) + +inst_313: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, -0x55555555, x2, 26*XLEN/8, x3) + +inst_314: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x6, x2, 27*XLEN/8, x3) + +inst_315: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x33333334, x2, 28*XLEN/8, x3) + +inst_316: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0x66666667, x2, 29*XLEN/8, x3) + +inst_317: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, -0xb503, x2, 30*XLEN/8, x3) + +inst_318: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555554, 0xb505, x2, 31*XLEN/8, x3) + +inst_319: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x3, x2, 32*XLEN/8, x3) + +inst_320: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x55555555, x2, 33*XLEN/8, x3) + +inst_321: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0x55555556, x2, 34*XLEN/8, x3) + +inst_322: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x5, x2, 35*XLEN/8, x3) + +inst_323: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x33333333, x2, 36*XLEN/8, x3) + +inst_324: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x66666666, x2, 37*XLEN/8, x3) + +inst_325: +// rs1_val==0 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0xb504, x2, 38*XLEN/8, x3) + +inst_326: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0xb504, x2, 39*XLEN/8, x3) + +inst_327: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x2, x2, 40*XLEN/8, x3) + +inst_328: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, -0x55555555, x2, 41*XLEN/8, x3) + +inst_329: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x6, x2, 42*XLEN/8, x3) + +inst_330: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x33333334, x2, 43*XLEN/8, x3) + +inst_331: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x66666667, x2, 44*XLEN/8, x3) + +inst_332: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, -0xb503, x2, 45*XLEN/8, x3) + +inst_333: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0xb505, x2, 46*XLEN/8, x3) + +inst_334: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x3, x2, 47*XLEN/8, x3) + +inst_335: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x55555555, x2, 48*XLEN/8, x3) + +inst_336: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0x55555556, x2, 49*XLEN/8, x3) + +inst_337: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x5, x2, 50*XLEN/8, x3) + +inst_338: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x33333333, x2, 51*XLEN/8, x3) + +inst_339: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x66666666, x2, 52*XLEN/8, x3) + +inst_340: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0xb504, x2, 53*XLEN/8, x3) + +inst_341: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0xb504, x2, 54*XLEN/8, x3) + +inst_342: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x2, x2, 55*XLEN/8, x3) + +inst_343: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x55555554, x2, 56*XLEN/8, x3) + +inst_344: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x0, x2, 57*XLEN/8, x3) + +inst_345: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x4, x2, 58*XLEN/8, x3) + +inst_346: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x33333332, x2, 59*XLEN/8, x3) + +inst_347: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x66666665, x2, 60*XLEN/8, x3) + +inst_348: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0xb503, x2, 61*XLEN/8, x3) + +inst_349: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x55555556, x2, 62*XLEN/8, x3) + +inst_350: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0x55555555, x2, 63*XLEN/8, x3) + +inst_351: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x6, x2, 64*XLEN/8, x3) + +inst_352: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x33333334, x2, 65*XLEN/8, x3) + +inst_353: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x66666667, x2, 66*XLEN/8, x3) + +inst_354: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0xb503, x2, 67*XLEN/8, x3) + +inst_355: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0xb505, x2, 68*XLEN/8, x3) + +inst_356: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x3, x2, 69*XLEN/8, x3) + +inst_357: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x55555555, x2, 70*XLEN/8, x3) + +inst_358: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, -0x55555556, x2, 71*XLEN/8, x3) + +inst_359: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x5, x2, 72*XLEN/8, x3) + +inst_360: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x33333333, x2, 73*XLEN/8, x3) + +inst_361: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x66666666, x2, 74*XLEN/8, x3) + +inst_362: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, -0xb504, x2, 75*XLEN/8, x3) + +inst_363: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0xb504, x2, 76*XLEN/8, x3) + +inst_364: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x2, x2, 77*XLEN/8, x3) + +inst_365: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x55555554, x2, 78*XLEN/8, x3) + +inst_366: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x0, x2, 79*XLEN/8, x3) + +inst_367: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x4, x2, 80*XLEN/8, x3) + +inst_368: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x33333332, x2, 81*XLEN/8, x3) + +inst_369: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x66666665, x2, 82*XLEN/8, x3) + +inst_370: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0xb503, x2, 83*XLEN/8, x3) + +inst_371: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x55555556, x2, 84*XLEN/8, x3) + +inst_372: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, -0x55555555, x2, 85*XLEN/8, x3) + +inst_373: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x6, x2, 86*XLEN/8, x3) + +inst_374: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x33333334, x2, 87*XLEN/8, x3) + +inst_375: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0x66666667, x2, 88*XLEN/8, x3) + +inst_376: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, -0xb503, x2, 89*XLEN/8, x3) + +inst_377: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333334, 0xb505, x2, 90*XLEN/8, x3) + +inst_378: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x3, x2, 91*XLEN/8, x3) + +inst_379: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x55555555, x2, 92*XLEN/8, x3) + +inst_380: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, -0x55555556, x2, 93*XLEN/8, x3) + +inst_381: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x5, x2, 94*XLEN/8, x3) + +inst_382: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x33333333, x2, 95*XLEN/8, x3) + +inst_383: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x66666666, x2, 96*XLEN/8, x3) + +inst_384: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, -0xb504, x2, 97*XLEN/8, x3) + +inst_385: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0xb504, x2, 98*XLEN/8, x3) + +inst_386: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x2, x2, 99*XLEN/8, x3) + +inst_387: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x55555554, x2, 100*XLEN/8, x3) + +inst_388: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x0, x2, 101*XLEN/8, x3) + +inst_389: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x4, x2, 102*XLEN/8, x3) + +inst_390: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x33333332, x2, 103*XLEN/8, x3) + +inst_391: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x66666665, x2, 104*XLEN/8, x3) + +inst_392: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0xb503, x2, 105*XLEN/8, x3) + +inst_393: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x55555556, x2, 106*XLEN/8, x3) + +inst_394: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, -0x55555555, x2, 107*XLEN/8, x3) + +inst_395: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x6, x2, 108*XLEN/8, x3) + +inst_396: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x33333334, x2, 109*XLEN/8, x3) + +inst_397: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0x66666667, x2, 110*XLEN/8, x3) + +inst_398: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, -0xb503, x2, 111*XLEN/8, x3) + +inst_399: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666667, 0xb505, x2, 112*XLEN/8, x3) + +inst_400: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x3, x2, 113*XLEN/8, x3) + +inst_401: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x55555555, x2, 114*XLEN/8, x3) + +inst_402: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, -0x55555556, x2, 115*XLEN/8, x3) + +inst_403: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x5, x2, 116*XLEN/8, x3) + +inst_404: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x33333333, x2, 117*XLEN/8, x3) + +inst_405: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x66666666, x2, 118*XLEN/8, x3) + +inst_406: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, -0xb504, x2, 119*XLEN/8, x3) + +inst_407: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0xb504, x2, 120*XLEN/8, x3) + +inst_408: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x2, x2, 121*XLEN/8, x3) + +inst_409: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x55555554, x2, 122*XLEN/8, x3) + +inst_410: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x0, x2, 123*XLEN/8, x3) + +inst_411: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x4, x2, 124*XLEN/8, x3) + +inst_412: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x33333332, x2, 125*XLEN/8, x3) + +inst_413: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x66666665, x2, 126*XLEN/8, x3) + +inst_414: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0xb503, x2, 127*XLEN/8, x3) + +inst_415: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x55555556, x2, 128*XLEN/8, x3) + +inst_416: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, -0x55555555, x2, 129*XLEN/8, x3) + +inst_417: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x6, x2, 130*XLEN/8, x3) + +inst_418: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x33333334, x2, 131*XLEN/8, x3) + +inst_419: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0x66666667, x2, 132*XLEN/8, x3) + +inst_420: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, -0xb503, x2, 133*XLEN/8, x3) + +inst_421: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb503, 0xb505, x2, 134*XLEN/8, x3) + +inst_422: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x3, x2, 135*XLEN/8, x3) + +inst_423: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x55555555, x2, 136*XLEN/8, x3) + +inst_424: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, -0x55555556, x2, 137*XLEN/8, x3) + +inst_425: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x5, x2, 138*XLEN/8, x3) + +inst_426: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x33333333, x2, 139*XLEN/8, x3) + +inst_427: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x66666666, x2, 140*XLEN/8, x3) + +inst_428: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, -0xb504, x2, 141*XLEN/8, x3) + +inst_429: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0xb504, x2, 142*XLEN/8, x3) + +inst_430: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x2, x2, 143*XLEN/8, x3) + +inst_431: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x55555554, x2, 144*XLEN/8, x3) + +inst_432: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x0, x2, 145*XLEN/8, x3) + +inst_433: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x4, x2, 146*XLEN/8, x3) + +inst_434: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x33333332, x2, 147*XLEN/8, x3) + +inst_435: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x66666665, x2, 148*XLEN/8, x3) + +inst_436: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0xb503, x2, 149*XLEN/8, x3) + +inst_437: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x55555556, x2, 150*XLEN/8, x3) + +inst_438: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, -0x55555555, x2, 151*XLEN/8, x3) + +inst_439: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x6, x2, 152*XLEN/8, x3) + +inst_440: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x33333334, x2, 153*XLEN/8, x3) + +inst_441: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0x66666667, x2, 154*XLEN/8, x3) + +inst_442: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, -0xb503, x2, 155*XLEN/8, x3) + +inst_443: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb505, 0xb505, x2, 156*XLEN/8, x3) + +inst_444: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x55555554, x2, 157*XLEN/8, x3) + +inst_445: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x0, x2, 158*XLEN/8, x3) + +inst_446: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x4, x2, 159*XLEN/8, x3) + +inst_447: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x33333332, x2, 160*XLEN/8, x3) + +inst_448: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x66666665, x2, 161*XLEN/8, x3) + +inst_449: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0xb503, x2, 162*XLEN/8, x3) + +inst_450: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x55555556, x2, 163*XLEN/8, x3) + +inst_451: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0x55555555, x2, 164*XLEN/8, x3) + +inst_452: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x6, x2, 165*XLEN/8, x3) + +inst_453: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x33333334, x2, 166*XLEN/8, x3) + +inst_454: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x66666667, x2, 167*XLEN/8, x3) + +inst_455: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0xb503, x2, 168*XLEN/8, x3) + +inst_456: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0xb505, x2, 169*XLEN/8, x3) + +inst_457: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x3, x2, 170*XLEN/8, x3) + +inst_458: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x55555555, x2, 171*XLEN/8, x3) + +inst_459: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0x55555556, x2, 172*XLEN/8, x3) + +inst_460: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x5, x2, 173*XLEN/8, x3) + +inst_461: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x33333333, x2, 174*XLEN/8, x3) + +inst_462: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x66666666, x2, 175*XLEN/8, x3) + +inst_463: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0xb504, x2, 176*XLEN/8, x3) + +inst_464: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0xb504, x2, 177*XLEN/8, x3) + +inst_465: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x2, x2, 178*XLEN/8, x3) + +inst_466: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x55555554, x2, 179*XLEN/8, x3) + +inst_467: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x0, x2, 180*XLEN/8, x3) + +inst_468: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x4, x2, 181*XLEN/8, x3) + +inst_469: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x33333332, x2, 182*XLEN/8, x3) + +inst_470: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x66666665, x2, 183*XLEN/8, x3) + +inst_471: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0xb503, x2, 184*XLEN/8, x3) + +inst_472: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x55555556, x2, 185*XLEN/8, x3) + +inst_473: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0x55555555, x2, 186*XLEN/8, x3) + +inst_474: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x6, x2, 187*XLEN/8, x3) + +inst_475: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x33333334, x2, 188*XLEN/8, x3) + +inst_476: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x66666667, x2, 189*XLEN/8, x3) + +inst_477: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0xb503, x2, 190*XLEN/8, x3) + +inst_478: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0xb505, x2, 191*XLEN/8, x3) + +inst_479: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x3, x2, 192*XLEN/8, x3) + +inst_480: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x55555555, x2, 193*XLEN/8, x3) + +inst_481: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, -0x55555556, x2, 194*XLEN/8, x3) + +inst_482: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x5, x2, 195*XLEN/8, x3) + +inst_483: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x33333333, x2, 196*XLEN/8, x3) + +inst_484: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x66666666, x2, 197*XLEN/8, x3) + +inst_485: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, -0xb504, x2, 198*XLEN/8, x3) + +inst_486: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0xb504, x2, 199*XLEN/8, x3) + +inst_487: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x2, x2, 200*XLEN/8, x3) + +inst_488: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x55555554, x2, 201*XLEN/8, x3) + +inst_489: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x0, x2, 202*XLEN/8, x3) + +inst_490: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x4, x2, 203*XLEN/8, x3) + +inst_491: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x33333332, x2, 204*XLEN/8, x3) + +inst_492: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x66666665, x2, 205*XLEN/8, x3) + +inst_493: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0xb503, x2, 206*XLEN/8, x3) + +inst_494: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x55555556, x2, 207*XLEN/8, x3) + +inst_495: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, -0x55555555, x2, 208*XLEN/8, x3) + +inst_496: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x6, x2, 209*XLEN/8, x3) + +inst_497: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x33333334, x2, 210*XLEN/8, x3) + +inst_498: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0x66666667, x2, 211*XLEN/8, x3) + +inst_499: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, -0xb503, x2, 212*XLEN/8, x3) + +inst_500: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x33333332, 0xb505, x2, 213*XLEN/8, x3) + +inst_501: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x3, x2, 214*XLEN/8, x3) + +inst_502: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x55555555, x2, 215*XLEN/8, x3) + +inst_503: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, -0x55555556, x2, 216*XLEN/8, x3) + +inst_504: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x5, x2, 217*XLEN/8, x3) + +inst_505: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x33333333, x2, 218*XLEN/8, x3) + +inst_506: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x66666666, x2, 219*XLEN/8, x3) + +inst_507: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, -0xb504, x2, 220*XLEN/8, x3) + +inst_508: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0xb504, x2, 221*XLEN/8, x3) + +inst_509: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x2, x2, 222*XLEN/8, x3) + +inst_510: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x55555554, x2, 223*XLEN/8, x3) + +inst_511: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x0, x2, 224*XLEN/8, x3) + +inst_512: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x4, x2, 225*XLEN/8, x3) + +inst_513: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x33333332, x2, 226*XLEN/8, x3) + +inst_514: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x66666665, x2, 227*XLEN/8, x3) + +inst_515: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0xb503, x2, 228*XLEN/8, x3) + +inst_516: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x55555556, x2, 229*XLEN/8, x3) + +inst_517: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, -0x55555555, x2, 230*XLEN/8, x3) + +inst_518: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x6, x2, 231*XLEN/8, x3) + +inst_519: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x33333334, x2, 232*XLEN/8, x3) + +inst_520: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0x66666667, x2, 233*XLEN/8, x3) + +inst_521: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, -0xb503, x2, 234*XLEN/8, x3) + +inst_522: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x66666665, 0xb505, x2, 235*XLEN/8, x3) + +inst_523: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x3, x2, 236*XLEN/8, x3) + +inst_524: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x55555555, x2, 237*XLEN/8, x3) + +inst_525: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, -0x55555556, x2, 238*XLEN/8, x3) + +inst_526: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x5, x2, 239*XLEN/8, x3) + +inst_527: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x33333333, x2, 240*XLEN/8, x3) + +inst_528: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x66666666, x2, 241*XLEN/8, x3) + +inst_529: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, -0xb504, x2, 242*XLEN/8, x3) + +inst_530: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0xb504, x2, 243*XLEN/8, x3) + +inst_531: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x2, x2, 244*XLEN/8, x3) + +inst_532: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x55555554, x2, 245*XLEN/8, x3) + +inst_533: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x0, x2, 246*XLEN/8, x3) + +inst_534: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x4, x2, 247*XLEN/8, x3) + +inst_535: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x33333332, x2, 248*XLEN/8, x3) + +inst_536: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x66666665, x2, 249*XLEN/8, x3) + +inst_537: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0xb503, x2, 250*XLEN/8, x3) + +inst_538: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x55555556, x2, 251*XLEN/8, x3) + +inst_539: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, -0x55555555, x2, 252*XLEN/8, x3) + +inst_540: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x6, x2, 253*XLEN/8, x3) + +inst_541: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x33333334, x2, 254*XLEN/8, x3) + +inst_542: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0x66666667, x2, 255*XLEN/8, x3) +RVTEST_SIGBASE(x2,signature_x2_3) + +inst_543: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, -0xb503, x2, 0*XLEN/8, x3) + +inst_544: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb503, 0xb505, x2, 1*XLEN/8, x3) + +inst_545: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x3, x2, 2*XLEN/8, x3) + +inst_546: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x55555555, x2, 3*XLEN/8, x3) + +inst_547: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, -0x55555556, x2, 4*XLEN/8, x3) + +inst_548: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x5, x2, 5*XLEN/8, x3) + +inst_549: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x33333333, x2, 6*XLEN/8, x3) + +inst_550: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x66666666, x2, 7*XLEN/8, x3) + +inst_551: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, -0xb504, x2, 8*XLEN/8, x3) + +inst_552: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0xb504, x2, 9*XLEN/8, x3) + +inst_553: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x2, x2, 10*XLEN/8, x3) + +inst_554: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x55555554, x2, 11*XLEN/8, x3) + +inst_555: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x0, x2, 12*XLEN/8, x3) + +inst_556: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x4, x2, 13*XLEN/8, x3) + +inst_557: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x33333332, x2, 14*XLEN/8, x3) + +inst_558: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x66666665, x2, 15*XLEN/8, x3) + +inst_559: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0xb503, x2, 16*XLEN/8, x3) + +inst_560: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x55555556, x2, 17*XLEN/8, x3) + +inst_561: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, -0x55555555, x2, 18*XLEN/8, x3) + +inst_562: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x6, x2, 19*XLEN/8, x3) + +inst_563: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x33333334, x2, 20*XLEN/8, x3) + +inst_564: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0x66666667, x2, 21*XLEN/8, x3) + +inst_565: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, -0xb503, x2, 22*XLEN/8, x3) + +inst_566: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555556, 0xb505, x2, 23*XLEN/8, x3) + +inst_567: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x3, x2, 24*XLEN/8, x3) + +inst_568: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x55555555, x2, 25*XLEN/8, x3) + +inst_569: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, -0x55555556, x2, 26*XLEN/8, x3) + +inst_570: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x5, x2, 27*XLEN/8, x3) + +inst_571: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x33333333, x2, 28*XLEN/8, x3) + +inst_572: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x66666666, x2, 29*XLEN/8, x3) + +inst_573: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, -0xb504, x2, 30*XLEN/8, x3) + +inst_574: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0xb504, x2, 31*XLEN/8, x3) + +inst_575: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x2, x2, 32*XLEN/8, x3) + +inst_576: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x55555554, x2, 33*XLEN/8, x3) + +inst_577: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x0, x2, 34*XLEN/8, x3) + +inst_578: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x4, x2, 35*XLEN/8, x3) + +inst_579: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x33333332, x2, 36*XLEN/8, x3) + +inst_580: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x66666665, x2, 37*XLEN/8, x3) + +inst_581: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0xb503, x2, 38*XLEN/8, x3) + +inst_582: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555555, 0x55555556, x2, 39*XLEN/8, x3) + +inst_583: +// rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0, rs1_val == 16384, rs2_val == -16777217 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x1000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4000, -0x1000001, x2, 40*XLEN/8, x3) + +inst_584: +// rs1_val < 0 and rs2_val < 0, rs1_val == -1431655766, rs2_val == -8388609 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x800001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x55555556, -0x800001, x2, 41*XLEN/8, x3) + +inst_585: +// rs1_val == 1, rs2_val == -17 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:-0x11 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1, -0x11, x2, 42*XLEN/8, x3) + +inst_586: +// rs2_val == -65, rs1_val == 1431655765 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x41 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x55555555, -0x41, x2, 43*XLEN/8, x3) +#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 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_2: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_3: + .fill 44*((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/Zimop/src/mop.rr.2-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.2-01.S new file mode 100644 index 000000000..940235ecf --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.2-01.S @@ -0,0 +1,3067 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.2 instruction of the RISC-V RV32Zimop extension for the mop.rr.2 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.2) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x8, rs2==x8, rd==x8, rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0, rs2_val == -67108865 +// opcode: mop.rr.2 ; op1:x8; op2:x8; dest:x8; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x8, x8, x8, 0, 0x66666665, 0x66666665, x6, 0*XLEN/8, x7) + +inst_1: +// rs1 == rs2 != rd, rs1==x13, rs2==x13, rd==x5, rs1_val < 0 and rs2_val < 0, rs2_val == -131073, rs1_val == -131073, rs1_val == rs2_val +// opcode: mop.rr.2 ; op1:x13; op2:x13; dest:x5; op1val:-0x20001; op2val:-0x20001 +TEST_RR_OP(mop.rr.2, x5, x13, x13, 0, -0x20001, -0x20001, x6, 1*XLEN/8, x7) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x22, rs2==x20, rd==x23, rs1_val < 0 and rs2_val > 0, rs1_val == -536870913 +// opcode: mop.rr.2 ; op1:x22; op2:x20; dest:x23; op1val:-0x20000001; op2val:0x3 +TEST_RR_OP(mop.rr.2, x23, x22, x20, 0, -0x20000001, 0x3, x6, 2*XLEN/8, x7) + +inst_3: +// rs2 == rd != rs1, rs1==x5, rs2==x16, rd==x16, rs1_val == (-2**(xlen-1)), rs1_val == -2147483648 +// opcode: mop.rr.2 ; op1:x5; op2:x16; dest:x16; op1val:-0x80000000; op2val:0x5 +TEST_RR_OP(mop.rr.2, x16, x5, x16, 0, -0x80000000, 0x5, x6, 3*XLEN/8, x7) + +inst_4: +// rs1 == rd != rs2, rs1==x20, rs2==x17, rd==x20, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs2_val == 1431655765, rs1_val == 2147483647 +// opcode: mop.rr.2 ; op1:x20; op2:x17; dest:x20; op1val:0x7fffffff; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x20, x20, x17, 0, 0x7fffffff, 0x55555555, x6, 4*XLEN/8, x7) + +inst_5: +// rs1==x9, rs2==x27, rd==x14, rs1_val == 0, rs2_val == 4, rs1_val==0 and rs2_val==4 +// opcode: mop.rr.2 ; op1:x9; op2:x27; dest:x14; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.2, x14, x9, x27, 0, 0x0, 0x4, x6, 5*XLEN/8, x7) + +inst_6: +// rs1==x17, rs2==x4, rd==x12, rs1_val == 1, rs2_val == -1431655766 +// opcode: mop.rr.2 ; op1:x17; op2:x4; dest:x12; op1val:0x1; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x12, x17, x4, 0, 0x1, -0x55555556, x6, 6*XLEN/8, x7) + +inst_7: +// rs1==x19, rs2==x14, rd==x3, rs2_val == -2, rs1_val == 524288 +// opcode: mop.rr.2 ; op1:x19; op2:x14; dest:x3; op1val:0x80000; op2val:-0x2 +TEST_RR_OP(mop.rr.2, x3, x19, x14, 0, 0x80000, -0x2, x6, 7*XLEN/8, x7) + +inst_8: +// rs1==x1, rs2==x30, rd==x9, rs2_val == -3, rs1_val == -513 +// opcode: mop.rr.2 ; op1:x1; op2:x30; dest:x9; op1val:-0x201; op2val:-0x3 +TEST_RR_OP(mop.rr.2, x9, x1, x30, 0, -0x201, -0x3, x6, 8*XLEN/8, x7) + +inst_9: +// rs1==x31, rs2==x18, rd==x19, rs2_val == -5, +// opcode: mop.rr.2 ; op1:x31; op2:x18; dest:x19; op1val:0x33333333; op2val:-0x5 +TEST_RR_OP(mop.rr.2, x19, x31, x18, 0, 0x33333333, -0x5, x6, 9*XLEN/8, x7) + +inst_10: +// rs1==x2, rs2==x25, rd==x28, rs2_val == -9, +// opcode: mop.rr.2 ; op1:x2; op2:x25; dest:x28; op1val:-0x6; op2val:-0x9 +TEST_RR_OP(mop.rr.2, x28, x2, x25, 0, -0x6, -0x9, x6, 10*XLEN/8, x7) + +inst_11: +// rs1==x26, rs2==x19, rd==x11, rs2_val == -17, rs1_val == -32769 +// opcode: mop.rr.2 ; op1:x26; op2:x19; dest:x11; op1val:-0x8001; op2val:-0x11 +TEST_RR_OP(mop.rr.2, x11, x26, x19, 0, -0x8001, -0x11, x6, 11*XLEN/8, x7) + +inst_12: +// rs1==x24, rs2==x1, rd==x21, rs2_val == -33, +// opcode: mop.rr.2 ; op1:x24; op2:x1; dest:x21; op1val:-0x8001; op2val:-0x21 +TEST_RR_OP(mop.rr.2, x21, x24, x1, 0, -0x8001, -0x21, x6, 12*XLEN/8, x7) +RVTEST_SIGBASE(x5,signature_x5_0) + +inst_13: +// rs1==x12, rs2==x22, rd==x17, rs2_val == -65, rs1_val == -1431655766 +// opcode: mop.rr.2 ; op1:x12; op2:x22; dest:x17; op1val:-0x55555556; op2val:-0x41 +TEST_RR_OP(mop.rr.2, x17, x12, x22, 0, -0x55555556, -0x41, x5, 0*XLEN/8, x8) + +inst_14: +// rs1==x4, rs2==x3, rd==x13, rs2_val == -129, +// opcode: mop.rr.2 ; op1:x4; op2:x3; dest:x13; op1val:0x3; op2val:-0x81 +TEST_RR_OP(mop.rr.2, x13, x4, x3, 0, 0x3, -0x81, x5, 1*XLEN/8, x8) + +inst_15: +// rs1==x0, rs2==x24, rd==x25, rs2_val == -257, +// opcode: mop.rr.2 ; op1:x0; op2:x24; dest:x25; op1val:0x0; op2val:-0x101 +TEST_RR_OP(mop.rr.2, x25, x0, x24, 0, 0x0, -0x101, x5, 2*XLEN/8, x8) + +inst_16: +// rs1==x11, rs2==x15, rd==x4, rs2_val == -513, +// opcode: mop.rr.2 ; op1:x11; op2:x15; dest:x4; op1val:0x0; op2val:-0x201 +TEST_RR_OP(mop.rr.2, x4, x11, x15, 0, 0x0, -0x201, x5, 3*XLEN/8, x8) + +inst_17: +// rs1==x18, rs2==x0, rd==x10, rs2_val == -1025, +// opcode: mop.rr.2 ; op1:x18; op2:x0; dest:x10; op1val:0x7; op2val:0x0 +TEST_RR_OP(mop.rr.2, x10, x18, x0, 0, 0x7, 0x0, x5, 4*XLEN/8, x8) + +inst_18: +// rs1==x29, rs2==x26, rd==x2, rs2_val == -2049, rs1_val == 262144 +// opcode: mop.rr.2 ; op1:x29; op2:x26; dest:x2; op1val:0x40000; op2val:-0x801 +TEST_RR_OP(mop.rr.2, x2, x29, x26, 0, 0x40000, -0x801, x5, 5*XLEN/8, x8) + +inst_19: +// rs1==x15, rs2==x12, rd==x29, rs2_val == -4097, rs1_val == -4097 +// opcode: mop.rr.2 ; op1:x15; op2:x12; dest:x29; op1val:-0x1001; op2val:-0x1001 +TEST_RR_OP(mop.rr.2, x29, x15, x12, 0, -0x1001, -0x1001, x5, 6*XLEN/8, x8) + +inst_20: +// rs1==x16, rs2==x10, rd==x18, rs2_val == -8193, +// opcode: mop.rr.2 ; op1:x16; op2:x10; dest:x18; op1val:0x3; op2val:-0x2001 +TEST_RR_OP(mop.rr.2, x18, x16, x10, 0, 0x3, -0x2001, x5, 7*XLEN/8, x8) + +inst_21: +// rs1==x23, rs2==x11, rd==x1, rs2_val == -16385, +// opcode: mop.rr.2 ; op1:x23; op2:x11; dest:x1; op1val:-0xb504; op2val:-0x4001 +TEST_RR_OP(mop.rr.2, x1, x23, x11, 0, -0xb504, -0x4001, x5, 8*XLEN/8, x8) + +inst_22: +// rs1==x25, rs2==x6, rd==x0, rs2_val == -32769, +// opcode: mop.rr.2 ; op1:x25; op2:x6; dest:x0; op1val:-0xa; op2val:-0x8001 +TEST_RR_OP(mop.rr.2, x0, x25, x6, 0, -0xa, -0x8001, x5, 9*XLEN/8, x8) + +inst_23: +// rs1==x14, rs2==x28, rd==x31, rs2_val == -65537, +// opcode: mop.rr.2 ; op1:x14; op2:x28; dest:x31; op1val:-0x20000001; op2val:-0x10001 +TEST_RR_OP(mop.rr.2, x31, x14, x28, 0, -0x20000001, -0x10001, x5, 10*XLEN/8, x8) + +inst_24: +// rs1==x30, rs2==x9, rd==x7, rs2_val == -262145, rs1_val == 1431655765 +// opcode: mop.rr.2 ; op1:x30; op2:x9; dest:x7; op1val:0x55555555; op2val:-0x40001 +TEST_RR_OP(mop.rr.2, x7, x30, x9, 0, 0x55555555, -0x40001, x5, 11*XLEN/8, x8) + +inst_25: +// rs1==x28, rs2==x31, rd==x15, rs2_val == -524289, +// opcode: mop.rr.2 ; op1:x28; op2:x31; dest:x15; op1val:0x3; op2val:-0x80001 +TEST_RR_OP(mop.rr.2, x15, x28, x31, 0, 0x3, -0x80001, x5, 12*XLEN/8, x4) + +inst_26: +// rs1==x21, rs2==x7, rd==x22, rs2_val == -1048577, rs1_val == -4194305 +// opcode: mop.rr.2 ; op1:x21; op2:x7; dest:x22; op1val:-0x400001; op2val:-0x100001 +TEST_RR_OP(mop.rr.2, x22, x21, x7, 0, -0x400001, -0x100001, x5, 13*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_27: +// rs1==x27, rs2==x23, rd==x6, rs2_val == -2097153, rs1_val == 512 +// opcode: mop.rr.2 ; op1:x27; op2:x23; dest:x6; op1val:0x200; op2val:-0x200001 +TEST_RR_OP(mop.rr.2, x6, x27, x23, 0, 0x200, -0x200001, x1, 0*XLEN/8, x4) + +inst_28: +// rs1==x6, rs2==x5, rd==x27, rs2_val == -4194305, +// opcode: mop.rr.2 ; op1:x6; op2:x5; dest:x27; op1val:-0x55555556; op2val:-0x400001 +TEST_RR_OP(mop.rr.2, x27, x6, x5, 0, -0x55555556, -0x400001, x1, 1*XLEN/8, x4) + +inst_29: +// rs1==x3, rs2==x2, rd==x24, rs2_val == -8388609, +// opcode: mop.rr.2 ; op1:x3; op2:x2; dest:x24; op1val:0xb503; op2val:-0x800001 +TEST_RR_OP(mop.rr.2, x24, x3, x2, 0, 0xb503, -0x800001, x1, 2*XLEN/8, x4) + +inst_30: +// rs1==x7, rs2==x21, rd==x30, rs2_val == -16777217, rs1_val == 4 +// opcode: mop.rr.2 ; op1:x7; op2:x21; dest:x30; op1val:0x4; op2val:-0x1000001 +TEST_RR_OP(mop.rr.2, x30, x7, x21, 0, 0x4, -0x1000001, x1, 3*XLEN/8, x4) + +inst_31: +// rs1==x10, rs2==x29, rd==x26, rs2_val == -33554433, +// opcode: mop.rr.2 ; op1:x10; op2:x29; dest:x26; op1val:-0xb504; op2val:-0x2000001 +TEST_RR_OP(mop.rr.2, x26, x10, x29, 0, -0xb504, -0x2000001, x1, 4*XLEN/8, x4) + +inst_32: +// rs2_val == -134217729, rs1_val == -1025 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x8000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x401, -0x8000001, x1, 5*XLEN/8, x4) + +inst_33: +// rs2_val == -268435457, rs1_val == 4096 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1000, -0x10000001, x1, 6*XLEN/8, x4) + +inst_34: +// rs2_val == -536870913, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x20000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, -0x20000001, x1, 7*XLEN/8, x4) + +inst_35: +// rs2_val == -1073741825, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1001, -0x40000001, x1, 8*XLEN/8, x4) + +inst_36: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x7fffffff +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x7fffffff, x1, 9*XLEN/8, x4) + +inst_37: +// rs1_val == -2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:0x7 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2, 0x7, x1, 10*XLEN/8, x4) + +inst_38: +// rs1_val == -3, rs2_val == 65536 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x10000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x3, 0x10000, x1, 11*XLEN/8, x4) + +inst_39: +// rs1_val == -5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x41 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5, -0x41, x1, 12*XLEN/8, x4) + +inst_40: +// rs1_val == -9, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x9, 0xb503, x1, 13*XLEN/8, x4) + +inst_41: +// rs1_val == -17, rs2_val == 8 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x8 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x11, 0x8, x1, 14*XLEN/8, x4) + +inst_42: +// rs1_val == -33, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:-0x200001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x21, -0x200001, x1, 15*XLEN/8, x4) + +inst_43: +// rs1_val == -65, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:-0x4000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x41, -0x4000001, x1, 16*XLEN/8, x4) + +inst_44: +// rs1_val == -129, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x20000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x81, -0x20000001, x1, 17*XLEN/8, x4) + +inst_45: +// rs1_val == -257, rs2_val == 134217728 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x8000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x101, 0x8000000, x1, 18*XLEN/8, x4) + +inst_46: +// rs1_val == -2049, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x801, 0xb503, x1, 19*XLEN/8, x4) + +inst_47: +// rs1_val == -8193, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2001, 0x33333333, x1, 20*XLEN/8, x4) + +inst_48: +// rs1_val == -16385, rs2_val == 1073741824 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x40000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4001, 0x40000000, x1, 21*XLEN/8, x4) + +inst_49: +// rs1_val == -65537, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x10001, 0xb503, x1, 22*XLEN/8, x4) + +inst_50: +// rs1_val == -262145, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40001, 0x66666666, x1, 23*XLEN/8, x4) + +inst_51: +// rs1_val == -524289, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x7 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x80001, 0x7, x1, 24*XLEN/8, x4) + +inst_52: +// rs1_val == -1048577, rs2_val == 536870912 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x20000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100001, 0x20000000, x1, 25*XLEN/8, x4) + +inst_53: +// rs1_val == -2097153, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x200001, 0x4, x1, 26*XLEN/8, x4) + +inst_54: +// rs1_val == -8388609, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x8001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x800001, -0x8001, x1, 27*XLEN/8, x4) + +inst_55: +// rs1_val == -16777217, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x4000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000001, -0x4000001, x1, 28*XLEN/8, x4) + +inst_56: +// rs1_val == -33554433, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x2001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2000001, -0x2001, x1, 29*XLEN/8, x4) + +inst_57: +// rs1_val == -67108865, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:-0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000001, -0x4, x1, 30*XLEN/8, x4) + +inst_58: +// rs1_val == -134217729, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8000001, -0x20001, x1, 31*XLEN/8, x4) + +inst_59: +// rs1_val == -268435457, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x10000001, -0xb503, x1, 32*XLEN/8, x4) + +inst_60: +// rs1_val == -1073741825, rs2_val == 16777216 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x1000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40000001, 0x1000000, x1, 33*XLEN/8, x4) + +inst_61: +// rs2_val == 1, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x1 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x1, x1, 34*XLEN/8, x4) + +inst_62: +// rs2_val == 2, rs1_val == 32 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20, 0x2, x1, 35*XLEN/8, x4) + +inst_63: +// rs2_val == 16, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x10 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x10, x1, 36*XLEN/8, x4) + +inst_64: +// rs2_val == 32, rs1_val == 33554432 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x20 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000000, 0x20, x1, 37*XLEN/8, x4) + +inst_65: +// rs2_val == 64, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x6; op2val:0x40 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x6, 0x40, x1, 38*XLEN/8, x4) + +inst_66: +// rs2_val == 128, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x80 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x80, x1, 39*XLEN/8, x4) + +inst_67: +// rs2_val == 256, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x100 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xa, 0x100, x1, 40*XLEN/8, x4) + +inst_68: +// rs2_val == 512, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x200 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x101, 0x200, x1, 41*XLEN/8, x4) + +inst_69: +// rs2_val == 1024, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x400 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x400, x1, 42*XLEN/8, x4) + +inst_70: +// rs2_val == 2048, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x800 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200, 0x800, x1, 43*XLEN/8, x4) + +inst_71: +// rs2_val == 4096, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x1000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x1000, x1, 44*XLEN/8, x4) + +inst_72: +// rs2_val == 8192, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x2000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xa, 0x2000, x1, 45*XLEN/8, x4) + +inst_73: +// rs2_val == 16384, rs1_val == 4194304 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:0x4000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400000, 0x4000, x1, 46*XLEN/8, x4) + +inst_74: +// rs2_val == 32768, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x8000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x21, 0x8000, x1, 47*XLEN/8, x4) + +inst_75: +// rs2_val == 131072, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x20000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x201, 0x20000, x1, 48*XLEN/8, x4) + +inst_76: +// rs2_val == 262144, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x40000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x40000, x1, 49*XLEN/8, x4) + +inst_77: +// rs2_val == 524288, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x80000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5, 0x80000, x1, 50*XLEN/8, x4) + +inst_78: +// rs2_val == 1048576, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x100000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x100000, x1, 51*XLEN/8, x4) + +inst_79: +// rs2_val == 2097152, rs1_val == 65536 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x200000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10000, 0x200000, x1, 52*XLEN/8, x4) + +inst_80: +// rs2_val == 4194304, rs1_val == 256 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x400000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100, 0x400000, x1, 53*XLEN/8, x4) + +inst_81: +// rs2_val == 8388608, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x800000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40001, 0x800000, x1, 54*XLEN/8, x4) + +inst_82: +// rs2_val == 33554432, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x2000000, x1, 55*XLEN/8, x4) + +inst_83: +// rs2_val == 67108864, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:0x4000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40000000, 0x4000000, x1, 56*XLEN/8, x4) + +inst_84: +// rs2_val == 268435456, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40000000, 0x10000000, x1, 57*XLEN/8, x4) + +inst_85: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x80000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0x80000000, x1, 58*XLEN/8, x4) + +inst_86: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x3, x1, 59*XLEN/8, x4) + +inst_87: +// rs1_val == 2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x400001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0x400001, x1, 60*XLEN/8, x4) + +inst_88: +// rs1_val == 8, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:-0x20000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8, -0x20000001, x1, 61*XLEN/8, x4) + +inst_89: +// rs1_val == 16, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x400001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10, -0x400001, x1, 62*XLEN/8, x4) + +inst_90: +// rs1_val == 64, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x8 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40, 0x8, x1, 63*XLEN/8, x4) + +inst_91: +// rs1_val == 128, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x41 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80, -0x41, x1, 64*XLEN/8, x4) + +inst_92: +// rs1_val == 1024, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:-0x21 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400, -0x21, x1, 65*XLEN/8, x4) + +inst_93: +// rs1_val == 2048, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:-0x801 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x800, -0x801, x1, 66*XLEN/8, x4) + +inst_94: +// rs1_val == 8192, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000, 0x55555555, x1, 67*XLEN/8, x4) + +inst_95: +// rs1_val == 16384, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000, 0x55555554, x1, 68*XLEN/8, x4) + +inst_96: +// rs1_val == 32768, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8000, 0x4, x1, 69*XLEN/8, x4) + +inst_97: +// rs1_val == 131072, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x10000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000, 0x10000000, x1, 70*XLEN/8, x4) + +inst_98: +// rs1_val == 1048576, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:-0x81 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100000, -0x81, x1, 71*XLEN/8, x4) + +inst_99: +// rs1_val == 2097152, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x400000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200000, 0x400000, x1, 72*XLEN/8, x4) + +inst_100: +// rs1_val == 8388608, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x800000, 0x66666666, x1, 73*XLEN/8, x4) + +inst_101: +// rs1_val == 16777216, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:-0x40001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1000000, -0x40001, x1, 74*XLEN/8, x4) + +inst_102: +// rs1_val == 67108864, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000000, 0x2, x1, 75*XLEN/8, x4) + +inst_103: +// rs1_val == 134217728, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8000000, -0x3, x1, 76*XLEN/8, x4) + +inst_104: +// rs1_val == 268435456, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:-0x20001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10000000, -0x20001, x1, 77*XLEN/8, x4) + +inst_105: +// rs1_val == 536870912, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000000, 0x2, x1, 78*XLEN/8, x4) + +inst_106: +// rs1_val == 1073741824, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40000000, 0x10000000, x1, 79*XLEN/8, x4) + +inst_107: +// rs1_val==3 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x55555555, x1, 80*XLEN/8, x4) + +inst_108: +// rs1_val==3 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0x55555556, x1, 81*XLEN/8, x4) + +inst_109: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x5, x1, 82*XLEN/8, x4) + +inst_110: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x33333333, x1, 83*XLEN/8, x4) + +inst_111: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x66666666, x1, 84*XLEN/8, x4) + +inst_112: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0xb504, x1, 85*XLEN/8, x4) + +inst_113: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0xb504, x1, 86*XLEN/8, x4) + +inst_114: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x2, x1, 87*XLEN/8, x4) + +inst_115: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x55555554, x1, 88*XLEN/8, x4) + +inst_116: +// rs1_val==3 and rs2_val==0, rs2_val == 0 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x0, x1, 89*XLEN/8, x4) + +inst_117: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x4, x1, 90*XLEN/8, x4) + +inst_118: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x33333332, x1, 91*XLEN/8, x4) + +inst_119: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x66666665, x1, 92*XLEN/8, x4) + +inst_120: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0xb503, x1, 93*XLEN/8, x4) + +inst_121: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x55555556, x1, 94*XLEN/8, x4) + +inst_122: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0x55555555, x1, 95*XLEN/8, x4) + +inst_123: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x6, x1, 96*XLEN/8, x4) + +inst_124: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x33333334, x1, 97*XLEN/8, x4) + +inst_125: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x66666667, x1, 98*XLEN/8, x4) + +inst_126: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0xb503, x1, 99*XLEN/8, x4) + +inst_127: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0xb505, x1, 100*XLEN/8, x4) + +inst_128: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x3, x1, 101*XLEN/8, x4) + +inst_129: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x55555555, x1, 102*XLEN/8, x4) + +inst_130: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, -0x55555556, x1, 103*XLEN/8, x4) + +inst_131: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x5, x1, 104*XLEN/8, x4) + +inst_132: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x33333333, x1, 105*XLEN/8, x4) + +inst_133: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x66666666, x1, 106*XLEN/8, x4) + +inst_134: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, -0xb504, x1, 107*XLEN/8, x4) + +inst_135: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0xb504, x1, 108*XLEN/8, x4) + +inst_136: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x2, x1, 109*XLEN/8, x4) + +inst_137: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x55555554, x1, 110*XLEN/8, x4) + +inst_138: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x0, x1, 111*XLEN/8, x4) + +inst_139: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x4, x1, 112*XLEN/8, x4) + +inst_140: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x33333332, x1, 113*XLEN/8, x4) + +inst_141: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x66666665, x1, 114*XLEN/8, x4) + +inst_142: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0xb503, x1, 115*XLEN/8, x4) + +inst_143: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x55555556, x1, 116*XLEN/8, x4) + +inst_144: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, -0x55555555, x1, 117*XLEN/8, x4) + +inst_145: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x6, x1, 118*XLEN/8, x4) + +inst_146: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x33333334, x1, 119*XLEN/8, x4) + +inst_147: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0x66666667, x1, 120*XLEN/8, x4) + +inst_148: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, -0xb503, x1, 121*XLEN/8, x4) + +inst_149: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555555, 0xb505, x1, 122*XLEN/8, x4) + +inst_150: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x3, x1, 123*XLEN/8, x4) + +inst_151: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x55555555, x1, 124*XLEN/8, x4) + +inst_152: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, -0x55555556, x1, 125*XLEN/8, x4) + +inst_153: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x5, x1, 126*XLEN/8, x4) + +inst_154: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x33333333, x1, 127*XLEN/8, x4) + +inst_155: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x66666666, x1, 128*XLEN/8, x4) + +inst_156: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, -0xb504, x1, 129*XLEN/8, x4) + +inst_157: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0xb504, x1, 130*XLEN/8, x4) + +inst_158: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x2, x1, 131*XLEN/8, x4) + +inst_159: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x55555554, x1, 132*XLEN/8, x4) + +inst_160: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x0, x1, 133*XLEN/8, x4) + +inst_161: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x4, x1, 134*XLEN/8, x4) + +inst_162: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x33333332, x1, 135*XLEN/8, x4) + +inst_163: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x66666665, x1, 136*XLEN/8, x4) + +inst_164: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0xb503, x1, 137*XLEN/8, x4) + +inst_165: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x55555556, x1, 138*XLEN/8, x4) + +inst_166: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, -0x55555555, x1, 139*XLEN/8, x4) + +inst_167: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x6, x1, 140*XLEN/8, x4) + +inst_168: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x33333334, x1, 141*XLEN/8, x4) + +inst_169: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0x66666667, x1, 142*XLEN/8, x4) + +inst_170: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, -0xb503, x1, 143*XLEN/8, x4) + +inst_171: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555556, 0xb505, x1, 144*XLEN/8, x4) + +inst_172: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x3, x1, 145*XLEN/8, x4) + +inst_173: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x55555555, x1, 146*XLEN/8, x4) + +inst_174: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0x55555556, x1, 147*XLEN/8, x4) + +inst_175: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x5, x1, 148*XLEN/8, x4) + +inst_176: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x33333333, x1, 149*XLEN/8, x4) + +inst_177: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x66666666, x1, 150*XLEN/8, x4) + +inst_178: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0xb504, x1, 151*XLEN/8, x4) + +inst_179: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0xb504, x1, 152*XLEN/8, x4) + +inst_180: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x2, x1, 153*XLEN/8, x4) + +inst_181: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x55555554, x1, 154*XLEN/8, x4) + +inst_182: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x0, x1, 155*XLEN/8, x4) + +inst_183: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x4, x1, 156*XLEN/8, x4) + +inst_184: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x33333332, x1, 157*XLEN/8, x4) + +inst_185: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x66666665, x1, 158*XLEN/8, x4) + +inst_186: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0xb503, x1, 159*XLEN/8, x4) + +inst_187: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x55555556, x1, 160*XLEN/8, x4) + +inst_188: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0x55555555, x1, 161*XLEN/8, x4) + +inst_189: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x6, x1, 162*XLEN/8, x4) + +inst_190: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x33333334, x1, 163*XLEN/8, x4) + +inst_191: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x66666667, x1, 164*XLEN/8, x4) + +inst_192: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0xb503, x1, 165*XLEN/8, x4) + +inst_193: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0xb505, x1, 166*XLEN/8, x4) + +inst_194: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x3, x1, 167*XLEN/8, x4) + +inst_195: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x55555555, x1, 168*XLEN/8, x4) + +inst_196: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, -0x55555556, x1, 169*XLEN/8, x4) + +inst_197: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x5, x1, 170*XLEN/8, x4) + +inst_198: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x33333333, x1, 171*XLEN/8, x4) + +inst_199: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x66666666, x1, 172*XLEN/8, x4) + +inst_200: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, -0xb504, x1, 173*XLEN/8, x4) + +inst_201: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0xb504, x1, 174*XLEN/8, x4) + +inst_202: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x2, x1, 175*XLEN/8, x4) + +inst_203: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x55555554, x1, 176*XLEN/8, x4) + +inst_204: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x0, x1, 177*XLEN/8, x4) + +inst_205: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x4, x1, 178*XLEN/8, x4) + +inst_206: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x33333332, x1, 179*XLEN/8, x4) + +inst_207: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x66666665, x1, 180*XLEN/8, x4) + +inst_208: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0xb503, x1, 181*XLEN/8, x4) + +inst_209: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x55555556, x1, 182*XLEN/8, x4) + +inst_210: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, -0x55555555, x1, 183*XLEN/8, x4) + +inst_211: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x6, x1, 184*XLEN/8, x4) + +inst_212: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x33333334, x1, 185*XLEN/8, x4) + +inst_213: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0x66666667, x1, 186*XLEN/8, x4) + +inst_214: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, -0xb503, x1, 187*XLEN/8, x4) + +inst_215: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333333, 0xb505, x1, 188*XLEN/8, x4) + +inst_216: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x3, x1, 189*XLEN/8, x4) + +inst_217: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x55555555, x1, 190*XLEN/8, x4) + +inst_218: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, -0x55555556, x1, 191*XLEN/8, x4) + +inst_219: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x5, x1, 192*XLEN/8, x4) + +inst_220: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x33333333, x1, 193*XLEN/8, x4) + +inst_221: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x66666666, x1, 194*XLEN/8, x4) + +inst_222: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, -0xb504, x1, 195*XLEN/8, x4) + +inst_223: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0xb504, x1, 196*XLEN/8, x4) + +inst_224: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x2, x1, 197*XLEN/8, x4) + +inst_225: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x55555554, x1, 198*XLEN/8, x4) + +inst_226: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x0, x1, 199*XLEN/8, x4) + +inst_227: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x4, x1, 200*XLEN/8, x4) + +inst_228: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x33333332, x1, 201*XLEN/8, x4) + +inst_229: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x66666665, x1, 202*XLEN/8, x4) + +inst_230: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0xb503, x1, 203*XLEN/8, x4) + +inst_231: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x55555556, x1, 204*XLEN/8, x4) + +inst_232: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, -0x55555555, x1, 205*XLEN/8, x4) + +inst_233: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x6, x1, 206*XLEN/8, x4) + +inst_234: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x33333334, x1, 207*XLEN/8, x4) + +inst_235: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0x66666667, x1, 208*XLEN/8, x4) + +inst_236: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, -0xb503, x1, 209*XLEN/8, x4) + +inst_237: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666666, 0xb505, x1, 210*XLEN/8, x4) + +inst_238: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x3, x1, 211*XLEN/8, x4) + +inst_239: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x55555555, x1, 212*XLEN/8, x4) + +inst_240: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, -0x55555556, x1, 213*XLEN/8, x4) + +inst_241: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x5, x1, 214*XLEN/8, x4) + +inst_242: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x33333333, x1, 215*XLEN/8, x4) + +inst_243: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x66666666, x1, 216*XLEN/8, x4) + +inst_244: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, -0xb504, x1, 217*XLEN/8, x4) + +inst_245: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0xb504, x1, 218*XLEN/8, x4) + +inst_246: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x2, x1, 219*XLEN/8, x4) + +inst_247: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x55555554, x1, 220*XLEN/8, x4) + +inst_248: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x0, x1, 221*XLEN/8, x4) + +inst_249: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x4, x1, 222*XLEN/8, x4) + +inst_250: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x33333332, x1, 223*XLEN/8, x4) + +inst_251: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x66666665, x1, 224*XLEN/8, x4) + +inst_252: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0xb503, x1, 225*XLEN/8, x4) + +inst_253: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x55555556, x1, 226*XLEN/8, x4) + +inst_254: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, -0x55555555, x1, 227*XLEN/8, x4) + +inst_255: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x6, x1, 228*XLEN/8, x4) + +inst_256: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x33333334, x1, 229*XLEN/8, x4) + +inst_257: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0x66666667, x1, 230*XLEN/8, x4) + +inst_258: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, -0xb503, x1, 231*XLEN/8, x4) + +inst_259: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504, 0xb505, x1, 232*XLEN/8, x4) + +inst_260: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x3, x1, 233*XLEN/8, x4) + +inst_261: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x55555555, x1, 234*XLEN/8, x4) + +inst_262: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, -0x55555556, x1, 235*XLEN/8, x4) + +inst_263: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x5, x1, 236*XLEN/8, x4) + +inst_264: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x33333333, x1, 237*XLEN/8, x4) + +inst_265: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x66666666, x1, 238*XLEN/8, x4) + +inst_266: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, -0xb504, x1, 239*XLEN/8, x4) + +inst_267: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0xb504, x1, 240*XLEN/8, x4) + +inst_268: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x2, x1, 241*XLEN/8, x4) + +inst_269: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x55555554, x1, 242*XLEN/8, x4) + +inst_270: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x0, x1, 243*XLEN/8, x4) + +inst_271: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x4, x1, 244*XLEN/8, x4) + +inst_272: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x33333332, x1, 245*XLEN/8, x4) + +inst_273: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x66666665, x1, 246*XLEN/8, x4) + +inst_274: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0xb503, x1, 247*XLEN/8, x4) + +inst_275: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x55555556, x1, 248*XLEN/8, x4) + +inst_276: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, -0x55555555, x1, 249*XLEN/8, x4) + +inst_277: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x6, x1, 250*XLEN/8, x4) + +inst_278: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x33333334, x1, 251*XLEN/8, x4) + +inst_279: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0x66666667, x1, 252*XLEN/8, x4) + +inst_280: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, -0xb503, x1, 253*XLEN/8, x4) + +inst_281: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504, 0xb505, x1, 254*XLEN/8, x4) + +inst_282: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x3, x1, 255*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_283: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x55555555, x1, 0*XLEN/8, x4) + +inst_284: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0x55555556, x1, 1*XLEN/8, x4) + +inst_285: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x5, x1, 2*XLEN/8, x4) + +inst_286: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x33333333, x1, 3*XLEN/8, x4) + +inst_287: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x66666666, x1, 4*XLEN/8, x4) + +inst_288: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0xb504, x1, 5*XLEN/8, x4) + +inst_289: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0xb504, x1, 6*XLEN/8, x4) + +inst_290: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x2, x1, 7*XLEN/8, x4) + +inst_291: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x55555554, x1, 8*XLEN/8, x4) + +inst_292: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x0, x1, 9*XLEN/8, x4) + +inst_293: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x4, x1, 10*XLEN/8, x4) + +inst_294: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x33333332, x1, 11*XLEN/8, x4) + +inst_295: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x66666665, x1, 12*XLEN/8, x4) + +inst_296: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0xb503, x1, 13*XLEN/8, x4) + +inst_297: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x55555556, x1, 14*XLEN/8, x4) + +inst_298: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0x55555555, x1, 15*XLEN/8, x4) + +inst_299: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x6, x1, 16*XLEN/8, x4) + +inst_300: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x33333334, x1, 17*XLEN/8, x4) + +inst_301: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x66666667, x1, 18*XLEN/8, x4) + +inst_302: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0xb503, x1, 19*XLEN/8, x4) + +inst_303: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0xb505, x1, 20*XLEN/8, x4) + +inst_304: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x3, x1, 21*XLEN/8, x4) + +inst_305: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x55555555, x1, 22*XLEN/8, x4) + +inst_306: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, -0x55555556, x1, 23*XLEN/8, x4) + +inst_307: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x5, x1, 24*XLEN/8, x4) + +inst_308: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x33333333, x1, 25*XLEN/8, x4) + +inst_309: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x66666666, x1, 26*XLEN/8, x4) + +inst_310: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, -0xb504, x1, 27*XLEN/8, x4) + +inst_311: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0xb504, x1, 28*XLEN/8, x4) + +inst_312: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x2, x1, 29*XLEN/8, x4) + +inst_313: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x55555554, x1, 30*XLEN/8, x4) + +inst_314: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x0, x1, 31*XLEN/8, x4) + +inst_315: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x4, x1, 32*XLEN/8, x4) + +inst_316: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x33333332, x1, 33*XLEN/8, x4) + +inst_317: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x66666665, x1, 34*XLEN/8, x4) + +inst_318: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0xb503, x1, 35*XLEN/8, x4) + +inst_319: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x55555556, x1, 36*XLEN/8, x4) + +inst_320: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, -0x55555555, x1, 37*XLEN/8, x4) + +inst_321: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x6, x1, 38*XLEN/8, x4) + +inst_322: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x33333334, x1, 39*XLEN/8, x4) + +inst_323: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0x66666667, x1, 40*XLEN/8, x4) + +inst_324: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, -0xb503, x1, 41*XLEN/8, x4) + +inst_325: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555554, 0xb505, x1, 42*XLEN/8, x4) + +inst_326: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x3, x1, 43*XLEN/8, x4) + +inst_327: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x55555555, x1, 44*XLEN/8, x4) + +inst_328: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x55555556, x1, 45*XLEN/8, x4) + +inst_329: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x5, x1, 46*XLEN/8, x4) + +inst_330: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x33333333, x1, 47*XLEN/8, x4) + +inst_331: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x66666666, x1, 48*XLEN/8, x4) + +inst_332: +// rs1_val==0 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0xb504, x1, 49*XLEN/8, x4) + +inst_333: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0xb504, x1, 50*XLEN/8, x4) + +inst_334: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, -0x55555555, x1, 51*XLEN/8, x4) + +inst_335: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x6, x1, 52*XLEN/8, x4) + +inst_336: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x33333334, x1, 53*XLEN/8, x4) + +inst_337: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x66666667, x1, 54*XLEN/8, x4) + +inst_338: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, -0xb503, x1, 55*XLEN/8, x4) + +inst_339: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0xb505, x1, 56*XLEN/8, x4) + +inst_340: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x3, x1, 57*XLEN/8, x4) + +inst_341: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x55555555, x1, 58*XLEN/8, x4) + +inst_342: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0x55555556, x1, 59*XLEN/8, x4) + +inst_343: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x5, x1, 60*XLEN/8, x4) + +inst_344: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x33333333, x1, 61*XLEN/8, x4) + +inst_345: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x66666666, x1, 62*XLEN/8, x4) + +inst_346: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0xb504, x1, 63*XLEN/8, x4) + +inst_347: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0xb504, x1, 64*XLEN/8, x4) + +inst_348: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x2, x1, 65*XLEN/8, x4) + +inst_349: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x55555554, x1, 66*XLEN/8, x4) + +inst_350: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x0, x1, 67*XLEN/8, x4) + +inst_351: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x4, x1, 68*XLEN/8, x4) + +inst_352: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x33333332, x1, 69*XLEN/8, x4) + +inst_353: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x66666665, x1, 70*XLEN/8, x4) + +inst_354: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0xb503, x1, 71*XLEN/8, x4) + +inst_355: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x55555556, x1, 72*XLEN/8, x4) + +inst_356: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0x55555555, x1, 73*XLEN/8, x4) + +inst_357: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x6, x1, 74*XLEN/8, x4) + +inst_358: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x33333334, x1, 75*XLEN/8, x4) + +inst_359: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x66666667, x1, 76*XLEN/8, x4) + +inst_360: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0xb503, x1, 77*XLEN/8, x4) + +inst_361: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0xb505, x1, 78*XLEN/8, x4) + +inst_362: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x3, x1, 79*XLEN/8, x4) + +inst_363: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x55555555, x1, 80*XLEN/8, x4) + +inst_364: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, -0x55555556, x1, 81*XLEN/8, x4) + +inst_365: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x5, x1, 82*XLEN/8, x4) + +inst_366: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x33333333, x1, 83*XLEN/8, x4) + +inst_367: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x66666666, x1, 84*XLEN/8, x4) + +inst_368: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, -0xb504, x1, 85*XLEN/8, x4) + +inst_369: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0xb504, x1, 86*XLEN/8, x4) + +inst_370: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x2, x1, 87*XLEN/8, x4) + +inst_371: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x55555554, x1, 88*XLEN/8, x4) + +inst_372: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x0, x1, 89*XLEN/8, x4) + +inst_373: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x4, x1, 90*XLEN/8, x4) + +inst_374: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x33333332, x1, 91*XLEN/8, x4) + +inst_375: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x66666665, x1, 92*XLEN/8, x4) + +inst_376: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0xb503, x1, 93*XLEN/8, x4) + +inst_377: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x55555556, x1, 94*XLEN/8, x4) + +inst_378: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, -0x55555555, x1, 95*XLEN/8, x4) + +inst_379: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x6, x1, 96*XLEN/8, x4) + +inst_380: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x33333334, x1, 97*XLEN/8, x4) + +inst_381: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0x66666667, x1, 98*XLEN/8, x4) + +inst_382: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, -0xb503, x1, 99*XLEN/8, x4) + +inst_383: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, 0xb505, x1, 100*XLEN/8, x4) + +inst_384: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x3, x1, 101*XLEN/8, x4) + +inst_385: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x55555555, x1, 102*XLEN/8, x4) + +inst_386: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, -0x55555556, x1, 103*XLEN/8, x4) + +inst_387: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x5, x1, 104*XLEN/8, x4) + +inst_388: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x33333333, x1, 105*XLEN/8, x4) + +inst_389: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x66666666, x1, 106*XLEN/8, x4) + +inst_390: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, -0xb504, x1, 107*XLEN/8, x4) + +inst_391: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0xb504, x1, 108*XLEN/8, x4) + +inst_392: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x2, x1, 109*XLEN/8, x4) + +inst_393: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x55555554, x1, 110*XLEN/8, x4) + +inst_394: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x0, x1, 111*XLEN/8, x4) + +inst_395: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x4, x1, 112*XLEN/8, x4) + +inst_396: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x33333332, x1, 113*XLEN/8, x4) + +inst_397: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x66666665, x1, 114*XLEN/8, x4) + +inst_398: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0xb503, x1, 115*XLEN/8, x4) + +inst_399: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x55555556, x1, 116*XLEN/8, x4) + +inst_400: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, -0x55555555, x1, 117*XLEN/8, x4) + +inst_401: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x6, x1, 118*XLEN/8, x4) + +inst_402: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x33333334, x1, 119*XLEN/8, x4) + +inst_403: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0x66666667, x1, 120*XLEN/8, x4) + +inst_404: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, -0xb503, x1, 121*XLEN/8, x4) + +inst_405: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666667, 0xb505, x1, 122*XLEN/8, x4) + +inst_406: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x3, x1, 123*XLEN/8, x4) + +inst_407: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x55555555, x1, 124*XLEN/8, x4) + +inst_408: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, -0x55555556, x1, 125*XLEN/8, x4) + +inst_409: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x5, x1, 126*XLEN/8, x4) + +inst_410: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x33333333, x1, 127*XLEN/8, x4) + +inst_411: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x66666666, x1, 128*XLEN/8, x4) + +inst_412: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, -0xb504, x1, 129*XLEN/8, x4) + +inst_413: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0xb504, x1, 130*XLEN/8, x4) + +inst_414: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x2, x1, 131*XLEN/8, x4) + +inst_415: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x55555554, x1, 132*XLEN/8, x4) + +inst_416: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x0, x1, 133*XLEN/8, x4) + +inst_417: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x4, x1, 134*XLEN/8, x4) + +inst_418: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x33333332, x1, 135*XLEN/8, x4) + +inst_419: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x66666665, x1, 136*XLEN/8, x4) + +inst_420: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0xb503, x1, 137*XLEN/8, x4) + +inst_421: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x55555556, x1, 138*XLEN/8, x4) + +inst_422: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, -0x55555555, x1, 139*XLEN/8, x4) + +inst_423: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x6, x1, 140*XLEN/8, x4) + +inst_424: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x33333334, x1, 141*XLEN/8, x4) + +inst_425: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0x66666667, x1, 142*XLEN/8, x4) + +inst_426: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, -0xb503, x1, 143*XLEN/8, x4) + +inst_427: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb503, 0xb505, x1, 144*XLEN/8, x4) + +inst_428: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x3, x1, 145*XLEN/8, x4) + +inst_429: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x55555555, x1, 146*XLEN/8, x4) + +inst_430: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, -0x55555556, x1, 147*XLEN/8, x4) + +inst_431: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x5, x1, 148*XLEN/8, x4) + +inst_432: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x33333333, x1, 149*XLEN/8, x4) + +inst_433: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x66666666, x1, 150*XLEN/8, x4) + +inst_434: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, -0xb504, x1, 151*XLEN/8, x4) + +inst_435: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0xb504, x1, 152*XLEN/8, x4) + +inst_436: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x2, x1, 153*XLEN/8, x4) + +inst_437: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x55555554, x1, 154*XLEN/8, x4) + +inst_438: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x0, x1, 155*XLEN/8, x4) + +inst_439: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x4, x1, 156*XLEN/8, x4) + +inst_440: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x33333332, x1, 157*XLEN/8, x4) + +inst_441: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x66666665, x1, 158*XLEN/8, x4) + +inst_442: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0xb503, x1, 159*XLEN/8, x4) + +inst_443: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x55555556, x1, 160*XLEN/8, x4) + +inst_444: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, -0x55555555, x1, 161*XLEN/8, x4) + +inst_445: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x6, x1, 162*XLEN/8, x4) + +inst_446: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x33333334, x1, 163*XLEN/8, x4) + +inst_447: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0x66666667, x1, 164*XLEN/8, x4) + +inst_448: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, -0xb503, x1, 165*XLEN/8, x4) + +inst_449: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb505, 0xb505, x1, 166*XLEN/8, x4) + +inst_450: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x2, x1, 167*XLEN/8, x4) + +inst_451: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x55555554, x1, 168*XLEN/8, x4) + +inst_452: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x0, x1, 169*XLEN/8, x4) + +inst_453: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x33333332, x1, 170*XLEN/8, x4) + +inst_454: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x66666665, x1, 171*XLEN/8, x4) + +inst_455: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0xb503, x1, 172*XLEN/8, x4) + +inst_456: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x55555556, x1, 173*XLEN/8, x4) + +inst_457: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x55555555, x1, 174*XLEN/8, x4) + +inst_458: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x6, x1, 175*XLEN/8, x4) + +inst_459: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x33333334, x1, 176*XLEN/8, x4) + +inst_460: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x66666667, x1, 177*XLEN/8, x4) + +inst_461: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0xb503, x1, 178*XLEN/8, x4) + +inst_462: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0xb505, x1, 179*XLEN/8, x4) + +inst_463: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x3, x1, 180*XLEN/8, x4) + +inst_464: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x55555555, x1, 181*XLEN/8, x4) + +inst_465: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0x55555556, x1, 182*XLEN/8, x4) + +inst_466: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x5, x1, 183*XLEN/8, x4) + +inst_467: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x33333333, x1, 184*XLEN/8, x4) + +inst_468: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x66666666, x1, 185*XLEN/8, x4) + +inst_469: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0xb504, x1, 186*XLEN/8, x4) + +inst_470: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0xb504, x1, 187*XLEN/8, x4) + +inst_471: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x2, x1, 188*XLEN/8, x4) + +inst_472: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x55555554, x1, 189*XLEN/8, x4) + +inst_473: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x0, x1, 190*XLEN/8, x4) + +inst_474: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x4, x1, 191*XLEN/8, x4) + +inst_475: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x33333332, x1, 192*XLEN/8, x4) + +inst_476: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x66666665, x1, 193*XLEN/8, x4) + +inst_477: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0xb503, x1, 194*XLEN/8, x4) + +inst_478: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x55555556, x1, 195*XLEN/8, x4) + +inst_479: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0x55555555, x1, 196*XLEN/8, x4) + +inst_480: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x6, x1, 197*XLEN/8, x4) + +inst_481: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x33333334, x1, 198*XLEN/8, x4) + +inst_482: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x66666667, x1, 199*XLEN/8, x4) + +inst_483: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0xb503, x1, 200*XLEN/8, x4) + +inst_484: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0xb505, x1, 201*XLEN/8, x4) + +inst_485: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x3, x1, 202*XLEN/8, x4) + +inst_486: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x55555555, x1, 203*XLEN/8, x4) + +inst_487: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, -0x55555556, x1, 204*XLEN/8, x4) + +inst_488: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x5, x1, 205*XLEN/8, x4) + +inst_489: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x33333333, x1, 206*XLEN/8, x4) + +inst_490: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x66666666, x1, 207*XLEN/8, x4) + +inst_491: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, -0xb504, x1, 208*XLEN/8, x4) + +inst_492: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0xb504, x1, 209*XLEN/8, x4) + +inst_493: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x2, x1, 210*XLEN/8, x4) + +inst_494: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x55555554, x1, 211*XLEN/8, x4) + +inst_495: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x0, x1, 212*XLEN/8, x4) + +inst_496: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x4, x1, 213*XLEN/8, x4) + +inst_497: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x33333332, x1, 214*XLEN/8, x4) + +inst_498: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x66666665, x1, 215*XLEN/8, x4) + +inst_499: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0xb503, x1, 216*XLEN/8, x4) + +inst_500: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x55555556, x1, 217*XLEN/8, x4) + +inst_501: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, -0x55555555, x1, 218*XLEN/8, x4) + +inst_502: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x6, x1, 219*XLEN/8, x4) + +inst_503: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x33333334, x1, 220*XLEN/8, x4) + +inst_504: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0x66666667, x1, 221*XLEN/8, x4) + +inst_505: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, -0xb503, x1, 222*XLEN/8, x4) + +inst_506: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333332, 0xb505, x1, 223*XLEN/8, x4) + +inst_507: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x3, x1, 224*XLEN/8, x4) + +inst_508: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x55555555, x1, 225*XLEN/8, x4) + +inst_509: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, -0x55555556, x1, 226*XLEN/8, x4) + +inst_510: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x5, x1, 227*XLEN/8, x4) + +inst_511: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x33333333, x1, 228*XLEN/8, x4) + +inst_512: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x66666666, x1, 229*XLEN/8, x4) + +inst_513: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, -0xb504, x1, 230*XLEN/8, x4) + +inst_514: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0xb504, x1, 231*XLEN/8, x4) + +inst_515: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x2, x1, 232*XLEN/8, x4) + +inst_516: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x55555554, x1, 233*XLEN/8, x4) + +inst_517: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x0, x1, 234*XLEN/8, x4) + +inst_518: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x4, x1, 235*XLEN/8, x4) + +inst_519: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x33333332, x1, 236*XLEN/8, x4) + +inst_520: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x66666665, x1, 237*XLEN/8, x4) + +inst_521: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0xb503, x1, 238*XLEN/8, x4) + +inst_522: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x55555556, x1, 239*XLEN/8, x4) + +inst_523: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, -0x55555555, x1, 240*XLEN/8, x4) + +inst_524: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x6, x1, 241*XLEN/8, x4) + +inst_525: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x33333334, x1, 242*XLEN/8, x4) + +inst_526: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0x66666667, x1, 243*XLEN/8, x4) + +inst_527: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, -0xb503, x1, 244*XLEN/8, x4) + +inst_528: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x66666665, 0xb505, x1, 245*XLEN/8, x4) + +inst_529: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x3, x1, 246*XLEN/8, x4) + +inst_530: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x55555555, x1, 247*XLEN/8, x4) + +inst_531: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, -0x55555556, x1, 248*XLEN/8, x4) + +inst_532: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x5, x1, 249*XLEN/8, x4) + +inst_533: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x33333333, x1, 250*XLEN/8, x4) + +inst_534: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x66666666, x1, 251*XLEN/8, x4) + +inst_535: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, -0xb504, x1, 252*XLEN/8, x4) + +inst_536: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0xb504, x1, 253*XLEN/8, x4) + +inst_537: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x2, x1, 254*XLEN/8, x4) + +inst_538: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x55555554, x1, 255*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_539: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x0, x1, 0*XLEN/8, x4) + +inst_540: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x4, x1, 1*XLEN/8, x4) + +inst_541: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x33333332, x1, 2*XLEN/8, x4) + +inst_542: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x66666665, x1, 3*XLEN/8, x4) + +inst_543: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0xb503, x1, 4*XLEN/8, x4) + +inst_544: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x55555556, x1, 5*XLEN/8, x4) + +inst_545: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, -0x55555555, x1, 6*XLEN/8, x4) + +inst_546: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x6, x1, 7*XLEN/8, x4) + +inst_547: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x33333334, x1, 8*XLEN/8, x4) + +inst_548: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0x66666667, x1, 9*XLEN/8, x4) + +inst_549: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, -0xb503, x1, 10*XLEN/8, x4) + +inst_550: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb503, 0xb505, x1, 11*XLEN/8, x4) + +inst_551: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x3, x1, 12*XLEN/8, x4) + +inst_552: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x55555555, x1, 13*XLEN/8, x4) + +inst_553: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, -0x55555556, x1, 14*XLEN/8, x4) + +inst_554: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x5, x1, 15*XLEN/8, x4) + +inst_555: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x33333333, x1, 16*XLEN/8, x4) + +inst_556: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x66666666, x1, 17*XLEN/8, x4) + +inst_557: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, -0xb504, x1, 18*XLEN/8, x4) + +inst_558: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0xb504, x1, 19*XLEN/8, x4) + +inst_559: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x2, x1, 20*XLEN/8, x4) + +inst_560: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x55555554, x1, 21*XLEN/8, x4) + +inst_561: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x0, x1, 22*XLEN/8, x4) + +inst_562: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x4, x1, 23*XLEN/8, x4) + +inst_563: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x33333332, x1, 24*XLEN/8, x4) + +inst_564: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x66666665, x1, 25*XLEN/8, x4) + +inst_565: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0xb503, x1, 26*XLEN/8, x4) + +inst_566: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x55555556, x1, 27*XLEN/8, x4) + +inst_567: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, -0x55555555, x1, 28*XLEN/8, x4) + +inst_568: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x6, x1, 29*XLEN/8, x4) + +inst_569: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x33333334, x1, 30*XLEN/8, x4) + +inst_570: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0x66666667, x1, 31*XLEN/8, x4) + +inst_571: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, -0xb503, x1, 32*XLEN/8, x4) + +inst_572: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x55555556, 0xb505, x1, 33*XLEN/8, x4) + +inst_573: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x3, x1, 34*XLEN/8, x4) + +inst_574: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x55555555, x1, 35*XLEN/8, x4) + +inst_575: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, -0x55555556, x1, 36*XLEN/8, x4) + +inst_576: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x5, x1, 37*XLEN/8, x4) + +inst_577: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x33333333, x1, 38*XLEN/8, x4) + +inst_578: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x66666666, x1, 39*XLEN/8, x4) + +inst_579: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, -0xb504, x1, 40*XLEN/8, x4) + +inst_580: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0xb504, x1, 41*XLEN/8, x4) + +inst_581: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x2, x1, 42*XLEN/8, x4) + +inst_582: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x55555554, x1, 43*XLEN/8, x4) + +inst_583: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x0, x1, 44*XLEN/8, x4) + +inst_584: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x4, x1, 45*XLEN/8, x4) + +inst_585: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x33333332, x1, 46*XLEN/8, x4) + +inst_586: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x66666665, x1, 47*XLEN/8, x4) + +inst_587: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0xb503, x1, 48*XLEN/8, x4) + +inst_588: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x55555555, 0x55555556, x1, 49*XLEN/8, x4) + +inst_589: +// rs1_val < 0 and rs2_val < 0, rs2_val == -131073, rs1_val == -131073, rs1_val == rs2_val +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x20001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20001, -0x20001, x1, 50*XLEN/8, x4) + +inst_590: +// rs2_val == -257, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x101 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x33333334, -0x101, x1, 51*XLEN/8, x4) + +inst_591: +// rs2_val == -1025, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:-0x401 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x7, -0x401, x1, 52*XLEN/8, x4) +#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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 13*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_0: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 53*((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/Zimop/src/mop.rr.3-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.3-01.S new file mode 100644 index 000000000..9df2f85de --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.3-01.S @@ -0,0 +1,3077 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.3 instruction of the RISC-V RV32Zimop extension for the mop.rr.3 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.3) + +RVTEST_SIGBASE(x4,signature_x4_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x2, rs2==x2, rd==x2, rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0, rs2_val == -2097153 +// opcode: mop.rr.3 ; op1:x2; op2:x2; dest:x2; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x2, x2, x2, 0, 0xb503, 0xb503, x4, 0*XLEN/8, x7) + +inst_1: +// rs1 == rs2 != rd, rs1==x13, rs2==x13, rd==x29, rs1_val < 0 and rs2_val < 0, rs1_val == rs2_val, rs1_val == -16777217, rs2_val == -16777217 +// opcode: mop.rr.3 ; op1:x13; op2:x13; dest:x29; op1val:-0x1000001; op2val:-0x1000001 +TEST_RR_OP(mop.rr.3, x29, x13, x13, 0, -0x1000001, -0x1000001, x4, 1*XLEN/8, x7) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x22, rs2==x12, rd==x11, rs1_val < 0 and rs2_val > 0, rs1_val == -3, rs2_val == 8192 +// opcode: mop.rr.3 ; op1:x22; op2:x12; dest:x11; op1val:-0x3; op2val:0x2000 +TEST_RR_OP(mop.rr.3, x11, x22, x12, 0, -0x3, 0x2000, x4, 2*XLEN/8, x7) + +inst_3: +// rs2 == rd != rs1, rs1==x10, rs2==x20, rd==x20, rs1_val == (-2**(xlen-1)), rs2_val == 4194304, rs1_val == -2147483648 +// opcode: mop.rr.3 ; op1:x10; op2:x20; dest:x20; op1val:-0x80000000; op2val:0x400000 +TEST_RR_OP(mop.rr.3, x20, x10, x20, 0, -0x80000000, 0x400000, x4, 3*XLEN/8, x7) + +inst_4: +// rs1 == rd != rs2, rs1==x8, rs2==x1, rd==x8, rs1_val == (2**(xlen-1)-1), rs2_val == -1431655766, rs1_val == 2147483647 +// opcode: mop.rr.3 ; op1:x8; op2:x1; dest:x8; op1val:0x7fffffff; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x8, x8, x1, 0, 0x7fffffff, -0x55555556, x4, 4*XLEN/8, x7) + +inst_5: +// rs1==x1, rs2==x3, rd==x13, rs1_val == 0, rs1_val==0 and rs2_val==-46340 +// opcode: mop.rr.3 ; op1:x1; op2:x3; dest:x13; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x13, x1, x3, 0, 0x0, -0xb504, x4, 5*XLEN/8, x7) + +inst_6: +// rs1==x12, rs2==x17, rd==x31, rs1_val == 1, rs1_val > 0 and rs2_val > 0 +// opcode: mop.rr.3 ; op1:x12; op2:x17; dest:x31; op1val:0x1; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x12, x17, 0, 0x1, 0xb504, x4, 6*XLEN/8, x7) + +inst_7: +// rs1==x0, rs2==x25, rd==x9, rs2_val == -2, rs1_val == 4 +// opcode: mop.rr.3 ; op1:x0; op2:x25; dest:x9; op1val:0x0; op2val:-0x2 +TEST_RR_OP(mop.rr.3, x9, x0, x25, 0, 0x0, -0x2, x4, 7*XLEN/8, x7) + +inst_8: +// rs1==x30, rs2==x8, rd==x17, rs2_val == -3, rs1_val == -1431655766 +// opcode: mop.rr.3 ; op1:x30; op2:x8; dest:x17; op1val:-0x55555556; op2val:-0x3 +TEST_RR_OP(mop.rr.3, x17, x30, x8, 0, -0x55555556, -0x3, x4, 8*XLEN/8, x7) + +inst_9: +// rs1==x21, rs2==x19, rd==x14, rs2_val == -5, +// opcode: mop.rr.3 ; op1:x21; op2:x19; dest:x14; op1val:0x5; op2val:-0x5 +TEST_RR_OP(mop.rr.3, x14, x21, x19, 0, 0x5, -0x5, x4, 9*XLEN/8, x7) + +inst_10: +// rs1==x25, rs2==x28, rd==x24, rs2_val == -9, +// opcode: mop.rr.3 ; op1:x25; op2:x28; dest:x24; op1val:0x5; op2val:-0x9 +TEST_RR_OP(mop.rr.3, x24, x25, x28, 0, 0x5, -0x9, x4, 10*XLEN/8, x7) + +inst_11: +// rs1==x24, rs2==x23, rd==x22, rs2_val == -17, +// opcode: mop.rr.3 ; op1:x24; op2:x23; dest:x22; op1val:0x4; op2val:-0x11 +TEST_RR_OP(mop.rr.3, x22, x24, x23, 0, 0x4, -0x11, x4, 11*XLEN/8, x7) + +inst_12: +// rs1==x3, rs2==x5, rd==x21, rs2_val == -33, rs1_val == -33554433 +// opcode: mop.rr.3 ; op1:x3; op2:x5; dest:x21; op1val:-0x2000001; op2val:-0x21 +TEST_RR_OP(mop.rr.3, x21, x3, x5, 0, -0x2000001, -0x21, x4, 12*XLEN/8, x7) + +inst_13: +// rs1==x11, rs2==x27, rd==x6, rs2_val == -65, +// opcode: mop.rr.3 ; op1:x11; op2:x27; dest:x6; op1val:0x6; op2val:-0x41 +TEST_RR_OP(mop.rr.3, x6, x11, x27, 0, 0x6, -0x41, x4, 13*XLEN/8, x7) + +inst_14: +// rs1==x7, rs2==x21, rd==x19, rs2_val == -129, rs1_val == -131073 +// opcode: mop.rr.3 ; op1:x7; op2:x21; dest:x19; op1val:-0x20001; op2val:-0x81 +TEST_RR_OP(mop.rr.3, x19, x7, x21, 0, -0x20001, -0x81, x4, 14*XLEN/8, x8) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_15: +// rs1==x5, rs2==x30, rd==x1, rs2_val == -257, +// opcode: mop.rr.3 ; op1:x5; op2:x30; dest:x1; op1val:0x0; op2val:-0x101 +TEST_RR_OP(mop.rr.3, x1, x5, x30, 0, 0x0, -0x101, x2, 0*XLEN/8, x8) + +inst_16: +// rs1==x19, rs2==x16, rd==x28, rs2_val == -513, +// opcode: mop.rr.3 ; op1:x19; op2:x16; dest:x28; op1val:0x4; op2val:-0x201 +TEST_RR_OP(mop.rr.3, x28, x19, x16, 0, 0x4, -0x201, x2, 1*XLEN/8, x8) + +inst_17: +// rs1==x23, rs2==x22, rd==x10, rs2_val == -1025, +// opcode: mop.rr.3 ; op1:x23; op2:x22; dest:x10; op1val:0x33333332; op2val:-0x401 +TEST_RR_OP(mop.rr.3, x10, x23, x22, 0, 0x33333332, -0x401, x2, 2*XLEN/8, x8) + +inst_18: +// rs1==x27, rs2==x10, rd==x23, rs2_val == -2049, +// opcode: mop.rr.3 ; op1:x27; op2:x10; dest:x23; op1val:0x33333333; op2val:-0x801 +TEST_RR_OP(mop.rr.3, x23, x27, x10, 0, 0x33333333, -0x801, x2, 3*XLEN/8, x8) + +inst_19: +// rs1==x16, rs2==x4, rd==x3, rs2_val == -4097, rs1_val == 8 +// opcode: mop.rr.3 ; op1:x16; op2:x4; dest:x3; op1val:0x8; op2val:-0x1001 +TEST_RR_OP(mop.rr.3, x3, x16, x4, 0, 0x8, -0x1001, x2, 4*XLEN/8, x8) + +inst_20: +// rs1==x28, rs2==x11, rd==x5, rs2_val == -8193, +// opcode: mop.rr.3 ; op1:x28; op2:x11; dest:x5; op1val:0x4; op2val:-0x2001 +TEST_RR_OP(mop.rr.3, x5, x28, x11, 0, 0x4, -0x2001, x2, 5*XLEN/8, x8) + +inst_21: +// rs1==x18, rs2==x26, rd==x27, rs2_val == -16385, rs1_val == -1048577 +// opcode: mop.rr.3 ; op1:x18; op2:x26; dest:x27; op1val:-0x100001; op2val:-0x4001 +TEST_RR_OP(mop.rr.3, x27, x18, x26, 0, -0x100001, -0x4001, x2, 6*XLEN/8, x8) + +inst_22: +// rs1==x17, rs2==x6, rd==x25, rs2_val == -32769, +// opcode: mop.rr.3 ; op1:x17; op2:x6; dest:x25; op1val:-0xa; op2val:-0x8001 +TEST_RR_OP(mop.rr.3, x25, x17, x6, 0, -0xa, -0x8001, x2, 7*XLEN/8, x8) + +inst_23: +// rs1==x6, rs2==x24, rd==x18, rs2_val == -65537, +// opcode: mop.rr.3 ; op1:x6; op2:x24; dest:x18; op1val:0xb505; op2val:-0x10001 +TEST_RR_OP(mop.rr.3, x18, x6, x24, 0, 0xb505, -0x10001, x2, 8*XLEN/8, x8) + +inst_24: +// rs1==x26, rs2==x7, rd==x12, rs2_val == -131073, +// opcode: mop.rr.3 ; op1:x26; op2:x7; dest:x12; op1val:-0xb504; op2val:-0x20001 +TEST_RR_OP(mop.rr.3, x12, x26, x7, 0, -0xb504, -0x20001, x2, 9*XLEN/8, x8) + +inst_25: +// rs1==x4, rs2==x9, rd==x15, rs2_val == -262145, rs1_val == -2 +// opcode: mop.rr.3 ; op1:x4; op2:x9; dest:x15; op1val:-0x2; op2val:-0x40001 +TEST_RR_OP(mop.rr.3, x15, x4, x9, 0, -0x2, -0x40001, x2, 10*XLEN/8, x8) + +inst_26: +// rs1==x29, rs2==x18, rd==x4, rs2_val == -524289, +// opcode: mop.rr.3 ; op1:x29; op2:x18; dest:x4; op1val:0x7; op2val:-0x80001 +TEST_RR_OP(mop.rr.3, x4, x29, x18, 0, 0x7, -0x80001, x2, 11*XLEN/8, x8) + +inst_27: +// rs1==x15, rs2==x14, rd==x16, rs2_val == -1048577, +// opcode: mop.rr.3 ; op1:x15; op2:x14; dest:x16; op1val:0x8; op2val:-0x100001 +TEST_RR_OP(mop.rr.3, x16, x15, x14, 0, 0x8, -0x100001, x2, 12*XLEN/8, x3) + +inst_28: +// rs1==x20, rs2==x31, rd==x0, rs2_val == -4194305, +// opcode: mop.rr.3 ; op1:x20; op2:x31; dest:x0; op1val:-0x2; op2val:-0x400001 +TEST_RR_OP(mop.rr.3, x0, x20, x31, 0, -0x2, -0x400001, x2, 13*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_29: +// rs1==x31, rs2==x0, rd==x26, rs2_val == -8388609, rs1_val == 262144 +// opcode: mop.rr.3 ; op1:x31; op2:x0; dest:x26; op1val:0x40000; op2val:0x0 +TEST_RR_OP(mop.rr.3, x26, x31, x0, 0, 0x40000, 0x0, x1, 0*XLEN/8, x3) + +inst_30: +// rs1==x14, rs2==x29, rd==x30, rs2_val == -33554433, +// opcode: mop.rr.3 ; op1:x14; op2:x29; dest:x30; op1val:0x66666665; op2val:-0x2000001 +TEST_RR_OP(mop.rr.3, x30, x14, x29, 0, 0x66666665, -0x2000001, x1, 1*XLEN/8, x3) + +inst_31: +// rs1==x9, rs2==x15, rd==x7, rs2_val == -67108865, +// opcode: mop.rr.3 ; op1:x9; op2:x15; dest:x7; op1val:-0x6; op2val:-0x4000001 +TEST_RR_OP(mop.rr.3, x7, x9, x15, 0, -0x6, -0x4000001, x1, 2*XLEN/8, x3) + +inst_32: +// rs2_val == -134217729, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3fffffff; op2val:-0x8000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3fffffff, -0x8000001, x1, 3*XLEN/8, x3) + +inst_33: +// rs2_val == -268435457, rs1_val == 4194304 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400000, -0x10000001, x1, 4*XLEN/8, x3) + +inst_34: +// rs2_val == -536870913, rs1_val == -129 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x20000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x81, -0x20000001, x1, 5*XLEN/8, x3) + +inst_35: +// rs2_val == -1073741825, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x80000000, -0x40000001, x1, 6*XLEN/8, x3) + +inst_36: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1), rs1_val == 16777216 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x7fffffff +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000000, 0x7fffffff, x1, 7*XLEN/8, x3) + +inst_37: +// rs1_val == -5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x7 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5, 0x7, x1, 8*XLEN/8, x3) + +inst_38: +// rs1_val == -9, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x9, -0x55555555, x1, 9*XLEN/8, x3) + +inst_39: +// rs1_val == -17, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x11, -0xb504, x1, 10*XLEN/8, x3) + +inst_40: +// rs1_val == -33, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:-0x400001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x21, -0x400001, x1, 11*XLEN/8, x3) + +inst_41: +// rs1_val == -65, rs2_val == 8 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x8 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x41, 0x8, x1, 12*XLEN/8, x3) + +inst_42: +// rs1_val == -257, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:-0x801 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x101, -0x801, x1, 13*XLEN/8, x3) + +inst_43: +// rs1_val == -513, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x201, 0xb505, x1, 14*XLEN/8, x3) + +inst_44: +// rs1_val == -1025, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x40000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x401, -0x40000000, x1, 15*XLEN/8, x3) + +inst_45: +// rs1_val == -2049, rs2_val == 16384 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x4000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x801, 0x4000, x1, 16*XLEN/8, x3) + +inst_46: +// rs1_val == -4097, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1001, 0x6, x1, 17*XLEN/8, x3) + +inst_47: +// rs1_val == -8193, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x801 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2001, -0x801, x1, 18*XLEN/8, x3) + +inst_48: +// rs1_val == -16385, rs2_val == 1431655765 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4001, 0x55555555, x1, 19*XLEN/8, x3) + +inst_49: +// rs1_val == -32769, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8001, 0x33333333, x1, 20*XLEN/8, x3) + +inst_50: +// rs1_val == -65537, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10001, -0x2000001, x1, 21*XLEN/8, x3) + +inst_51: +// rs1_val == -262145, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x9 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x40001, -0x9, x1, 22*XLEN/8, x3) + +inst_52: +// rs1_val == -524289, rs2_val == 16777216 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x1000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x80001, 0x1000000, x1, 23*XLEN/8, x3) + +inst_53: +// rs1_val == -2097153, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x20001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x200001, -0x20001, x1, 24*XLEN/8, x3) + +inst_54: +// rs1_val == -4194305, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x7fffffff +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x400001, 0x7fffffff, x1, 25*XLEN/8, x3) + +inst_55: +// rs1_val == -8388609, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x20001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x800001, -0x20001, x1, 26*XLEN/8, x3) + +inst_56: +// rs1_val == -67108865, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x8 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4000001, 0x8, x1, 27*XLEN/8, x3) + +inst_57: +// rs1_val == -134217729, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8000001, 0x55555554, x1, 28*XLEN/8, x3) + +inst_58: +// rs1_val == -268435457, rs2_val == 32768 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x8000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10000001, 0x8000, x1, 29*XLEN/8, x3) + +inst_59: +// rs1_val == -536870913, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x800001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000001, -0x800001, x1, 30*XLEN/8, x3) + +inst_60: +// rs1_val == -1073741825, rs2_val == 1024 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x400 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x40000001, 0x400, x1, 31*XLEN/8, x3) + +inst_61: +// rs2_val == 1, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x1 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x1, x1, 32*XLEN/8, x3) + +inst_62: +// rs2_val == 2, rs1_val==0 and rs2_val==2 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x2, x1, 33*XLEN/8, x3) + +inst_63: +// rs2_val == 4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x11, 0x4, x1, 34*XLEN/8, x3) + +inst_64: +// rs2_val == 16, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x10 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4001, 0x10, x1, 35*XLEN/8, x3) + +inst_65: +// rs2_val == 32, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x20 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x101, 0x20, x1, 36*XLEN/8, x3) + +inst_66: +// rs2_val == 64, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x40 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10001, 0x40, x1, 37*XLEN/8, x3) + +inst_67: +// rs2_val == 128, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x80 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5, 0x80, x1, 38*XLEN/8, x3) + +inst_68: +// rs2_val == 256, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x100 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000001, 0x100, x1, 39*XLEN/8, x3) + +inst_69: +// rs2_val == 512, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x200 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x200, x1, 40*XLEN/8, x3) + +inst_70: +// rs2_val == 2048, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x800 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x11, 0x800, x1, 41*XLEN/8, x3) + +inst_71: +// rs2_val == 4096, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x1000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2001, 0x1000, x1, 42*XLEN/8, x3) + +inst_72: +// rs2_val == 65536, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x10000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x3, 0x10000, x1, 43*XLEN/8, x3) + +inst_73: +// rs2_val == 131072, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8; op2val:0x20000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8, 0x20000, x1, 44*XLEN/8, x3) + +inst_74: +// rs2_val == 262144, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x40000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000001, 0x40000, x1, 45*XLEN/8, x3) + +inst_75: +// rs2_val == 524288, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x80000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x40001, 0x80000, x1, 46*XLEN/8, x3) + +inst_76: +// rs2_val == 1048576, rs1_val == 33554432 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x100000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000000, 0x100000, x1, 47*XLEN/8, x3) + +inst_77: +// rs2_val == 2097152, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x200000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x200000, x1, 48*XLEN/8, x3) + +inst_78: +// rs2_val == 8388608, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x800000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x800000, x1, 49*XLEN/8, x3) + +inst_79: +// rs2_val == 33554432, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x2000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xa, 0x2000000, x1, 50*XLEN/8, x3) + +inst_80: +// rs2_val == 67108864, rs1_val == 1431655765 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x4000000, x1, 51*XLEN/8, x3) + +inst_81: +// rs2_val == 134217728, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x8000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x101, 0x8000000, x1, 52*XLEN/8, x3) + +inst_82: +// rs2_val == 268435456, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x10000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x10000000, x1, 53*XLEN/8, x3) + +inst_83: +// rs2_val == 536870912, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x20000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x20000000, x1, 54*XLEN/8, x3) + +inst_84: +// rs2_val == 1073741824, rs1_val == 512 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x40000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x200, 0x40000000, x1, 55*XLEN/8, x3) + +inst_85: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x80000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, -0x80000000, x1, 56*XLEN/8, x3) + +inst_86: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x3, x1, 57*XLEN/8, x3) + +inst_87: +// rs1_val == 2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x80001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0x80001, x1, 58*XLEN/8, x3) + +inst_88: +// rs1_val == 16, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x1000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10, 0x1000, x1, 59*XLEN/8, x3) + +inst_89: +// rs1_val == 32, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x2000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20, 0x2000000, x1, 60*XLEN/8, x3) + +inst_90: +// rs1_val == 64, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x40 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40, 0x40, x1, 61*XLEN/8, x3) + +inst_91: +// rs1_val == 128, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x200000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80, 0x200000, x1, 62*XLEN/8, x3) + +inst_92: +// rs1_val == 256, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x2000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100, 0x2000000, x1, 63*XLEN/8, x3) + +inst_93: +// rs1_val == 1024, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x4000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400, 0x4000000, x1, 64*XLEN/8, x3) + +inst_94: +// rs1_val == 2048, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800, 0xb505, x1, 65*XLEN/8, x3) + +inst_95: +// rs1_val == 4096, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0x400001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000, -0x400001, x1, 66*XLEN/8, x3) + +inst_96: +// rs1_val == 8192, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x200001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000, -0x200001, x1, 67*XLEN/8, x3) + +inst_97: +// rs1_val == 16384, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x2000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4000, 0x2000, x1, 68*XLEN/8, x3) + +inst_98: +// rs1_val == 32768, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000, 0x6, x1, 69*XLEN/8, x3) + +inst_99: +// rs1_val == 65536, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10000, 0x4, x1, 70*XLEN/8, x3) + +inst_100: +// rs1_val == 131072, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000, -0xb504, x1, 71*XLEN/8, x3) + +inst_101: +// rs1_val == 524288, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80000, -0x40000001, x1, 72*XLEN/8, x3) + +inst_102: +// rs1_val == 1048576, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100000, 0x55555555, x1, 73*XLEN/8, x3) + +inst_103: +// rs1_val == 2097152, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x1000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x200000, 0x1000, x1, 74*XLEN/8, x3) + +inst_104: +// rs1_val == 8388608, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000, 0x66666667, x1, 75*XLEN/8, x3) + +inst_105: +// rs1_val == 67108864, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:-0x1 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4000000, -0x1, x1, 76*XLEN/8, x3) + +inst_106: +// rs1_val == 134217728, rs2_val == 0 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000000, 0x0, x1, 77*XLEN/8, x3) + +inst_107: +// rs1_val == 268435456, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:-0x21 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10000000, -0x21, x1, 78*XLEN/8, x3) + +inst_108: +// rs1_val == 536870912, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000000, -0x40000001, x1, 79*XLEN/8, x3) + +inst_109: +// rs1_val == 1073741824, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x4001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000000, -0x4001, x1, 80*XLEN/8, x3) + +inst_110: +// rs1_val==3 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x55555555, x1, 81*XLEN/8, x3) + +inst_111: +// rs1_val==3 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0x55555556, x1, 82*XLEN/8, x3) + +inst_112: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x5, x1, 83*XLEN/8, x3) + +inst_113: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x33333333, x1, 84*XLEN/8, x3) + +inst_114: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x66666666, x1, 85*XLEN/8, x3) + +inst_115: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0xb504, x1, 86*XLEN/8, x3) + +inst_116: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0xb504, x1, 87*XLEN/8, x3) + +inst_117: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x2, x1, 88*XLEN/8, x3) + +inst_118: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x55555554, x1, 89*XLEN/8, x3) + +inst_119: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x0, x1, 90*XLEN/8, x3) + +inst_120: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x4, x1, 91*XLEN/8, x3) + +inst_121: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x33333332, x1, 92*XLEN/8, x3) + +inst_122: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x66666665, x1, 93*XLEN/8, x3) + +inst_123: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0xb503, x1, 94*XLEN/8, x3) + +inst_124: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x55555556, x1, 95*XLEN/8, x3) + +inst_125: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0x55555555, x1, 96*XLEN/8, x3) + +inst_126: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x6, x1, 97*XLEN/8, x3) + +inst_127: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x33333334, x1, 98*XLEN/8, x3) + +inst_128: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x66666667, x1, 99*XLEN/8, x3) + +inst_129: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0xb503, x1, 100*XLEN/8, x3) + +inst_130: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0xb505, x1, 101*XLEN/8, x3) + +inst_131: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x3, x1, 102*XLEN/8, x3) + +inst_132: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x55555555, x1, 103*XLEN/8, x3) + +inst_133: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, -0x55555556, x1, 104*XLEN/8, x3) + +inst_134: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x5, x1, 105*XLEN/8, x3) + +inst_135: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x33333333, x1, 106*XLEN/8, x3) + +inst_136: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x66666666, x1, 107*XLEN/8, x3) + +inst_137: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, -0xb504, x1, 108*XLEN/8, x3) + +inst_138: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0xb504, x1, 109*XLEN/8, x3) + +inst_139: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x2, x1, 110*XLEN/8, x3) + +inst_140: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x55555554, x1, 111*XLEN/8, x3) + +inst_141: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x0, x1, 112*XLEN/8, x3) + +inst_142: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x4, x1, 113*XLEN/8, x3) + +inst_143: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x33333332, x1, 114*XLEN/8, x3) + +inst_144: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x66666665, x1, 115*XLEN/8, x3) + +inst_145: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0xb503, x1, 116*XLEN/8, x3) + +inst_146: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x55555556, x1, 117*XLEN/8, x3) + +inst_147: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, -0x55555555, x1, 118*XLEN/8, x3) + +inst_148: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x6, x1, 119*XLEN/8, x3) + +inst_149: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x33333334, x1, 120*XLEN/8, x3) + +inst_150: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0x66666667, x1, 121*XLEN/8, x3) + +inst_151: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, -0xb503, x1, 122*XLEN/8, x3) + +inst_152: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555555, 0xb505, x1, 123*XLEN/8, x3) + +inst_153: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x3, x1, 124*XLEN/8, x3) + +inst_154: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x55555555, x1, 125*XLEN/8, x3) + +inst_155: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, -0x55555556, x1, 126*XLEN/8, x3) + +inst_156: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x5, x1, 127*XLEN/8, x3) + +inst_157: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x33333333, x1, 128*XLEN/8, x3) + +inst_158: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x66666666, x1, 129*XLEN/8, x3) + +inst_159: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, -0xb504, x1, 130*XLEN/8, x3) + +inst_160: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0xb504, x1, 131*XLEN/8, x3) + +inst_161: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x2, x1, 132*XLEN/8, x3) + +inst_162: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x55555554, x1, 133*XLEN/8, x3) + +inst_163: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x0, x1, 134*XLEN/8, x3) + +inst_164: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x4, x1, 135*XLEN/8, x3) + +inst_165: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x33333332, x1, 136*XLEN/8, x3) + +inst_166: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x66666665, x1, 137*XLEN/8, x3) + +inst_167: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0xb503, x1, 138*XLEN/8, x3) + +inst_168: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x55555556, x1, 139*XLEN/8, x3) + +inst_169: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, -0x55555555, x1, 140*XLEN/8, x3) + +inst_170: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x6, x1, 141*XLEN/8, x3) + +inst_171: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x33333334, x1, 142*XLEN/8, x3) + +inst_172: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0x66666667, x1, 143*XLEN/8, x3) + +inst_173: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, -0xb503, x1, 144*XLEN/8, x3) + +inst_174: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555556, 0xb505, x1, 145*XLEN/8, x3) + +inst_175: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x3, x1, 146*XLEN/8, x3) + +inst_176: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x55555555, x1, 147*XLEN/8, x3) + +inst_177: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0x55555556, x1, 148*XLEN/8, x3) + +inst_178: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x5, x1, 149*XLEN/8, x3) + +inst_179: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x33333333, x1, 150*XLEN/8, x3) + +inst_180: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x66666666, x1, 151*XLEN/8, x3) + +inst_181: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0xb504, x1, 152*XLEN/8, x3) + +inst_182: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0xb504, x1, 153*XLEN/8, x3) + +inst_183: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x2, x1, 154*XLEN/8, x3) + +inst_184: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x55555554, x1, 155*XLEN/8, x3) + +inst_185: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x0, x1, 156*XLEN/8, x3) + +inst_186: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x4, x1, 157*XLEN/8, x3) + +inst_187: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x33333332, x1, 158*XLEN/8, x3) + +inst_188: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x66666665, x1, 159*XLEN/8, x3) + +inst_189: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0xb503, x1, 160*XLEN/8, x3) + +inst_190: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x55555556, x1, 161*XLEN/8, x3) + +inst_191: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0x55555555, x1, 162*XLEN/8, x3) + +inst_192: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x6, x1, 163*XLEN/8, x3) + +inst_193: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x33333334, x1, 164*XLEN/8, x3) + +inst_194: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x66666667, x1, 165*XLEN/8, x3) + +inst_195: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0xb503, x1, 166*XLEN/8, x3) + +inst_196: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0xb505, x1, 167*XLEN/8, x3) + +inst_197: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x3, x1, 168*XLEN/8, x3) + +inst_198: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x55555555, x1, 169*XLEN/8, x3) + +inst_199: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, -0x55555556, x1, 170*XLEN/8, x3) + +inst_200: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x5, x1, 171*XLEN/8, x3) + +inst_201: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x33333333, x1, 172*XLEN/8, x3) + +inst_202: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x66666666, x1, 173*XLEN/8, x3) + +inst_203: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, -0xb504, x1, 174*XLEN/8, x3) + +inst_204: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0xb504, x1, 175*XLEN/8, x3) + +inst_205: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x2, x1, 176*XLEN/8, x3) + +inst_206: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x55555554, x1, 177*XLEN/8, x3) + +inst_207: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x0, x1, 178*XLEN/8, x3) + +inst_208: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x4, x1, 179*XLEN/8, x3) + +inst_209: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x33333332, x1, 180*XLEN/8, x3) + +inst_210: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x66666665, x1, 181*XLEN/8, x3) + +inst_211: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0xb503, x1, 182*XLEN/8, x3) + +inst_212: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x55555556, x1, 183*XLEN/8, x3) + +inst_213: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, -0x55555555, x1, 184*XLEN/8, x3) + +inst_214: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x6, x1, 185*XLEN/8, x3) + +inst_215: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x33333334, x1, 186*XLEN/8, x3) + +inst_216: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0x66666667, x1, 187*XLEN/8, x3) + +inst_217: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, -0xb503, x1, 188*XLEN/8, x3) + +inst_218: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333333, 0xb505, x1, 189*XLEN/8, x3) + +inst_219: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x3, x1, 190*XLEN/8, x3) + +inst_220: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x55555555, x1, 191*XLEN/8, x3) + +inst_221: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, -0x55555556, x1, 192*XLEN/8, x3) + +inst_222: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x5, x1, 193*XLEN/8, x3) + +inst_223: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x33333333, x1, 194*XLEN/8, x3) + +inst_224: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x66666666, x1, 195*XLEN/8, x3) + +inst_225: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, -0xb504, x1, 196*XLEN/8, x3) + +inst_226: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0xb504, x1, 197*XLEN/8, x3) + +inst_227: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x2, x1, 198*XLEN/8, x3) + +inst_228: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x55555554, x1, 199*XLEN/8, x3) + +inst_229: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x0, x1, 200*XLEN/8, x3) + +inst_230: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x4, x1, 201*XLEN/8, x3) + +inst_231: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x33333332, x1, 202*XLEN/8, x3) + +inst_232: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x66666665, x1, 203*XLEN/8, x3) + +inst_233: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0xb503, x1, 204*XLEN/8, x3) + +inst_234: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x55555556, x1, 205*XLEN/8, x3) + +inst_235: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, -0x55555555, x1, 206*XLEN/8, x3) + +inst_236: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x6, x1, 207*XLEN/8, x3) + +inst_237: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x33333334, x1, 208*XLEN/8, x3) + +inst_238: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0x66666667, x1, 209*XLEN/8, x3) + +inst_239: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, -0xb503, x1, 210*XLEN/8, x3) + +inst_240: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666666, 0xb505, x1, 211*XLEN/8, x3) + +inst_241: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x3, x1, 212*XLEN/8, x3) + +inst_242: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x55555555, x1, 213*XLEN/8, x3) + +inst_243: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, -0x55555556, x1, 214*XLEN/8, x3) + +inst_244: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x5, x1, 215*XLEN/8, x3) + +inst_245: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x33333333, x1, 216*XLEN/8, x3) + +inst_246: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x66666666, x1, 217*XLEN/8, x3) + +inst_247: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, -0xb504, x1, 218*XLEN/8, x3) + +inst_248: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0xb504, x1, 219*XLEN/8, x3) + +inst_249: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x2, x1, 220*XLEN/8, x3) + +inst_250: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x55555554, x1, 221*XLEN/8, x3) + +inst_251: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x0, x1, 222*XLEN/8, x3) + +inst_252: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x4, x1, 223*XLEN/8, x3) + +inst_253: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x33333332, x1, 224*XLEN/8, x3) + +inst_254: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x66666665, x1, 225*XLEN/8, x3) + +inst_255: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0xb503, x1, 226*XLEN/8, x3) + +inst_256: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x55555556, x1, 227*XLEN/8, x3) + +inst_257: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, -0x55555555, x1, 228*XLEN/8, x3) + +inst_258: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x6, x1, 229*XLEN/8, x3) + +inst_259: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x33333334, x1, 230*XLEN/8, x3) + +inst_260: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0x66666667, x1, 231*XLEN/8, x3) + +inst_261: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, -0xb503, x1, 232*XLEN/8, x3) + +inst_262: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504, 0xb505, x1, 233*XLEN/8, x3) + +inst_263: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x3, x1, 234*XLEN/8, x3) + +inst_264: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x55555555, x1, 235*XLEN/8, x3) + +inst_265: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, -0x55555556, x1, 236*XLEN/8, x3) + +inst_266: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x5, x1, 237*XLEN/8, x3) + +inst_267: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x33333333, x1, 238*XLEN/8, x3) + +inst_268: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x66666666, x1, 239*XLEN/8, x3) + +inst_269: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, -0xb504, x1, 240*XLEN/8, x3) + +inst_270: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0xb504, x1, 241*XLEN/8, x3) + +inst_271: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x2, x1, 242*XLEN/8, x3) + +inst_272: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x55555554, x1, 243*XLEN/8, x3) + +inst_273: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x0, x1, 244*XLEN/8, x3) + +inst_274: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x4, x1, 245*XLEN/8, x3) + +inst_275: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x33333332, x1, 246*XLEN/8, x3) + +inst_276: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x66666665, x1, 247*XLEN/8, x3) + +inst_277: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0xb503, x1, 248*XLEN/8, x3) + +inst_278: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x55555556, x1, 249*XLEN/8, x3) + +inst_279: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, -0x55555555, x1, 250*XLEN/8, x3) + +inst_280: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x6, x1, 251*XLEN/8, x3) + +inst_281: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x33333334, x1, 252*XLEN/8, x3) + +inst_282: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0x66666667, x1, 253*XLEN/8, x3) + +inst_283: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, -0xb503, x1, 254*XLEN/8, x3) + +inst_284: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504, 0xb505, x1, 255*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_285: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x3, x1, 0*XLEN/8, x3) + +inst_286: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x55555555, x1, 1*XLEN/8, x3) + +inst_287: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0x55555556, x1, 2*XLEN/8, x3) + +inst_288: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x5, x1, 3*XLEN/8, x3) + +inst_289: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x33333333, x1, 4*XLEN/8, x3) + +inst_290: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x66666666, x1, 5*XLEN/8, x3) + +inst_291: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0xb504, x1, 6*XLEN/8, x3) + +inst_292: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0xb504, x1, 7*XLEN/8, x3) + +inst_293: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x2, x1, 8*XLEN/8, x3) + +inst_294: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x55555554, x1, 9*XLEN/8, x3) + +inst_295: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x0, x1, 10*XLEN/8, x3) + +inst_296: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x4, x1, 11*XLEN/8, x3) + +inst_297: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x33333332, x1, 12*XLEN/8, x3) + +inst_298: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x66666665, x1, 13*XLEN/8, x3) + +inst_299: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0xb503, x1, 14*XLEN/8, x3) + +inst_300: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x55555556, x1, 15*XLEN/8, x3) + +inst_301: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0x55555555, x1, 16*XLEN/8, x3) + +inst_302: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x6, x1, 17*XLEN/8, x3) + +inst_303: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x33333334, x1, 18*XLEN/8, x3) + +inst_304: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x66666667, x1, 19*XLEN/8, x3) + +inst_305: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0xb503, x1, 20*XLEN/8, x3) + +inst_306: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0xb505, x1, 21*XLEN/8, x3) + +inst_307: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x3, x1, 22*XLEN/8, x3) + +inst_308: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x55555555, x1, 23*XLEN/8, x3) + +inst_309: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, -0x55555556, x1, 24*XLEN/8, x3) + +inst_310: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x5, x1, 25*XLEN/8, x3) + +inst_311: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x33333333, x1, 26*XLEN/8, x3) + +inst_312: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x66666666, x1, 27*XLEN/8, x3) + +inst_313: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, -0xb504, x1, 28*XLEN/8, x3) + +inst_314: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0xb504, x1, 29*XLEN/8, x3) + +inst_315: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x2, x1, 30*XLEN/8, x3) + +inst_316: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x55555554, x1, 31*XLEN/8, x3) + +inst_317: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x0, x1, 32*XLEN/8, x3) + +inst_318: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x4, x1, 33*XLEN/8, x3) + +inst_319: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x33333332, x1, 34*XLEN/8, x3) + +inst_320: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x66666665, x1, 35*XLEN/8, x3) + +inst_321: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0xb503, x1, 36*XLEN/8, x3) + +inst_322: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x55555556, x1, 37*XLEN/8, x3) + +inst_323: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, -0x55555555, x1, 38*XLEN/8, x3) + +inst_324: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x6, x1, 39*XLEN/8, x3) + +inst_325: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x33333334, x1, 40*XLEN/8, x3) + +inst_326: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0x66666667, x1, 41*XLEN/8, x3) + +inst_327: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, -0xb503, x1, 42*XLEN/8, x3) + +inst_328: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555554, 0xb505, x1, 43*XLEN/8, x3) + +inst_329: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x3, x1, 44*XLEN/8, x3) + +inst_330: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x55555555, x1, 45*XLEN/8, x3) + +inst_331: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0x55555556, x1, 46*XLEN/8, x3) + +inst_332: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x5, x1, 47*XLEN/8, x3) + +inst_333: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x33333333, x1, 48*XLEN/8, x3) + +inst_334: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x66666666, x1, 49*XLEN/8, x3) + +inst_335: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0xb504, x1, 50*XLEN/8, x3) + +inst_336: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, -0x55555555, x1, 51*XLEN/8, x3) + +inst_337: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x6, x1, 52*XLEN/8, x3) + +inst_338: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x33333334, x1, 53*XLEN/8, x3) + +inst_339: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x66666667, x1, 54*XLEN/8, x3) + +inst_340: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, -0xb503, x1, 55*XLEN/8, x3) + +inst_341: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0xb505, x1, 56*XLEN/8, x3) + +inst_342: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x3, x1, 57*XLEN/8, x3) + +inst_343: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x55555555, x1, 58*XLEN/8, x3) + +inst_344: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0x55555556, x1, 59*XLEN/8, x3) + +inst_345: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x5, x1, 60*XLEN/8, x3) + +inst_346: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x33333333, x1, 61*XLEN/8, x3) + +inst_347: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x66666666, x1, 62*XLEN/8, x3) + +inst_348: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0xb504, x1, 63*XLEN/8, x3) + +inst_349: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0xb504, x1, 64*XLEN/8, x3) + +inst_350: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x2, x1, 65*XLEN/8, x3) + +inst_351: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x55555554, x1, 66*XLEN/8, x3) + +inst_352: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x0, x1, 67*XLEN/8, x3) + +inst_353: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x4, x1, 68*XLEN/8, x3) + +inst_354: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x33333332, x1, 69*XLEN/8, x3) + +inst_355: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x66666665, x1, 70*XLEN/8, x3) + +inst_356: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0xb503, x1, 71*XLEN/8, x3) + +inst_357: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x55555556, x1, 72*XLEN/8, x3) + +inst_358: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0x55555555, x1, 73*XLEN/8, x3) + +inst_359: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x6, x1, 74*XLEN/8, x3) + +inst_360: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x33333334, x1, 75*XLEN/8, x3) + +inst_361: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x66666667, x1, 76*XLEN/8, x3) + +inst_362: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0xb503, x1, 77*XLEN/8, x3) + +inst_363: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0xb505, x1, 78*XLEN/8, x3) + +inst_364: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x3, x1, 79*XLEN/8, x3) + +inst_365: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x55555555, x1, 80*XLEN/8, x3) + +inst_366: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, -0x55555556, x1, 81*XLEN/8, x3) + +inst_367: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x5, x1, 82*XLEN/8, x3) + +inst_368: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x33333333, x1, 83*XLEN/8, x3) + +inst_369: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x66666666, x1, 84*XLEN/8, x3) + +inst_370: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, -0xb504, x1, 85*XLEN/8, x3) + +inst_371: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0xb504, x1, 86*XLEN/8, x3) + +inst_372: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x2, x1, 87*XLEN/8, x3) + +inst_373: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x55555554, x1, 88*XLEN/8, x3) + +inst_374: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x0, x1, 89*XLEN/8, x3) + +inst_375: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x4, x1, 90*XLEN/8, x3) + +inst_376: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x33333332, x1, 91*XLEN/8, x3) + +inst_377: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x66666665, x1, 92*XLEN/8, x3) + +inst_378: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0xb503, x1, 93*XLEN/8, x3) + +inst_379: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x55555556, x1, 94*XLEN/8, x3) + +inst_380: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, -0x55555555, x1, 95*XLEN/8, x3) + +inst_381: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x6, x1, 96*XLEN/8, x3) + +inst_382: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x33333334, x1, 97*XLEN/8, x3) + +inst_383: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0x66666667, x1, 98*XLEN/8, x3) + +inst_384: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, -0xb503, x1, 99*XLEN/8, x3) + +inst_385: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333334, 0xb505, x1, 100*XLEN/8, x3) + +inst_386: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x3, x1, 101*XLEN/8, x3) + +inst_387: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x55555555, x1, 102*XLEN/8, x3) + +inst_388: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, -0x55555556, x1, 103*XLEN/8, x3) + +inst_389: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x5, x1, 104*XLEN/8, x3) + +inst_390: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x33333333, x1, 105*XLEN/8, x3) + +inst_391: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x66666666, x1, 106*XLEN/8, x3) + +inst_392: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, -0xb504, x1, 107*XLEN/8, x3) + +inst_393: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0xb504, x1, 108*XLEN/8, x3) + +inst_394: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x2, x1, 109*XLEN/8, x3) + +inst_395: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x55555554, x1, 110*XLEN/8, x3) + +inst_396: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x0, x1, 111*XLEN/8, x3) + +inst_397: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x4, x1, 112*XLEN/8, x3) + +inst_398: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x33333332, x1, 113*XLEN/8, x3) + +inst_399: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x66666665, x1, 114*XLEN/8, x3) + +inst_400: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0xb503, x1, 115*XLEN/8, x3) + +inst_401: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x55555556, x1, 116*XLEN/8, x3) + +inst_402: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, -0x55555555, x1, 117*XLEN/8, x3) + +inst_403: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x6, x1, 118*XLEN/8, x3) + +inst_404: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x33333334, x1, 119*XLEN/8, x3) + +inst_405: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0x66666667, x1, 120*XLEN/8, x3) + +inst_406: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, -0xb503, x1, 121*XLEN/8, x3) + +inst_407: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666667, 0xb505, x1, 122*XLEN/8, x3) + +inst_408: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x3, x1, 123*XLEN/8, x3) + +inst_409: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x55555555, x1, 124*XLEN/8, x3) + +inst_410: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, -0x55555556, x1, 125*XLEN/8, x3) + +inst_411: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x5, x1, 126*XLEN/8, x3) + +inst_412: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x33333333, x1, 127*XLEN/8, x3) + +inst_413: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x66666666, x1, 128*XLEN/8, x3) + +inst_414: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, -0xb504, x1, 129*XLEN/8, x3) + +inst_415: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0xb504, x1, 130*XLEN/8, x3) + +inst_416: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x2, x1, 131*XLEN/8, x3) + +inst_417: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x55555554, x1, 132*XLEN/8, x3) + +inst_418: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x0, x1, 133*XLEN/8, x3) + +inst_419: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x4, x1, 134*XLEN/8, x3) + +inst_420: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x33333332, x1, 135*XLEN/8, x3) + +inst_421: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x66666665, x1, 136*XLEN/8, x3) + +inst_422: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0xb503, x1, 137*XLEN/8, x3) + +inst_423: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x55555556, x1, 138*XLEN/8, x3) + +inst_424: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, -0x55555555, x1, 139*XLEN/8, x3) + +inst_425: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x6, x1, 140*XLEN/8, x3) + +inst_426: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x33333334, x1, 141*XLEN/8, x3) + +inst_427: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0x66666667, x1, 142*XLEN/8, x3) + +inst_428: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, -0xb503, x1, 143*XLEN/8, x3) + +inst_429: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb503, 0xb505, x1, 144*XLEN/8, x3) + +inst_430: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x3, x1, 145*XLEN/8, x3) + +inst_431: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x55555555, x1, 146*XLEN/8, x3) + +inst_432: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, -0x55555556, x1, 147*XLEN/8, x3) + +inst_433: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x5, x1, 148*XLEN/8, x3) + +inst_434: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x33333333, x1, 149*XLEN/8, x3) + +inst_435: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x66666666, x1, 150*XLEN/8, x3) + +inst_436: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, -0xb504, x1, 151*XLEN/8, x3) + +inst_437: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0xb504, x1, 152*XLEN/8, x3) + +inst_438: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x2, x1, 153*XLEN/8, x3) + +inst_439: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x55555554, x1, 154*XLEN/8, x3) + +inst_440: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x0, x1, 155*XLEN/8, x3) + +inst_441: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x4, x1, 156*XLEN/8, x3) + +inst_442: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x33333332, x1, 157*XLEN/8, x3) + +inst_443: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x66666665, x1, 158*XLEN/8, x3) + +inst_444: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0xb503, x1, 159*XLEN/8, x3) + +inst_445: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x55555556, x1, 160*XLEN/8, x3) + +inst_446: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, -0x55555555, x1, 161*XLEN/8, x3) + +inst_447: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x6, x1, 162*XLEN/8, x3) + +inst_448: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x33333334, x1, 163*XLEN/8, x3) + +inst_449: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0x66666667, x1, 164*XLEN/8, x3) + +inst_450: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, -0xb503, x1, 165*XLEN/8, x3) + +inst_451: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb505, 0xb505, x1, 166*XLEN/8, x3) + +inst_452: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x55555554, x1, 167*XLEN/8, x3) + +inst_453: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x0, x1, 168*XLEN/8, x3) + +inst_454: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x4, x1, 169*XLEN/8, x3) + +inst_455: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x33333332, x1, 170*XLEN/8, x3) + +inst_456: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x66666665, x1, 171*XLEN/8, x3) + +inst_457: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0xb503, x1, 172*XLEN/8, x3) + +inst_458: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x55555556, x1, 173*XLEN/8, x3) + +inst_459: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0x55555555, x1, 174*XLEN/8, x3) + +inst_460: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x6, x1, 175*XLEN/8, x3) + +inst_461: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x33333334, x1, 176*XLEN/8, x3) + +inst_462: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x66666667, x1, 177*XLEN/8, x3) + +inst_463: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0xb503, x1, 178*XLEN/8, x3) + +inst_464: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0xb505, x1, 179*XLEN/8, x3) + +inst_465: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x3, x1, 180*XLEN/8, x3) + +inst_466: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x55555555, x1, 181*XLEN/8, x3) + +inst_467: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0x55555556, x1, 182*XLEN/8, x3) + +inst_468: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x5, x1, 183*XLEN/8, x3) + +inst_469: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x33333333, x1, 184*XLEN/8, x3) + +inst_470: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x66666666, x1, 185*XLEN/8, x3) + +inst_471: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0xb504, x1, 186*XLEN/8, x3) + +inst_472: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0xb504, x1, 187*XLEN/8, x3) + +inst_473: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x2, x1, 188*XLEN/8, x3) + +inst_474: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x55555554, x1, 189*XLEN/8, x3) + +inst_475: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x0, x1, 190*XLEN/8, x3) + +inst_476: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x4, x1, 191*XLEN/8, x3) + +inst_477: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x33333332, x1, 192*XLEN/8, x3) + +inst_478: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x66666665, x1, 193*XLEN/8, x3) + +inst_479: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0xb503, x1, 194*XLEN/8, x3) + +inst_480: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x55555556, x1, 195*XLEN/8, x3) + +inst_481: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0x55555555, x1, 196*XLEN/8, x3) + +inst_482: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x6, x1, 197*XLEN/8, x3) + +inst_483: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x33333334, x1, 198*XLEN/8, x3) + +inst_484: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x66666667, x1, 199*XLEN/8, x3) + +inst_485: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0xb503, x1, 200*XLEN/8, x3) + +inst_486: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0xb505, x1, 201*XLEN/8, x3) + +inst_487: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x3, x1, 202*XLEN/8, x3) + +inst_488: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x55555555, x1, 203*XLEN/8, x3) + +inst_489: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, -0x55555556, x1, 204*XLEN/8, x3) + +inst_490: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x5, x1, 205*XLEN/8, x3) + +inst_491: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x33333333, x1, 206*XLEN/8, x3) + +inst_492: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x66666666, x1, 207*XLEN/8, x3) + +inst_493: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, -0xb504, x1, 208*XLEN/8, x3) + +inst_494: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0xb504, x1, 209*XLEN/8, x3) + +inst_495: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x2, x1, 210*XLEN/8, x3) + +inst_496: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x55555554, x1, 211*XLEN/8, x3) + +inst_497: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x0, x1, 212*XLEN/8, x3) + +inst_498: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x4, x1, 213*XLEN/8, x3) + +inst_499: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x33333332, x1, 214*XLEN/8, x3) + +inst_500: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x66666665, x1, 215*XLEN/8, x3) + +inst_501: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0xb503, x1, 216*XLEN/8, x3) + +inst_502: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x55555556, x1, 217*XLEN/8, x3) + +inst_503: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, -0x55555555, x1, 218*XLEN/8, x3) + +inst_504: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x6, x1, 219*XLEN/8, x3) + +inst_505: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x33333334, x1, 220*XLEN/8, x3) + +inst_506: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0x66666667, x1, 221*XLEN/8, x3) + +inst_507: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, -0xb503, x1, 222*XLEN/8, x3) + +inst_508: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x33333332, 0xb505, x1, 223*XLEN/8, x3) + +inst_509: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x3, x1, 224*XLEN/8, x3) + +inst_510: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x55555555, x1, 225*XLEN/8, x3) + +inst_511: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, -0x55555556, x1, 226*XLEN/8, x3) + +inst_512: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x5, x1, 227*XLEN/8, x3) + +inst_513: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x33333333, x1, 228*XLEN/8, x3) + +inst_514: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x66666666, x1, 229*XLEN/8, x3) + +inst_515: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, -0xb504, x1, 230*XLEN/8, x3) + +inst_516: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0xb504, x1, 231*XLEN/8, x3) + +inst_517: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x2, x1, 232*XLEN/8, x3) + +inst_518: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x55555554, x1, 233*XLEN/8, x3) + +inst_519: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x0, x1, 234*XLEN/8, x3) + +inst_520: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x4, x1, 235*XLEN/8, x3) + +inst_521: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x33333332, x1, 236*XLEN/8, x3) + +inst_522: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x66666665, x1, 237*XLEN/8, x3) + +inst_523: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0xb503, x1, 238*XLEN/8, x3) + +inst_524: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x55555556, x1, 239*XLEN/8, x3) + +inst_525: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, -0x55555555, x1, 240*XLEN/8, x3) + +inst_526: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x6, x1, 241*XLEN/8, x3) + +inst_527: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x33333334, x1, 242*XLEN/8, x3) + +inst_528: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0x66666667, x1, 243*XLEN/8, x3) + +inst_529: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, -0xb503, x1, 244*XLEN/8, x3) + +inst_530: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x66666665, 0xb505, x1, 245*XLEN/8, x3) + +inst_531: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x3, x1, 246*XLEN/8, x3) + +inst_532: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x55555555, x1, 247*XLEN/8, x3) + +inst_533: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, -0x55555556, x1, 248*XLEN/8, x3) + +inst_534: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x5, x1, 249*XLEN/8, x3) + +inst_535: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x33333333, x1, 250*XLEN/8, x3) + +inst_536: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x66666666, x1, 251*XLEN/8, x3) + +inst_537: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, -0xb504, x1, 252*XLEN/8, x3) + +inst_538: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0xb504, x1, 253*XLEN/8, x3) + +inst_539: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x2, x1, 254*XLEN/8, x3) + +inst_540: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x55555554, x1, 255*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_541: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x0, x1, 0*XLEN/8, x3) + +inst_542: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x4, x1, 1*XLEN/8, x3) + +inst_543: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x33333332, x1, 2*XLEN/8, x3) + +inst_544: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x66666665, x1, 3*XLEN/8, x3) + +inst_545: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0xb503, x1, 4*XLEN/8, x3) + +inst_546: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x55555556, x1, 5*XLEN/8, x3) + +inst_547: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, -0x55555555, x1, 6*XLEN/8, x3) + +inst_548: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x6, x1, 7*XLEN/8, x3) + +inst_549: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x33333334, x1, 8*XLEN/8, x3) + +inst_550: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0x66666667, x1, 9*XLEN/8, x3) + +inst_551: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, -0xb503, x1, 10*XLEN/8, x3) + +inst_552: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb503, 0xb505, x1, 11*XLEN/8, x3) + +inst_553: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x3, x1, 12*XLEN/8, x3) + +inst_554: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x55555555, x1, 13*XLEN/8, x3) + +inst_555: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, -0x55555556, x1, 14*XLEN/8, x3) + +inst_556: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x5, x1, 15*XLEN/8, x3) + +inst_557: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x33333333, x1, 16*XLEN/8, x3) + +inst_558: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x66666666, x1, 17*XLEN/8, x3) + +inst_559: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, -0xb504, x1, 18*XLEN/8, x3) + +inst_560: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0xb504, x1, 19*XLEN/8, x3) + +inst_561: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x2, x1, 20*XLEN/8, x3) + +inst_562: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x55555554, x1, 21*XLEN/8, x3) + +inst_563: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x0, x1, 22*XLEN/8, x3) + +inst_564: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x4, x1, 23*XLEN/8, x3) + +inst_565: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x33333332, x1, 24*XLEN/8, x3) + +inst_566: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x66666665, x1, 25*XLEN/8, x3) + +inst_567: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0xb503, x1, 26*XLEN/8, x3) + +inst_568: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x55555556, x1, 27*XLEN/8, x3) + +inst_569: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, -0x55555555, x1, 28*XLEN/8, x3) + +inst_570: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x6, x1, 29*XLEN/8, x3) + +inst_571: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x33333334, x1, 30*XLEN/8, x3) + +inst_572: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0x66666667, x1, 31*XLEN/8, x3) + +inst_573: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, -0xb503, x1, 32*XLEN/8, x3) + +inst_574: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x55555556, 0xb505, x1, 33*XLEN/8, x3) + +inst_575: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x3, x1, 34*XLEN/8, x3) + +inst_576: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x55555555, x1, 35*XLEN/8, x3) + +inst_577: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, -0x55555556, x1, 36*XLEN/8, x3) + +inst_578: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x5, x1, 37*XLEN/8, x3) + +inst_579: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x33333333, x1, 38*XLEN/8, x3) + +inst_580: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x66666666, x1, 39*XLEN/8, x3) + +inst_581: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, -0xb504, x1, 40*XLEN/8, x3) + +inst_582: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0xb504, x1, 41*XLEN/8, x3) + +inst_583: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x2, x1, 42*XLEN/8, x3) + +inst_584: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x55555554, x1, 43*XLEN/8, x3) + +inst_585: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x0, x1, 44*XLEN/8, x3) + +inst_586: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x4, x1, 45*XLEN/8, x3) + +inst_587: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x33333332, x1, 46*XLEN/8, x3) + +inst_588: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x66666665, x1, 47*XLEN/8, x3) + +inst_589: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0xb503, x1, 48*XLEN/8, x3) + +inst_590: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x55555555, 0x55555556, x1, 49*XLEN/8, x3) + +inst_591: +// rs1_val < 0 and rs2_val < 0, rs1_val == rs2_val, rs1_val == -16777217, rs2_val == -16777217 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x1000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1000001, -0x1000001, x1, 50*XLEN/8, x3) + +inst_592: +// rs2_val == -2, rs1_val == 4 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0x2, x1, 51*XLEN/8, x3) + +inst_593: +// rs2_val == -8388609, rs1_val == 262144 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:-0x800001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000, -0x800001, x1, 52*XLEN/8, x3) +#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_x4_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_1: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 53*((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/Zimop/src/mop.rr.4-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.4-01.S new file mode 100644 index 000000000..bd2b9bcd6 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.4-01.S @@ -0,0 +1,3052 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.4 instruction of the RISC-V RV32Zimop extension for the mop.rr.4 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.4) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x26, rs2==x26, rd==x26, rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0 +// opcode: mop.rr.4 ; op1:x26; op2:x26; dest:x26; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x26, x26, x26, 0, 0x66666666, 0x66666666, x3, 0*XLEN/8, x10) + +inst_1: +// rs1 == rs2 != rd, rs1==x21, rs2==x21, rd==x29, rs1_val < 0 and rs2_val < 0, rs1_val == -268435457 +// opcode: mop.rr.4 ; op1:x21; op2:x21; dest:x29; op1val:-0x10000001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.4, x29, x21, x21, 0, -0x10000001, -0x10000001, x3, 1*XLEN/8, x10) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x27, rs2==x25, rd==x20, rs1_val < 0 and rs2_val > 0, rs1_val == -262145, rs2_val == 2048 +// opcode: mop.rr.4 ; op1:x27; op2:x25; dest:x20; op1val:-0x40001; op2val:0x800 +TEST_RR_OP(mop.rr.4, x20, x27, x25, 0, -0x40001, 0x800, x3, 2*XLEN/8, x10) + +inst_3: +// rs2 == rd != rs1, rs1==x2, rs2==x13, rd==x13, rs1_val == (-2**(xlen-1)), rs2_val == 8192, rs1_val == -2147483648 +// opcode: mop.rr.4 ; op1:x2; op2:x13; dest:x13; op1val:-0x80000000; op2val:0x2000 +TEST_RR_OP(mop.rr.4, x13, x2, x13, 0, -0x80000000, 0x2000, x3, 3*XLEN/8, x10) + +inst_4: +// rs1 == rd != rs2, rs1==x16, rs2==x14, rd==x16, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs2_val == 32768, rs1_val == 2147483647 +// opcode: mop.rr.4 ; op1:x16; op2:x14; dest:x16; op1val:0x7fffffff; op2val:0x8000 +TEST_RR_OP(mop.rr.4, x16, x16, x14, 0, 0x7fffffff, 0x8000, x3, 4*XLEN/8, x10) + +inst_5: +// rs1==x11, rs2==x29, rd==x12, rs1_val == 0, rs1_val==0 and rs2_val==-46340 +// opcode: mop.rr.4 ; op1:x11; op2:x29; dest:x12; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x12, x11, x29, 0, 0x0, -0xb504, x3, 5*XLEN/8, x10) + +inst_6: +// rs1==x12, rs2==x18, rd==x22, rs1_val == 1, rs2_val == 4194304 +// opcode: mop.rr.4 ; op1:x12; op2:x18; dest:x22; op1val:0x1; op2val:0x400000 +TEST_RR_OP(mop.rr.4, x22, x12, x18, 0, 0x1, 0x400000, x3, 6*XLEN/8, x10) + +inst_7: +// rs1==x6, rs2==x24, rd==x11, rs2_val == -2, rs1_val == rs2_val, rs1_val == -2 +// opcode: mop.rr.4 ; op1:x6; op2:x24; dest:x11; op1val:-0x2; op2val:-0x2 +TEST_RR_OP(mop.rr.4, x11, x6, x24, 0, -0x2, -0x2, x3, 7*XLEN/8, x10) + +inst_8: +// rs1==x22, rs2==x1, rd==x27, rs2_val == -3, rs1_val == -8388609 +// opcode: mop.rr.4 ; op1:x22; op2:x1; dest:x27; op1val:-0x800001; op2val:-0x3 +TEST_RR_OP(mop.rr.4, x27, x22, x1, 0, -0x800001, -0x3, x3, 8*XLEN/8, x10) + +inst_9: +// rs1==x8, rs2==x20, rd==x9, rs2_val == -5, +// opcode: mop.rr.4 ; op1:x8; op2:x20; dest:x9; op1val:0xb504; op2val:-0x5 +TEST_RR_OP(mop.rr.4, x9, x8, x20, 0, 0xb504, -0x5, x3, 9*XLEN/8, x10) + +inst_10: +// rs1==x5, rs2==x17, rd==x30, rs2_val == -9, +// opcode: mop.rr.4 ; op1:x5; op2:x17; dest:x30; op1val:-0xb504; op2val:-0x9 +TEST_RR_OP(mop.rr.4, x30, x5, x17, 0, -0xb504, -0x9, x3, 10*XLEN/8, x10) + +inst_11: +// rs1==x7, rs2==x11, rd==x6, rs2_val == -17, +// opcode: mop.rr.4 ; op1:x7; op2:x11; dest:x6; op1val:-0x80000000; op2val:-0x11 +TEST_RR_OP(mop.rr.4, x6, x7, x11, 0, -0x80000000, -0x11, x3, 11*XLEN/8, x10) + +inst_12: +// rs1==x23, rs2==x4, rd==x2, rs2_val == -33, rs1_val == 64 +// opcode: mop.rr.4 ; op1:x23; op2:x4; dest:x2; op1val:0x40; op2val:-0x21 +TEST_RR_OP(mop.rr.4, x2, x23, x4, 0, 0x40, -0x21, x3, 12*XLEN/8, x10) + +inst_13: +// rs1==x15, rs2==x19, rd==x24, rs2_val == -65, +// opcode: mop.rr.4 ; op1:x15; op2:x19; dest:x24; op1val:0x3fffffff; op2val:-0x41 +TEST_RR_OP(mop.rr.4, x24, x15, x19, 0, 0x3fffffff, -0x41, x3, 13*XLEN/8, x12) +RVTEST_SIGBASE(x11,signature_x11_0) + +inst_14: +// rs1==x14, rs2==x15, rd==x4, rs2_val == -129, +// opcode: mop.rr.4 ; op1:x14; op2:x15; dest:x4; op1val:-0x10000001; op2val:-0x81 +TEST_RR_OP(mop.rr.4, x4, x14, x15, 0, -0x10000001, -0x81, x11, 0*XLEN/8, x12) + +inst_15: +// rs1==x20, rs2==x6, rd==x15, rs2_val == -257, +// opcode: mop.rr.4 ; op1:x20; op2:x6; dest:x15; op1val:-0x80000000; op2val:-0x101 +TEST_RR_OP(mop.rr.4, x15, x20, x6, 0, -0x80000000, -0x101, x11, 1*XLEN/8, x12) + +inst_16: +// rs1==x19, rs2==x5, rd==x23, rs2_val == -513, rs1_val == -134217729 +// opcode: mop.rr.4 ; op1:x19; op2:x5; dest:x23; op1val:-0x8000001; op2val:-0x201 +TEST_RR_OP(mop.rr.4, x23, x19, x5, 0, -0x8000001, -0x201, x11, 2*XLEN/8, x12) + +inst_17: +// rs1==x30, rs2==x3, rd==x18, rs2_val == -1025, rs1_val == -131073 +// opcode: mop.rr.4 ; op1:x30; op2:x3; dest:x18; op1val:-0x20001; op2val:-0x401 +TEST_RR_OP(mop.rr.4, x18, x30, x3, 0, -0x20001, -0x401, x11, 3*XLEN/8, x12) + +inst_18: +// rs1==x17, rs2==x27, rd==x8, rs2_val == -2049, rs1_val == 4194304 +// opcode: mop.rr.4 ; op1:x17; op2:x27; dest:x8; op1val:0x400000; op2val:-0x801 +TEST_RR_OP(mop.rr.4, x8, x17, x27, 0, 0x400000, -0x801, x11, 4*XLEN/8, x12) + +inst_19: +// rs1==x10, rs2==x28, rd==x31, rs2_val == -4097, +// opcode: mop.rr.4 ; op1:x10; op2:x28; dest:x31; op1val:0x55555556; op2val:-0x1001 +TEST_RR_OP(mop.rr.4, x31, x10, x28, 0, 0x55555556, -0x1001, x11, 5*XLEN/8, x12) + +inst_20: +// rs1==x31, rs2==x0, rd==x28, rs2_val == -8193, +// opcode: mop.rr.4 ; op1:x31; op2:x0; dest:x28; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.4, x28, x31, x0, 0, 0x33333333, 0x0, x11, 6*XLEN/8, x12) + +inst_21: +// rs1==x4, rs2==x16, rd==x3, rs2_val == -16385, rs1_val == 4 +// opcode: mop.rr.4 ; op1:x4; op2:x16; dest:x3; op1val:0x4; op2val:-0x4001 +TEST_RR_OP(mop.rr.4, x3, x4, x16, 0, 0x4, -0x4001, x11, 7*XLEN/8, x12) + +inst_22: +// rs1==x28, rs2==x2, rd==x17, rs2_val == -32769, +// opcode: mop.rr.4 ; op1:x28; op2:x2; dest:x17; op1val:-0x55555555; op2val:-0x8001 +TEST_RR_OP(mop.rr.4, x17, x28, x2, 0, -0x55555555, -0x8001, x11, 8*XLEN/8, x12) + +inst_23: +// rs1==x29, rs2==x9, rd==x5, rs2_val == -65537, +// opcode: mop.rr.4 ; op1:x29; op2:x9; dest:x5; op1val:0x0; op2val:-0x10001 +TEST_RR_OP(mop.rr.4, x5, x29, x9, 0, 0x0, -0x10001, x11, 9*XLEN/8, x12) + +inst_24: +// rs1==x24, rs2==x31, rd==x19, rs2_val == -131073, +// opcode: mop.rr.4 ; op1:x24; op2:x31; dest:x19; op1val:0x66666666; op2val:-0x20001 +TEST_RR_OP(mop.rr.4, x19, x24, x31, 0, 0x66666666, -0x20001, x11, 10*XLEN/8, x12) + +inst_25: +// rs1==x3, rs2==x30, rd==x25, rs2_val == -262145, rs1_val == -1025 +// opcode: mop.rr.4 ; op1:x3; op2:x30; dest:x25; op1val:-0x401; op2val:-0x40001 +TEST_RR_OP(mop.rr.4, x25, x3, x30, 0, -0x401, -0x40001, x11, 11*XLEN/8, x12) + +inst_26: +// rs1==x1, rs2==x23, rd==x14, rs2_val == -524289, +// opcode: mop.rr.4 ; op1:x1; op2:x23; dest:x14; op1val:0x66666665; op2val:-0x80001 +TEST_RR_OP(mop.rr.4, x14, x1, x23, 0, 0x66666665, -0x80001, x11, 12*XLEN/8, x12) + +inst_27: +// rs1==x25, rs2==x8, rd==x1, rs2_val == -1048577, +// opcode: mop.rr.4 ; op1:x25; op2:x8; dest:x1; op1val:-0x4; op2val:-0x100001 +TEST_RR_OP(mop.rr.4, x1, x25, x8, 0, -0x4, -0x100001, x11, 13*XLEN/8, x12) + +inst_28: +// rs1==x18, rs2==x22, rd==x7, rs2_val == -2097153, +// opcode: mop.rr.4 ; op1:x18; op2:x22; dest:x7; op1val:0x6; op2val:-0x200001 +TEST_RR_OP(mop.rr.4, x7, x18, x22, 0, 0x6, -0x200001, x11, 14*XLEN/8, x12) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_29: +// rs1==x9, rs2==x12, rd==x21, rs2_val == -4194305, rs1_val == 262144 +// opcode: mop.rr.4 ; op1:x9; op2:x12; dest:x21; op1val:0x40000; op2val:-0x400001 +TEST_RR_OP(mop.rr.4, x21, x9, x12, 0, 0x40000, -0x400001, x1, 0*XLEN/8, x2) + +inst_30: +// rs1==x13, rs2==x7, rd==x10, rs2_val == -8388609, +// opcode: mop.rr.4 ; op1:x13; op2:x7; dest:x10; op1val:0x0; op2val:-0x800001 +TEST_RR_OP(mop.rr.4, x10, x13, x7, 0, 0x0, -0x800001, x1, 1*XLEN/8, x2) + +inst_31: +// rs1==x0, rs2_val == -16777217, +// opcode: mop.rr.4 ; op1:x0; op2:x13; dest:x12; op1val:0x0; op2val:-0x1000001 +TEST_RR_OP(mop.rr.4, x12, x0, x13, 0, 0x0, -0x1000001, x1, 2*XLEN/8, x2) + +inst_32: +// rs2==x10, rs2_val == -33554433, rs1_val == 16 +// opcode: mop.rr.4 ; op1:x7; op2:x10; dest:x30; op1val:0x10; op2val:-0x2000001 +TEST_RR_OP(mop.rr.4, x30, x7, x10, 0, 0x10, -0x2000001, x1, 3*XLEN/8, x2) + +inst_33: +// rd==x0, rs2_val == -67108865, +// opcode: mop.rr.4 ; op1:x15; op2:x14; dest:x0; op1val:0x7fffffff; op2val:-0x4000001 +TEST_RR_OP(mop.rr.4, x0, x15, x14, 0, 0x7fffffff, -0x4000001, x1, 4*XLEN/8, x2) + +inst_34: +// rs2_val == -134217729, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x8000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0x8000001, x1, 5*XLEN/8, x2) + +inst_35: +// rs2_val == -268435457, rs1_val == -5 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x10000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5, -0x10000001, x1, 6*XLEN/8, x2) + +inst_36: +// rs2_val == -536870913, rs1_val == -129 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x20000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x81, -0x20000001, x1, 7*XLEN/8, x2) + +inst_37: +// rs2_val == -1073741825, rs1_val == 65536 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000, -0x40000001, x1, 8*XLEN/8, x2) + +inst_38: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x7fffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x7fffffff, x1, 9*XLEN/8, x2) + +inst_39: +// rs1_val == -3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x200001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x3, -0x200001, x1, 10*XLEN/8, x2) + +inst_40: +// rs1_val == -9, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x80001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x9, -0x80001, x1, 11*XLEN/8, x2) + +inst_41: +// rs1_val == -17, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x11, 0x55555554, x1, 12*XLEN/8, x2) + +inst_42: +// rs1_val == -33, rs2_val == 0 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x21, 0x0, x1, 13*XLEN/8, x2) + +inst_43: +// rs1_val == -65, rs2_val == 1073741824 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x40000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x41, 0x40000000, x1, 14*XLEN/8, x2) + +inst_44: +// rs1_val == -257, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x9 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x101, 0x9, x1, 15*XLEN/8, x2) + +inst_45: +// rs1_val == -513, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x201, -0x5, x1, 16*XLEN/8, x2) + +inst_46: +// rs1_val == -2049, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x801, 0x0, x1, 17*XLEN/8, x2) + +inst_47: +// rs1_val == -4097, rs2_val == 524288 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x80000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1001, 0x80000, x1, 18*XLEN/8, x2) + +inst_48: +// rs1_val == -8193, rs2_val == 262144 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x40000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2001, 0x40000, x1, 19*XLEN/8, x2) + +inst_49: +// rs1_val == -16385, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4001, -0x10000001, x1, 20*XLEN/8, x2) + +inst_50: +// rs1_val == -32769, rs2_val == 131072 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x20000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8001, 0x20000, x1, 21*XLEN/8, x2) + +inst_51: +// rs1_val == -65537, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x7fffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10001, 0x7fffffff, x1, 22*XLEN/8, x2) + +inst_52: +// rs1_val == -524289, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x80001, 0x3, x1, 23*XLEN/8, x2) + +inst_53: +// rs1_val == -1048577, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x100001, -0x4, x1, 24*XLEN/8, x2) + +inst_54: +// rs1_val == -2097153, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x200001, 0x0, x1, 25*XLEN/8, x2) + +inst_55: +// rs1_val == -4194305, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x40000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x400001, 0x40000000, x1, 26*XLEN/8, x2) + +inst_56: +// rs1_val == -16777217, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x3fffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1000001, 0x3fffffff, x1, 27*XLEN/8, x2) + +inst_57: +// rs1_val == -33554433, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2000001, -0x20001, x1, 28*XLEN/8, x2) + +inst_58: +// rs1_val == -67108865, rs2_val == 1024 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x400 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000001, 0x400, x1, 29*XLEN/8, x2) + +inst_59: +// rs1_val == -536870913, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x8001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x20000001, -0x8001, x1, 30*XLEN/8, x2) + +inst_60: +// rs1_val == -1073741825, rs2_val == 4 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40000001, 0x4, x1, 31*XLEN/8, x2) + +inst_61: +// rs2_val == 1, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x1 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000, 0x1, x1, 32*XLEN/8, x2) + +inst_62: +// rs2_val == 2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2000001, 0x2, x1, 33*XLEN/8, x2) + +inst_63: +// rs2_val == 8, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x8 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x201, 0x8, x1, 34*XLEN/8, x2) + +inst_64: +// rs2_val == 16, rs1_val == 32768 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x10 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000, 0x10, x1, 35*XLEN/8, x2) + +inst_65: +// rs2_val == 32, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x20 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x20, x1, 36*XLEN/8, x2) + +inst_66: +// rs2_val == 64, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x40 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40001, 0x40, x1, 37*XLEN/8, x2) + +inst_67: +// rs2_val == 128, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x80 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8000001, 0x80, x1, 38*XLEN/8, x2) + +inst_68: +// rs2_val == 256, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x100 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x81, 0x100, x1, 39*XLEN/8, x2) + +inst_69: +// rs2_val == 512, rs1_val == 536870912 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x200 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20000000, 0x200, x1, 40*XLEN/8, x2) + +inst_70: +// rs2_val == 4096, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:0x1000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x20001, 0x1000, x1, 41*XLEN/8, x2) + +inst_71: +// rs2_val == 16384, rs1_val == 8388608 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x4000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800000, 0x4000, x1, 42*XLEN/8, x2) + +inst_72: +// rs2_val == 65536, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x10000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x41, 0x10000, x1, 43*XLEN/8, x2) + +inst_73: +// rs2_val == 1048576, rs1_val == 2048 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x100000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800, 0x100000, x1, 44*XLEN/8, x2) + +inst_74: +// rs2_val == 2097152, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x200000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40000001, 0x200000, x1, 45*XLEN/8, x2) + +inst_75: +// rs2_val == 8388608, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x800000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x9, 0x800000, x1, 46*XLEN/8, x2) + +inst_76: +// rs2_val == 16777216, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x1000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2001, 0x1000000, x1, 47*XLEN/8, x2) + +inst_77: +// rs2_val == 33554432, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x2000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x100001, 0x2000000, x1, 48*XLEN/8, x2) + +inst_78: +// rs2_val == 67108864, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x9; op2val:0x4000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x9, 0x4000000, x1, 49*XLEN/8, x2) + +inst_79: +// rs2_val == 134217728, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x8000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x8000000, x1, 50*XLEN/8, x2) + +inst_80: +// rs2_val == 268435456, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x10000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800000, 0x10000000, x1, 51*XLEN/8, x2) + +inst_81: +// rs2_val == 536870912, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x20000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800, 0x20000000, x1, 52*XLEN/8, x2) + +inst_82: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:-0x80000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40000, -0x80000000, x1, 53*XLEN/8, x2) + +inst_83: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x3, x1, 54*XLEN/8, x2) + +inst_84: +// rs1_val == 2, rs1_val==2 and rs2_val==6 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x6, x1, 55*XLEN/8, x2) + +inst_85: +// rs1_val == 8, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x200 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8, 0x200, x1, 56*XLEN/8, x2) + +inst_86: +// rs1_val == 32, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x40000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20, 0x40000, x1, 57*XLEN/8, x2) + +inst_87: +// rs1_val == 128, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80, 0x66666666, x1, 58*XLEN/8, x2) + +inst_88: +// rs1_val == 256, rs2_val == -1431655766 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100, -0x55555556, x1, 59*XLEN/8, x2) + +inst_89: +// rs1_val == 512, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:-0x40000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200, -0x40000000, x1, 60*XLEN/8, x2) + +inst_90: +// rs1_val == 1024, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x400, 0x5, x1, 61*XLEN/8, x2) + +inst_91: +// rs1_val == 4096, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:0x10000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000, 0x10000, x1, 62*XLEN/8, x2) + +inst_92: +// rs1_val == 8192, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:0x7 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000, 0x7, x1, 63*XLEN/8, x2) + +inst_93: +// rs1_val == 16384, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x2000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000, -0x2000001, x1, 64*XLEN/8, x2) + +inst_94: +// rs1_val == 131072, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:-0x8001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20000, -0x8001, x1, 65*XLEN/8, x2) + +inst_95: +// rs1_val == 524288, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80000, 0x66666666, x1, 66*XLEN/8, x2) + +inst_96: +// rs1_val == 1048576, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100000, 0x33333333, x1, 67*XLEN/8, x2) + +inst_97: +// rs1_val == 2097152, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:-0x8001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200000, -0x8001, x1, 68*XLEN/8, x2) + +inst_98: +// rs1_val == 16777216, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000000, 0x0, x1, 69*XLEN/8, x2) + +inst_99: +// rs1_val == 33554432, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x7fffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000000, 0x7fffffff, x1, 70*XLEN/8, x2) + +inst_100: +// rs1_val == 67108864, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000000, 0x4, x1, 71*XLEN/8, x2) + +inst_101: +// rs1_val == 134217728, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000000, -0x6, x1, 72*XLEN/8, x2) + +inst_102: +// rs1_val == 268435456, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000000, 0x0, x1, 73*XLEN/8, x2) + +inst_103: +// rs1_val == 1073741824, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40000000, 0x10000000, x1, 74*XLEN/8, x2) + +inst_104: +// rs1_val==3 and rs2_val==1431655765, rs2_val == 1431655765 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x55555555, x1, 75*XLEN/8, x2) + +inst_105: +// rs1_val==3 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0x55555556, x1, 76*XLEN/8, x2) + +inst_106: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x5, x1, 77*XLEN/8, x2) + +inst_107: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x33333333, x1, 78*XLEN/8, x2) + +inst_108: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x66666666, x1, 79*XLEN/8, x2) + +inst_109: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0xb504, x1, 80*XLEN/8, x2) + +inst_110: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0xb504, x1, 81*XLEN/8, x2) + +inst_111: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x2, x1, 82*XLEN/8, x2) + +inst_112: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x55555554, x1, 83*XLEN/8, x2) + +inst_113: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x0, x1, 84*XLEN/8, x2) + +inst_114: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x4, x1, 85*XLEN/8, x2) + +inst_115: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x33333332, x1, 86*XLEN/8, x2) + +inst_116: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x66666665, x1, 87*XLEN/8, x2) + +inst_117: +// rs1_val == 1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x40001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, -0x40001, x1, 88*XLEN/8, x2) + +inst_118: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0xb503, x1, 89*XLEN/8, x2) + +inst_119: +// rs1_val == -1431655766, rs1_val==-1431655766 and rs2_val==0 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x0, x1, 90*XLEN/8, x2) + +inst_120: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x55555556, x1, 91*XLEN/8, x2) + +inst_121: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0x55555555, x1, 92*XLEN/8, x2) + +inst_122: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x6, x1, 93*XLEN/8, x2) + +inst_123: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x33333334, x1, 94*XLEN/8, x2) + +inst_124: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x66666667, x1, 95*XLEN/8, x2) + +inst_125: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0xb503, x1, 96*XLEN/8, x2) + +inst_126: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0xb505, x1, 97*XLEN/8, x2) + +inst_127: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x3, x1, 98*XLEN/8, x2) + +inst_128: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x55555555, x1, 99*XLEN/8, x2) + +inst_129: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, -0x55555556, x1, 100*XLEN/8, x2) + +inst_130: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x5, x1, 101*XLEN/8, x2) + +inst_131: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x33333333, x1, 102*XLEN/8, x2) + +inst_132: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x66666666, x1, 103*XLEN/8, x2) + +inst_133: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, -0xb504, x1, 104*XLEN/8, x2) + +inst_134: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0xb504, x1, 105*XLEN/8, x2) + +inst_135: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x2, x1, 106*XLEN/8, x2) + +inst_136: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x55555554, x1, 107*XLEN/8, x2) + +inst_137: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x0, x1, 108*XLEN/8, x2) + +inst_138: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x4, x1, 109*XLEN/8, x2) + +inst_139: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x33333332, x1, 110*XLEN/8, x2) + +inst_140: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x66666665, x1, 111*XLEN/8, x2) + +inst_141: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0xb503, x1, 112*XLEN/8, x2) + +inst_142: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x55555556, x1, 113*XLEN/8, x2) + +inst_143: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, -0x55555555, x1, 114*XLEN/8, x2) + +inst_144: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x6, x1, 115*XLEN/8, x2) + +inst_145: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x33333334, x1, 116*XLEN/8, x2) + +inst_146: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0x66666667, x1, 117*XLEN/8, x2) + +inst_147: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, -0xb503, x1, 118*XLEN/8, x2) + +inst_148: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555555, 0xb505, x1, 119*XLEN/8, x2) + +inst_149: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x3, x1, 120*XLEN/8, x2) + +inst_150: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x55555555, x1, 121*XLEN/8, x2) + +inst_151: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, -0x55555556, x1, 122*XLEN/8, x2) + +inst_152: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x5, x1, 123*XLEN/8, x2) + +inst_153: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x33333333, x1, 124*XLEN/8, x2) + +inst_154: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x66666666, x1, 125*XLEN/8, x2) + +inst_155: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, -0xb504, x1, 126*XLEN/8, x2) + +inst_156: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0xb504, x1, 127*XLEN/8, x2) + +inst_157: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x2, x1, 128*XLEN/8, x2) + +inst_158: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x55555554, x1, 129*XLEN/8, x2) + +inst_159: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x4, x1, 130*XLEN/8, x2) + +inst_160: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x33333332, x1, 131*XLEN/8, x2) + +inst_161: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x66666665, x1, 132*XLEN/8, x2) + +inst_162: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0xb503, x1, 133*XLEN/8, x2) + +inst_163: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x55555556, x1, 134*XLEN/8, x2) + +inst_164: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, -0x55555555, x1, 135*XLEN/8, x2) + +inst_165: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x6, x1, 136*XLEN/8, x2) + +inst_166: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x33333334, x1, 137*XLEN/8, x2) + +inst_167: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0x66666667, x1, 138*XLEN/8, x2) + +inst_168: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, -0xb503, x1, 139*XLEN/8, x2) + +inst_169: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555556, 0xb505, x1, 140*XLEN/8, x2) + +inst_170: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x3, x1, 141*XLEN/8, x2) + +inst_171: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x55555555, x1, 142*XLEN/8, x2) + +inst_172: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0x55555556, x1, 143*XLEN/8, x2) + +inst_173: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x5, x1, 144*XLEN/8, x2) + +inst_174: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x33333333, x1, 145*XLEN/8, x2) + +inst_175: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x66666666, x1, 146*XLEN/8, x2) + +inst_176: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0xb504, x1, 147*XLEN/8, x2) + +inst_177: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0xb504, x1, 148*XLEN/8, x2) + +inst_178: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x2, x1, 149*XLEN/8, x2) + +inst_179: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x55555554, x1, 150*XLEN/8, x2) + +inst_180: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x0, x1, 151*XLEN/8, x2) + +inst_181: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x4, x1, 152*XLEN/8, x2) + +inst_182: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x33333332, x1, 153*XLEN/8, x2) + +inst_183: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x66666665, x1, 154*XLEN/8, x2) + +inst_184: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0xb503, x1, 155*XLEN/8, x2) + +inst_185: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x55555556, x1, 156*XLEN/8, x2) + +inst_186: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0x55555555, x1, 157*XLEN/8, x2) + +inst_187: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x6, x1, 158*XLEN/8, x2) + +inst_188: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x33333334, x1, 159*XLEN/8, x2) + +inst_189: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x66666667, x1, 160*XLEN/8, x2) + +inst_190: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0xb503, x1, 161*XLEN/8, x2) + +inst_191: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0xb505, x1, 162*XLEN/8, x2) + +inst_192: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x3, x1, 163*XLEN/8, x2) + +inst_193: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x55555555, x1, 164*XLEN/8, x2) + +inst_194: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, -0x55555556, x1, 165*XLEN/8, x2) + +inst_195: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x5, x1, 166*XLEN/8, x2) + +inst_196: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x33333333, x1, 167*XLEN/8, x2) + +inst_197: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x66666666, x1, 168*XLEN/8, x2) + +inst_198: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, -0xb504, x1, 169*XLEN/8, x2) + +inst_199: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0xb504, x1, 170*XLEN/8, x2) + +inst_200: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x2, x1, 171*XLEN/8, x2) + +inst_201: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x55555554, x1, 172*XLEN/8, x2) + +inst_202: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x0, x1, 173*XLEN/8, x2) + +inst_203: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x4, x1, 174*XLEN/8, x2) + +inst_204: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x33333332, x1, 175*XLEN/8, x2) + +inst_205: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x66666665, x1, 176*XLEN/8, x2) + +inst_206: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0xb503, x1, 177*XLEN/8, x2) + +inst_207: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x55555556, x1, 178*XLEN/8, x2) + +inst_208: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, -0x55555555, x1, 179*XLEN/8, x2) + +inst_209: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x6, x1, 180*XLEN/8, x2) + +inst_210: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x33333334, x1, 181*XLEN/8, x2) + +inst_211: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0x66666667, x1, 182*XLEN/8, x2) + +inst_212: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, -0xb503, x1, 183*XLEN/8, x2) + +inst_213: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, 0xb505, x1, 184*XLEN/8, x2) + +inst_214: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x3, x1, 185*XLEN/8, x2) + +inst_215: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x55555555, x1, 186*XLEN/8, x2) + +inst_216: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, -0x55555556, x1, 187*XLEN/8, x2) + +inst_217: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x5, x1, 188*XLEN/8, x2) + +inst_218: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x33333333, x1, 189*XLEN/8, x2) + +inst_219: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x66666666, x1, 190*XLEN/8, x2) + +inst_220: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, -0xb504, x1, 191*XLEN/8, x2) + +inst_221: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0xb504, x1, 192*XLEN/8, x2) + +inst_222: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x2, x1, 193*XLEN/8, x2) + +inst_223: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x55555554, x1, 194*XLEN/8, x2) + +inst_224: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x0, x1, 195*XLEN/8, x2) + +inst_225: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x4, x1, 196*XLEN/8, x2) + +inst_226: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x33333332, x1, 197*XLEN/8, x2) + +inst_227: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x66666665, x1, 198*XLEN/8, x2) + +inst_228: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0xb503, x1, 199*XLEN/8, x2) + +inst_229: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x55555556, x1, 200*XLEN/8, x2) + +inst_230: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, -0x55555555, x1, 201*XLEN/8, x2) + +inst_231: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x6, x1, 202*XLEN/8, x2) + +inst_232: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x33333334, x1, 203*XLEN/8, x2) + +inst_233: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0x66666667, x1, 204*XLEN/8, x2) + +inst_234: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, -0xb503, x1, 205*XLEN/8, x2) + +inst_235: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666666, 0xb505, x1, 206*XLEN/8, x2) + +inst_236: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x3, x1, 207*XLEN/8, x2) + +inst_237: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x55555555, x1, 208*XLEN/8, x2) + +inst_238: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, -0x55555556, x1, 209*XLEN/8, x2) + +inst_239: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x5, x1, 210*XLEN/8, x2) + +inst_240: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x33333333, x1, 211*XLEN/8, x2) + +inst_241: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x66666666, x1, 212*XLEN/8, x2) + +inst_242: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, -0xb504, x1, 213*XLEN/8, x2) + +inst_243: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0xb504, x1, 214*XLEN/8, x2) + +inst_244: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x2, x1, 215*XLEN/8, x2) + +inst_245: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x55555554, x1, 216*XLEN/8, x2) + +inst_246: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x0, x1, 217*XLEN/8, x2) + +inst_247: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x4, x1, 218*XLEN/8, x2) + +inst_248: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x33333332, x1, 219*XLEN/8, x2) + +inst_249: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x66666665, x1, 220*XLEN/8, x2) + +inst_250: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0xb503, x1, 221*XLEN/8, x2) + +inst_251: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x55555556, x1, 222*XLEN/8, x2) + +inst_252: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, -0x55555555, x1, 223*XLEN/8, x2) + +inst_253: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x6, x1, 224*XLEN/8, x2) + +inst_254: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x33333334, x1, 225*XLEN/8, x2) + +inst_255: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0x66666667, x1, 226*XLEN/8, x2) + +inst_256: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, -0xb503, x1, 227*XLEN/8, x2) + +inst_257: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, 0xb505, x1, 228*XLEN/8, x2) + +inst_258: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x3, x1, 229*XLEN/8, x2) + +inst_259: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x55555555, x1, 230*XLEN/8, x2) + +inst_260: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, -0x55555556, x1, 231*XLEN/8, x2) + +inst_261: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x5, x1, 232*XLEN/8, x2) + +inst_262: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x33333333, x1, 233*XLEN/8, x2) + +inst_263: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x66666666, x1, 234*XLEN/8, x2) + +inst_264: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, -0xb504, x1, 235*XLEN/8, x2) + +inst_265: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0xb504, x1, 236*XLEN/8, x2) + +inst_266: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x2, x1, 237*XLEN/8, x2) + +inst_267: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x55555554, x1, 238*XLEN/8, x2) + +inst_268: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x0, x1, 239*XLEN/8, x2) + +inst_269: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x4, x1, 240*XLEN/8, x2) + +inst_270: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x33333332, x1, 241*XLEN/8, x2) + +inst_271: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x66666665, x1, 242*XLEN/8, x2) + +inst_272: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0xb503, x1, 243*XLEN/8, x2) + +inst_273: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x55555556, x1, 244*XLEN/8, x2) + +inst_274: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, -0x55555555, x1, 245*XLEN/8, x2) + +inst_275: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x6, x1, 246*XLEN/8, x2) + +inst_276: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x33333334, x1, 247*XLEN/8, x2) + +inst_277: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0x66666667, x1, 248*XLEN/8, x2) + +inst_278: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, -0xb503, x1, 249*XLEN/8, x2) + +inst_279: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504, 0xb505, x1, 250*XLEN/8, x2) + +inst_280: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x3, x1, 251*XLEN/8, x2) + +inst_281: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x55555555, x1, 252*XLEN/8, x2) + +inst_282: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0x55555556, x1, 253*XLEN/8, x2) + +inst_283: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x5, x1, 254*XLEN/8, x2) + +inst_284: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x33333333, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_285: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x66666666, x1, 0*XLEN/8, x2) + +inst_286: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0xb504, x1, 1*XLEN/8, x2) + +inst_287: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0xb504, x1, 2*XLEN/8, x2) + +inst_288: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x2, x1, 3*XLEN/8, x2) + +inst_289: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x55555554, x1, 4*XLEN/8, x2) + +inst_290: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x0, x1, 5*XLEN/8, x2) + +inst_291: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x4, x1, 6*XLEN/8, x2) + +inst_292: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x33333332, x1, 7*XLEN/8, x2) + +inst_293: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x66666665, x1, 8*XLEN/8, x2) + +inst_294: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0xb503, x1, 9*XLEN/8, x2) + +inst_295: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x55555556, x1, 10*XLEN/8, x2) + +inst_296: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0x55555555, x1, 11*XLEN/8, x2) + +inst_297: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x33333334, x1, 12*XLEN/8, x2) + +inst_298: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x66666667, x1, 13*XLEN/8, x2) + +inst_299: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0xb503, x1, 14*XLEN/8, x2) + +inst_300: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0xb505, x1, 15*XLEN/8, x2) + +inst_301: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x3, x1, 16*XLEN/8, x2) + +inst_302: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x55555555, x1, 17*XLEN/8, x2) + +inst_303: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, -0x55555556, x1, 18*XLEN/8, x2) + +inst_304: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x5, x1, 19*XLEN/8, x2) + +inst_305: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x33333333, x1, 20*XLEN/8, x2) + +inst_306: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x66666666, x1, 21*XLEN/8, x2) + +inst_307: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, -0xb504, x1, 22*XLEN/8, x2) + +inst_308: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0xb504, x1, 23*XLEN/8, x2) + +inst_309: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x2, x1, 24*XLEN/8, x2) + +inst_310: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x55555554, x1, 25*XLEN/8, x2) + +inst_311: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x0, x1, 26*XLEN/8, x2) + +inst_312: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x4, x1, 27*XLEN/8, x2) + +inst_313: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x33333332, x1, 28*XLEN/8, x2) + +inst_314: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x66666665, x1, 29*XLEN/8, x2) + +inst_315: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0xb503, x1, 30*XLEN/8, x2) + +inst_316: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x55555556, x1, 31*XLEN/8, x2) + +inst_317: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, -0x55555555, x1, 32*XLEN/8, x2) + +inst_318: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x6, x1, 33*XLEN/8, x2) + +inst_319: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x33333334, x1, 34*XLEN/8, x2) + +inst_320: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0x66666667, x1, 35*XLEN/8, x2) + +inst_321: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, -0xb503, x1, 36*XLEN/8, x2) + +inst_322: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555554, 0xb505, x1, 37*XLEN/8, x2) + +inst_323: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x3, x1, 38*XLEN/8, x2) + +inst_324: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x55555555, x1, 39*XLEN/8, x2) + +inst_325: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0x55555556, x1, 40*XLEN/8, x2) + +inst_326: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x5, x1, 41*XLEN/8, x2) + +inst_327: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x33333333, x1, 42*XLEN/8, x2) + +inst_328: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x66666666, x1, 43*XLEN/8, x2) + +inst_329: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0xb504, x1, 44*XLEN/8, x2) + +inst_330: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x2, x1, 45*XLEN/8, x2) + +inst_331: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, -0x55555555, x1, 46*XLEN/8, x2) + +inst_332: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x6, x1, 47*XLEN/8, x2) + +inst_333: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x33333334, x1, 48*XLEN/8, x2) + +inst_334: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x66666667, x1, 49*XLEN/8, x2) + +inst_335: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, -0xb503, x1, 50*XLEN/8, x2) + +inst_336: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0xb505, x1, 51*XLEN/8, x2) + +inst_337: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x3, x1, 52*XLEN/8, x2) + +inst_338: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x55555555, x1, 53*XLEN/8, x2) + +inst_339: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0x55555556, x1, 54*XLEN/8, x2) + +inst_340: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x5, x1, 55*XLEN/8, x2) + +inst_341: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x33333333, x1, 56*XLEN/8, x2) + +inst_342: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x66666666, x1, 57*XLEN/8, x2) + +inst_343: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0xb504, x1, 58*XLEN/8, x2) + +inst_344: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0xb504, x1, 59*XLEN/8, x2) + +inst_345: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x2, x1, 60*XLEN/8, x2) + +inst_346: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x55555554, x1, 61*XLEN/8, x2) + +inst_347: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x0, x1, 62*XLEN/8, x2) + +inst_348: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x4, x1, 63*XLEN/8, x2) + +inst_349: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x33333332, x1, 64*XLEN/8, x2) + +inst_350: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x66666665, x1, 65*XLEN/8, x2) + +inst_351: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0xb503, x1, 66*XLEN/8, x2) + +inst_352: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x55555556, x1, 67*XLEN/8, x2) + +inst_353: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0x55555555, x1, 68*XLEN/8, x2) + +inst_354: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x6, x1, 69*XLEN/8, x2) + +inst_355: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x33333334, x1, 70*XLEN/8, x2) + +inst_356: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x66666667, x1, 71*XLEN/8, x2) + +inst_357: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0xb503, x1, 72*XLEN/8, x2) + +inst_358: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0xb505, x1, 73*XLEN/8, x2) + +inst_359: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x3, x1, 74*XLEN/8, x2) + +inst_360: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x55555555, x1, 75*XLEN/8, x2) + +inst_361: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, -0x55555556, x1, 76*XLEN/8, x2) + +inst_362: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x5, x1, 77*XLEN/8, x2) + +inst_363: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x33333333, x1, 78*XLEN/8, x2) + +inst_364: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x66666666, x1, 79*XLEN/8, x2) + +inst_365: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, -0xb504, x1, 80*XLEN/8, x2) + +inst_366: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0xb504, x1, 81*XLEN/8, x2) + +inst_367: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x2, x1, 82*XLEN/8, x2) + +inst_368: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x55555554, x1, 83*XLEN/8, x2) + +inst_369: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x0, x1, 84*XLEN/8, x2) + +inst_370: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x4, x1, 85*XLEN/8, x2) + +inst_371: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x33333332, x1, 86*XLEN/8, x2) + +inst_372: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x66666665, x1, 87*XLEN/8, x2) + +inst_373: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0xb503, x1, 88*XLEN/8, x2) + +inst_374: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x55555556, x1, 89*XLEN/8, x2) + +inst_375: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, -0x55555555, x1, 90*XLEN/8, x2) + +inst_376: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x6, x1, 91*XLEN/8, x2) + +inst_377: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x33333334, x1, 92*XLEN/8, x2) + +inst_378: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0x66666667, x1, 93*XLEN/8, x2) + +inst_379: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, -0xb503, x1, 94*XLEN/8, x2) + +inst_380: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333334, 0xb505, x1, 95*XLEN/8, x2) + +inst_381: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x3, x1, 96*XLEN/8, x2) + +inst_382: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x55555555, x1, 97*XLEN/8, x2) + +inst_383: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, -0x55555556, x1, 98*XLEN/8, x2) + +inst_384: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x5, x1, 99*XLEN/8, x2) + +inst_385: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x33333333, x1, 100*XLEN/8, x2) + +inst_386: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x66666666, x1, 101*XLEN/8, x2) + +inst_387: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, -0xb504, x1, 102*XLEN/8, x2) + +inst_388: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0xb504, x1, 103*XLEN/8, x2) + +inst_389: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x2, x1, 104*XLEN/8, x2) + +inst_390: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x55555554, x1, 105*XLEN/8, x2) + +inst_391: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x0, x1, 106*XLEN/8, x2) + +inst_392: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x4, x1, 107*XLEN/8, x2) + +inst_393: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x33333332, x1, 108*XLEN/8, x2) + +inst_394: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x66666665, x1, 109*XLEN/8, x2) + +inst_395: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0xb503, x1, 110*XLEN/8, x2) + +inst_396: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x55555556, x1, 111*XLEN/8, x2) + +inst_397: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, -0x55555555, x1, 112*XLEN/8, x2) + +inst_398: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x6, x1, 113*XLEN/8, x2) + +inst_399: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x33333334, x1, 114*XLEN/8, x2) + +inst_400: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0x66666667, x1, 115*XLEN/8, x2) + +inst_401: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, -0xb503, x1, 116*XLEN/8, x2) + +inst_402: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666667, 0xb505, x1, 117*XLEN/8, x2) + +inst_403: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x3, x1, 118*XLEN/8, x2) + +inst_404: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x55555555, x1, 119*XLEN/8, x2) + +inst_405: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, -0x55555556, x1, 120*XLEN/8, x2) + +inst_406: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x5, x1, 121*XLEN/8, x2) + +inst_407: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x33333333, x1, 122*XLEN/8, x2) + +inst_408: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x66666666, x1, 123*XLEN/8, x2) + +inst_409: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, -0xb504, x1, 124*XLEN/8, x2) + +inst_410: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0xb504, x1, 125*XLEN/8, x2) + +inst_411: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x2, x1, 126*XLEN/8, x2) + +inst_412: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x55555554, x1, 127*XLEN/8, x2) + +inst_413: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x0, x1, 128*XLEN/8, x2) + +inst_414: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x4, x1, 129*XLEN/8, x2) + +inst_415: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x33333332, x1, 130*XLEN/8, x2) + +inst_416: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x66666665, x1, 131*XLEN/8, x2) + +inst_417: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0xb503, x1, 132*XLEN/8, x2) + +inst_418: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x55555556, x1, 133*XLEN/8, x2) + +inst_419: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, -0x55555555, x1, 134*XLEN/8, x2) + +inst_420: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x6, x1, 135*XLEN/8, x2) + +inst_421: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x33333334, x1, 136*XLEN/8, x2) + +inst_422: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0x66666667, x1, 137*XLEN/8, x2) + +inst_423: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, -0xb503, x1, 138*XLEN/8, x2) + +inst_424: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb503, 0xb505, x1, 139*XLEN/8, x2) + +inst_425: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x3, x1, 140*XLEN/8, x2) + +inst_426: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x55555555, x1, 141*XLEN/8, x2) + +inst_427: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, -0x55555556, x1, 142*XLEN/8, x2) + +inst_428: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x5, x1, 143*XLEN/8, x2) + +inst_429: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x33333333, x1, 144*XLEN/8, x2) + +inst_430: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x66666666, x1, 145*XLEN/8, x2) + +inst_431: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, -0xb504, x1, 146*XLEN/8, x2) + +inst_432: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0xb504, x1, 147*XLEN/8, x2) + +inst_433: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x2, x1, 148*XLEN/8, x2) + +inst_434: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x55555554, x1, 149*XLEN/8, x2) + +inst_435: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x0, x1, 150*XLEN/8, x2) + +inst_436: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x4, x1, 151*XLEN/8, x2) + +inst_437: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x33333332, x1, 152*XLEN/8, x2) + +inst_438: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x66666665, x1, 153*XLEN/8, x2) + +inst_439: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0xb503, x1, 154*XLEN/8, x2) + +inst_440: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x55555556, x1, 155*XLEN/8, x2) + +inst_441: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, -0x55555555, x1, 156*XLEN/8, x2) + +inst_442: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x6, x1, 157*XLEN/8, x2) + +inst_443: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x33333334, x1, 158*XLEN/8, x2) + +inst_444: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0x66666667, x1, 159*XLEN/8, x2) + +inst_445: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, -0xb503, x1, 160*XLEN/8, x2) + +inst_446: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb505, 0xb505, x1, 161*XLEN/8, x2) + +inst_447: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x55555554, x1, 162*XLEN/8, x2) + +inst_448: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x0, x1, 163*XLEN/8, x2) + +inst_449: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x4, x1, 164*XLEN/8, x2) + +inst_450: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x33333332, x1, 165*XLEN/8, x2) + +inst_451: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x66666665, x1, 166*XLEN/8, x2) + +inst_452: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0xb503, x1, 167*XLEN/8, x2) + +inst_453: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x55555556, x1, 168*XLEN/8, x2) + +inst_454: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0x55555555, x1, 169*XLEN/8, x2) + +inst_455: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x6, x1, 170*XLEN/8, x2) + +inst_456: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x33333334, x1, 171*XLEN/8, x2) + +inst_457: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x66666667, x1, 172*XLEN/8, x2) + +inst_458: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0xb503, x1, 173*XLEN/8, x2) + +inst_459: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0xb505, x1, 174*XLEN/8, x2) + +inst_460: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x3, x1, 175*XLEN/8, x2) + +inst_461: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x55555555, x1, 176*XLEN/8, x2) + +inst_462: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0x55555556, x1, 177*XLEN/8, x2) + +inst_463: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x5, x1, 178*XLEN/8, x2) + +inst_464: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x33333333, x1, 179*XLEN/8, x2) + +inst_465: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x66666666, x1, 180*XLEN/8, x2) + +inst_466: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0xb504, x1, 181*XLEN/8, x2) + +inst_467: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0xb504, x1, 182*XLEN/8, x2) + +inst_468: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x2, x1, 183*XLEN/8, x2) + +inst_469: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x55555554, x1, 184*XLEN/8, x2) + +inst_470: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x0, x1, 185*XLEN/8, x2) + +inst_471: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x4, x1, 186*XLEN/8, x2) + +inst_472: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x33333332, x1, 187*XLEN/8, x2) + +inst_473: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x66666665, x1, 188*XLEN/8, x2) + +inst_474: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0xb503, x1, 189*XLEN/8, x2) + +inst_475: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x55555556, x1, 190*XLEN/8, x2) + +inst_476: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0x55555555, x1, 191*XLEN/8, x2) + +inst_477: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x6, x1, 192*XLEN/8, x2) + +inst_478: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x33333334, x1, 193*XLEN/8, x2) + +inst_479: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x66666667, x1, 194*XLEN/8, x2) + +inst_480: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0xb503, x1, 195*XLEN/8, x2) + +inst_481: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0xb505, x1, 196*XLEN/8, x2) + +inst_482: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x3, x1, 197*XLEN/8, x2) + +inst_483: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x55555555, x1, 198*XLEN/8, x2) + +inst_484: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, -0x55555556, x1, 199*XLEN/8, x2) + +inst_485: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x5, x1, 200*XLEN/8, x2) + +inst_486: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x33333333, x1, 201*XLEN/8, x2) + +inst_487: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x66666666, x1, 202*XLEN/8, x2) + +inst_488: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, -0xb504, x1, 203*XLEN/8, x2) + +inst_489: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0xb504, x1, 204*XLEN/8, x2) + +inst_490: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x2, x1, 205*XLEN/8, x2) + +inst_491: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x55555554, x1, 206*XLEN/8, x2) + +inst_492: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x0, x1, 207*XLEN/8, x2) + +inst_493: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x4, x1, 208*XLEN/8, x2) + +inst_494: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x33333332, x1, 209*XLEN/8, x2) + +inst_495: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x66666665, x1, 210*XLEN/8, x2) + +inst_496: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0xb503, x1, 211*XLEN/8, x2) + +inst_497: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x55555556, x1, 212*XLEN/8, x2) + +inst_498: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, -0x55555555, x1, 213*XLEN/8, x2) + +inst_499: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x6, x1, 214*XLEN/8, x2) + +inst_500: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x33333334, x1, 215*XLEN/8, x2) + +inst_501: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0x66666667, x1, 216*XLEN/8, x2) + +inst_502: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, -0xb503, x1, 217*XLEN/8, x2) + +inst_503: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333332, 0xb505, x1, 218*XLEN/8, x2) + +inst_504: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x3, x1, 219*XLEN/8, x2) + +inst_505: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x55555555, x1, 220*XLEN/8, x2) + +inst_506: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, -0x55555556, x1, 221*XLEN/8, x2) + +inst_507: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x5, x1, 222*XLEN/8, x2) + +inst_508: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x33333333, x1, 223*XLEN/8, x2) + +inst_509: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x66666666, x1, 224*XLEN/8, x2) + +inst_510: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, -0xb504, x1, 225*XLEN/8, x2) + +inst_511: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0xb504, x1, 226*XLEN/8, x2) + +inst_512: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x2, x1, 227*XLEN/8, x2) + +inst_513: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x55555554, x1, 228*XLEN/8, x2) + +inst_514: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x0, x1, 229*XLEN/8, x2) + +inst_515: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x4, x1, 230*XLEN/8, x2) + +inst_516: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x33333332, x1, 231*XLEN/8, x2) + +inst_517: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x66666665, x1, 232*XLEN/8, x2) + +inst_518: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0xb503, x1, 233*XLEN/8, x2) + +inst_519: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x55555556, x1, 234*XLEN/8, x2) + +inst_520: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, -0x55555555, x1, 235*XLEN/8, x2) + +inst_521: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x6, x1, 236*XLEN/8, x2) + +inst_522: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x33333334, x1, 237*XLEN/8, x2) + +inst_523: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0x66666667, x1, 238*XLEN/8, x2) + +inst_524: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, -0xb503, x1, 239*XLEN/8, x2) + +inst_525: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x66666665, 0xb505, x1, 240*XLEN/8, x2) + +inst_526: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x3, x1, 241*XLEN/8, x2) + +inst_527: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x55555555, x1, 242*XLEN/8, x2) + +inst_528: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, -0x55555556, x1, 243*XLEN/8, x2) + +inst_529: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x5, x1, 244*XLEN/8, x2) + +inst_530: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x33333333, x1, 245*XLEN/8, x2) + +inst_531: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x66666666, x1, 246*XLEN/8, x2) + +inst_532: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, -0xb504, x1, 247*XLEN/8, x2) + +inst_533: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0xb504, x1, 248*XLEN/8, x2) + +inst_534: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x2, x1, 249*XLEN/8, x2) + +inst_535: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x55555554, x1, 250*XLEN/8, x2) + +inst_536: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x0, x1, 251*XLEN/8, x2) + +inst_537: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x4, x1, 252*XLEN/8, x2) + +inst_538: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x33333332, x1, 253*XLEN/8, x2) + +inst_539: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x66666665, x1, 254*XLEN/8, x2) + +inst_540: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0xb503, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_541: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x55555556, x1, 0*XLEN/8, x2) + +inst_542: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, -0x55555555, x1, 1*XLEN/8, x2) + +inst_543: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x6, x1, 2*XLEN/8, x2) + +inst_544: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x33333334, x1, 3*XLEN/8, x2) + +inst_545: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0x66666667, x1, 4*XLEN/8, x2) + +inst_546: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, -0xb503, x1, 5*XLEN/8, x2) + +inst_547: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb503, 0xb505, x1, 6*XLEN/8, x2) + +inst_548: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x3, x1, 7*XLEN/8, x2) + +inst_549: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x55555555, x1, 8*XLEN/8, x2) + +inst_550: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, -0x55555556, x1, 9*XLEN/8, x2) + +inst_551: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x5, x1, 10*XLEN/8, x2) + +inst_552: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x33333333, x1, 11*XLEN/8, x2) + +inst_553: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x66666666, x1, 12*XLEN/8, x2) + +inst_554: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, -0xb504, x1, 13*XLEN/8, x2) + +inst_555: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0xb504, x1, 14*XLEN/8, x2) + +inst_556: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x2, x1, 15*XLEN/8, x2) + +inst_557: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x55555554, x1, 16*XLEN/8, x2) + +inst_558: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x0, x1, 17*XLEN/8, x2) + +inst_559: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x4, x1, 18*XLEN/8, x2) + +inst_560: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x33333332, x1, 19*XLEN/8, x2) + +inst_561: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x66666665, x1, 20*XLEN/8, x2) + +inst_562: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0xb503, x1, 21*XLEN/8, x2) + +inst_563: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x55555556, x1, 22*XLEN/8, x2) + +inst_564: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, -0x55555555, x1, 23*XLEN/8, x2) + +inst_565: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x6, x1, 24*XLEN/8, x2) + +inst_566: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x33333334, x1, 25*XLEN/8, x2) + +inst_567: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0x66666667, x1, 26*XLEN/8, x2) + +inst_568: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, -0xb503, x1, 27*XLEN/8, x2) + +inst_569: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x55555556, 0xb505, x1, 28*XLEN/8, x2) + +inst_570: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x3, x1, 29*XLEN/8, x2) + +inst_571: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x55555555, x1, 30*XLEN/8, x2) + +inst_572: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, -0x55555556, x1, 31*XLEN/8, x2) + +inst_573: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x5, x1, 32*XLEN/8, x2) + +inst_574: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x33333333, x1, 33*XLEN/8, x2) + +inst_575: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x66666666, x1, 34*XLEN/8, x2) + +inst_576: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, -0xb504, x1, 35*XLEN/8, x2) + +inst_577: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0xb504, x1, 36*XLEN/8, x2) + +inst_578: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x2, x1, 37*XLEN/8, x2) + +inst_579: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x55555554, x1, 38*XLEN/8, x2) + +inst_580: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x0, x1, 39*XLEN/8, x2) + +inst_581: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x4, x1, 40*XLEN/8, x2) + +inst_582: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x33333332, x1, 41*XLEN/8, x2) + +inst_583: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x66666665, x1, 42*XLEN/8, x2) + +inst_584: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0xb503, x1, 43*XLEN/8, x2) + +inst_585: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x55555555, 0x55555556, x1, 44*XLEN/8, x2) + +inst_586: +// rs2_val == -8193, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x2001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x33333333, -0x2001, x1, 45*XLEN/8, x2) + +inst_587: +// rs2_val == -16777217, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x1000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504, -0x1000001, x1, 46*XLEN/8, x2) + +inst_588: +// rs2_val == -67108865, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffff; op2val:-0x4000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x7fffffff, -0x4000001, x1, 47*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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x11_0: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 48*((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/Zimop/src/mop.rr.5-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.5-01.S new file mode 100644 index 000000000..9d32ba995 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.5-01.S @@ -0,0 +1,3057 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.5 instruction of the RISC-V RV32Zimop extension for the mop.rr.5 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.5) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x24, rs2==x24, rd==x24, rs1_val != rs2_val, rs1_val > 0 and rs2_val > 0, rs1_val==1717986917 and rs2_val==6 +// opcode: mop.rr.5 ; op1:x24; op2:x24; dest:x24; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x24, x24, x24, 0, 0x66666665, 0x66666665, x2, 0*XLEN/8, x8) + +inst_1: +// rs1 == rs2 != rd, rs1==x25, rs2==x25, rd==x18, rs1_val < 0 and rs2_val < 0, rs2_val == -513 +// opcode: mop.rr.5 ; op1:x25; op2:x25; dest:x18; op1val:-0x7; op2val:-0x7 +TEST_RR_OP(mop.rr.5, x18, x25, x25, 0, -0x7, -0x7, x2, 1*XLEN/8, x8) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x21, rs2==x6, rd==x25, rs1_val < 0 and rs2_val > 0, rs2_val == 1431655765, rs1_val == -8388609 +// opcode: mop.rr.5 ; op1:x21; op2:x6; dest:x25; op1val:-0x800001; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x25, x21, x6, 0, -0x800001, 0x55555555, x2, 2*XLEN/8, x8) + +inst_3: +// rs2 == rd != rs1, rs1==x30, rs2==x1, rd==x1, rs1_val == (-2**(xlen-1)), rs2_val == -67108865, rs1_val == -2147483648 +// opcode: mop.rr.5 ; op1:x30; op2:x1; dest:x1; op1val:-0x80000000; op2val:-0x4000001 +TEST_RR_OP(mop.rr.5, x1, x30, x1, 0, -0x80000000, -0x4000001, x2, 3*XLEN/8, x8) + +inst_4: +// rs1 == rd != rs2, rs1==x9, rs2==x29, rd==x9, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs2_val == -262145, rs1_val == 2147483647 +// opcode: mop.rr.5 ; op1:x9; op2:x29; dest:x9; op1val:0x7fffffff; op2val:-0x40001 +TEST_RR_OP(mop.rr.5, x9, x9, x29, 0, 0x7fffffff, -0x40001, x2, 4*XLEN/8, x8) + +inst_5: +// rs1==x15, rs2==x26, rd==x22, rs1_val == 0, rs2_val == 1024 +// opcode: mop.rr.5 ; op1:x15; op2:x26; dest:x22; op1val:0x0; op2val:0x400 +TEST_RR_OP(mop.rr.5, x22, x15, x26, 0, 0x0, 0x400, x2, 5*XLEN/8, x8) + +inst_6: +// rs1==x6, rs2==x23, rd==x29, rs1_val == 1, rs2_val == 4096 +// opcode: mop.rr.5 ; op1:x6; op2:x23; dest:x29; op1val:0x1; op2val:0x1000 +TEST_RR_OP(mop.rr.5, x29, x6, x23, 0, 0x1, 0x1000, x2, 6*XLEN/8, x8) + +inst_7: +// rs1==x19, rs2==x22, rd==x0, rs2_val == -2, +// opcode: mop.rr.5 ; op1:x19; op2:x22; dest:x0; op1val:0x6; op2val:-0x2 +TEST_RR_OP(mop.rr.5, x0, x19, x22, 0, 0x6, -0x2, x2, 7*XLEN/8, x8) + +inst_8: +// rs1==x20, rs2==x15, rd==x23, rs2_val == -3, +// opcode: mop.rr.5 ; op1:x20; op2:x15; dest:x23; op1val:0x6; op2val:-0x3 +TEST_RR_OP(mop.rr.5, x23, x20, x15, 0, 0x6, -0x3, x2, 8*XLEN/8, x8) + +inst_9: +// rs1==x13, rs2==x9, rd==x7, rs2_val == -5, rs1_val == 4 +// opcode: mop.rr.5 ; op1:x13; op2:x9; dest:x7; op1val:0x4; op2val:-0x5 +TEST_RR_OP(mop.rr.5, x7, x13, x9, 0, 0x4, -0x5, x2, 9*XLEN/8, x8) + +inst_10: +// rs1==x23, rs2==x30, rd==x3, rs2_val == -9, rs1_val == 67108864 +// opcode: mop.rr.5 ; op1:x23; op2:x30; dest:x3; op1val:0x4000000; op2val:-0x9 +TEST_RR_OP(mop.rr.5, x3, x23, x30, 0, 0x4000000, -0x9, x2, 10*XLEN/8, x8) + +inst_11: +// rs1==x18, rs2==x31, rd==x10, rs2_val == -17, rs1_val == 16 +// opcode: mop.rr.5 ; op1:x18; op2:x31; dest:x10; op1val:0x10; op2val:-0x11 +TEST_RR_OP(mop.rr.5, x10, x18, x31, 0, 0x10, -0x11, x2, 11*XLEN/8, x8) + +inst_12: +// rs1==x16, rs2==x4, rd==x5, rs2_val == -33, rs1_val == 1073741824 +// opcode: mop.rr.5 ; op1:x16; op2:x4; dest:x5; op1val:0x40000000; op2val:-0x21 +TEST_RR_OP(mop.rr.5, x5, x16, x4, 0, 0x40000000, -0x21, x2, 12*XLEN/8, x8) + +inst_13: +// rs1==x17, rs2==x11, rd==x16, rs2_val == -65, +// opcode: mop.rr.5 ; op1:x17; op2:x11; dest:x16; op1val:0x66666667; op2val:-0x41 +TEST_RR_OP(mop.rr.5, x16, x17, x11, 0, 0x66666667, -0x41, x2, 13*XLEN/8, x8) + +inst_14: +// rs1==x22, rs2==x14, rd==x30, rs2_val == -129, +// opcode: mop.rr.5 ; op1:x22; op2:x14; dest:x30; op1val:0x0; op2val:-0x81 +TEST_RR_OP(mop.rr.5, x30, x22, x14, 0, 0x0, -0x81, x2, 14*XLEN/8, x18) +RVTEST_SIGBASE(x9,signature_x9_0) + +inst_15: +// rs1==x28, rs2==x12, rd==x2, rs2_val == -257, +// opcode: mop.rr.5 ; op1:x28; op2:x12; dest:x2; op1val:-0x8; op2val:-0x101 +TEST_RR_OP(mop.rr.5, x2, x28, x12, 0, -0x8, -0x101, x9, 0*XLEN/8, x18) + +inst_16: +// rs1==x11, rs2==x27, rd==x4, rs2_val == -1025, rs1_val == 134217728 +// opcode: mop.rr.5 ; op1:x11; op2:x27; dest:x4; op1val:0x8000000; op2val:-0x401 +TEST_RR_OP(mop.rr.5, x4, x11, x27, 0, 0x8000000, -0x401, x9, 1*XLEN/8, x18) + +inst_17: +// rs1==x8, rs2==x0, rd==x13, rs2_val == -2049, rs1_val == -1073741825 +// opcode: mop.rr.5 ; op1:x8; op2:x0; dest:x13; op1val:-0x40000001; op2val:0x0 +TEST_RR_OP(mop.rr.5, x13, x8, x0, 0, -0x40000001, 0x0, x9, 2*XLEN/8, x18) + +inst_18: +// rs1==x2, rs2==x17, rd==x21, rs2_val == -4097, +// opcode: mop.rr.5 ; op1:x2; op2:x17; dest:x21; op1val:-0x55555555; op2val:-0x1001 +TEST_RR_OP(mop.rr.5, x21, x2, x17, 0, -0x55555555, -0x1001, x9, 3*XLEN/8, x18) + +inst_19: +// rs1==x7, rs2==x28, rd==x26, rs2_val == -8193, rs1_val == -257 +// opcode: mop.rr.5 ; op1:x7; op2:x28; dest:x26; op1val:-0x101; op2val:-0x2001 +TEST_RR_OP(mop.rr.5, x26, x7, x28, 0, -0x101, -0x2001, x9, 4*XLEN/8, x18) + +inst_20: +// rs1==x3, rs2==x7, rd==x15, rs2_val == -16385, +// opcode: mop.rr.5 ; op1:x3; op2:x7; dest:x15; op1val:0x1; op2val:-0x4001 +TEST_RR_OP(mop.rr.5, x15, x3, x7, 0, 0x1, -0x4001, x9, 5*XLEN/8, x18) + +inst_21: +// rs1==x29, rs2==x16, rd==x19, rs2_val == -32769, +// opcode: mop.rr.5 ; op1:x29; op2:x16; dest:x19; op1val:-0x101; op2val:-0x8001 +TEST_RR_OP(mop.rr.5, x19, x29, x16, 0, -0x101, -0x8001, x9, 6*XLEN/8, x18) + +inst_22: +// rs1==x27, rs2==x10, rd==x17, rs2_val == -65537, rs1_val == -33 +// opcode: mop.rr.5 ; op1:x27; op2:x10; dest:x17; op1val:-0x21; op2val:-0x10001 +TEST_RR_OP(mop.rr.5, x17, x27, x10, 0, -0x21, -0x10001, x9, 7*XLEN/8, x18) + +inst_23: +// rs1==x0, rs2==x19, rd==x20, rs2_val == -131073, rs1_val == 536870912 +// opcode: mop.rr.5 ; op1:x0; op2:x19; dest:x20; op1val:0x0; op2val:-0x20001 +TEST_RR_OP(mop.rr.5, x20, x0, x19, 0, 0x0, -0x20001, x9, 8*XLEN/8, x18) + +inst_24: +// rs1==x26, rs2==x3, rd==x28, rs2_val == -524289, +// opcode: mop.rr.5 ; op1:x26; op2:x3; dest:x28; op1val:0xb505; op2val:-0x80001 +TEST_RR_OP(mop.rr.5, x28, x26, x3, 0, 0xb505, -0x80001, x9, 9*XLEN/8, x18) + +inst_25: +// rs1==x1, rs2==x5, rd==x8, rs2_val == -1048577, +// opcode: mop.rr.5 ; op1:x1; op2:x5; dest:x8; op1val:0x55555554; op2val:-0x100001 +TEST_RR_OP(mop.rr.5, x8, x1, x5, 0, 0x55555554, -0x100001, x9, 10*XLEN/8, x18) + +inst_26: +// rs1==x5, rs2==x8, rd==x11, rs2_val == -2097153, rs1_val == 524288 +// opcode: mop.rr.5 ; op1:x5; op2:x8; dest:x11; op1val:0x80000; op2val:-0x200001 +TEST_RR_OP(mop.rr.5, x11, x5, x8, 0, 0x80000, -0x200001, x9, 11*XLEN/8, x18) + +inst_27: +// rs1==x10, rs2==x21, rd==x6, rs2_val == -4194305, +// opcode: mop.rr.5 ; op1:x10; op2:x21; dest:x6; op1val:0x1; op2val:-0x400001 +TEST_RR_OP(mop.rr.5, x6, x10, x21, 0, 0x1, -0x400001, x9, 12*XLEN/8, x18) + +inst_28: +// rs1==x4, rs2==x20, rd==x12, rs2_val == -8388609, +// opcode: mop.rr.5 ; op1:x4; op2:x20; dest:x12; op1val:-0xb503; op2val:-0x800001 +TEST_RR_OP(mop.rr.5, x12, x4, x20, 0, -0xb503, -0x800001, x9, 13*XLEN/8, x3) + +inst_29: +// rs1==x14, rs2==x13, rd==x27, rs2_val == -16777217, +// opcode: mop.rr.5 ; op1:x14; op2:x13; dest:x27; op1val:0x80000; op2val:-0x1000001 +TEST_RR_OP(mop.rr.5, x27, x14, x13, 0, 0x80000, -0x1000001, x9, 14*XLEN/8, x3) + +inst_30: +// rs1==x31, rs2==x2, rd==x14, rs2_val == -33554433, +// opcode: mop.rr.5 ; op1:x31; op2:x2; dest:x14; op1val:0x66666666; op2val:-0x2000001 +TEST_RR_OP(mop.rr.5, x14, x31, x2, 0, 0x66666666, -0x2000001, x9, 15*XLEN/8, x3) + +inst_31: +// rs1==x12, rs2==x18, rd==x31, rs2_val == -134217729, +// opcode: mop.rr.5 ; op1:x12; op2:x18; dest:x31; op1val:0x66666666; op2val:-0x8000001 +TEST_RR_OP(mop.rr.5, x31, x12, x18, 0, 0x66666666, -0x8000001, x9, 16*XLEN/8, x3) + +inst_32: +// rs2_val == -268435457, rs1_val == -262145 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40001, -0x10000001, x9, 17*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_33: +// rs2_val == -536870913, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x20000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, -0x20000001, x1, 0*XLEN/8, x3) + +inst_34: +// rs2_val == -1073741825, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x40000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0x40000001, x1, 1*XLEN/8, x3) + +inst_35: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1), rs1_val == 16384 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x7fffffff +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000, 0x7fffffff, x1, 2*XLEN/8, x3) + +inst_36: +// rs1_val == -2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x80001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2, -0x80001, x1, 3*XLEN/8, x3) + +inst_37: +// rs1_val == -3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x3, -0x2, x1, 4*XLEN/8, x3) + +inst_38: +// rs1_val == -5, rs2_val == 4194304 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x400000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5, 0x400000, x1, 5*XLEN/8, x3) + +inst_39: +// rs1_val == -9, rs2_val == 524288 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x80000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x9, 0x80000, x1, 6*XLEN/8, x3) + +inst_40: +// rs1_val == -17, rs2_val == 33554432 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x2000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x11, 0x2000000, x1, 7*XLEN/8, x3) + +inst_41: +// rs1_val == -65, rs2_val == 32768 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x8000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x41, 0x8000, x1, 8*XLEN/8, x3) + +inst_42: +// rs1_val == -129, rs2_val == 2048 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x800 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x81, 0x800, x1, 9*XLEN/8, x3) + +inst_43: +// rs1_val == -513, rs2_val == 2097152 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x200000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x201, 0x200000, x1, 10*XLEN/8, x3) + +inst_44: +// rs1_val == -1025, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x401, -0x2, x1, 11*XLEN/8, x3) + +inst_45: +// rs1_val == -2049, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x7fffffff +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x801, 0x7fffffff, x1, 12*XLEN/8, x3) + +inst_46: +// rs1_val == -4097, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x1001, -0x3, x1, 13*XLEN/8, x3) + +inst_47: +// rs1_val == -8193, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x20000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2001, -0x20000001, x1, 14*XLEN/8, x3) + +inst_48: +// rs1_val == -16385, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4001, 0x3, x1, 15*XLEN/8, x3) + +inst_49: +// rs1_val == -32769, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8001, 0x5, x1, 16*XLEN/8, x3) + +inst_50: +// rs1_val == -65537, rs2_val == 8388608 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x800000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10001, 0x800000, x1, 17*XLEN/8, x3) + +inst_51: +// rs1_val == -131073, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:0x400000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20001, 0x400000, x1, 18*XLEN/8, x3) + +inst_52: +// rs1_val == -524289, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x100001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80001, -0x100001, x1, 19*XLEN/8, x3) + +inst_53: +// rs1_val == -1048577, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0xa +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x100001, -0xa, x1, 20*XLEN/8, x3) + +inst_54: +// rs1_val == -2097153, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x101 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x200001, -0x101, x1, 21*XLEN/8, x3) + +inst_55: +// rs1_val == -4194305, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x400001, -0x5, x1, 22*XLEN/8, x3) + +inst_56: +// rs1_val == -16777217, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x1000001, 0x55555554, x1, 23*XLEN/8, x3) + +inst_57: +// rs1_val == -33554433, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x9 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000001, -0x9, x1, 24*XLEN/8, x3) + +inst_58: +// rs1_val == -67108865, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:-0x801 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000001, -0x801, x1, 25*XLEN/8, x3) + +inst_59: +// rs1_val == -134217729, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8000001, 0x5, x1, 26*XLEN/8, x3) + +inst_60: +// rs1_val == -268435457, rs2_val == 0 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10000001, 0x0, x1, 27*XLEN/8, x3) + +inst_61: +// rs1_val == -536870913, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20000001, -0xb504, x1, 28*XLEN/8, x3) + +inst_62: +// rs2_val == 1, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:0x1 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x7, 0x1, x1, 29*XLEN/8, x3) + +inst_63: +// rs2_val == 2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xa, 0x2, x1, 30*XLEN/8, x3) + +inst_64: +// rs2_val == 4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x41, 0x4, x1, 31*XLEN/8, x3) + +inst_65: +// rs2_val == 8, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x8 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000, 0x8, x1, 32*XLEN/8, x3) + +inst_66: +// rs2_val == 16, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:0x10 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2, 0x10, x1, 33*XLEN/8, x3) + +inst_67: +// rs2_val == 32, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x20 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x20, x1, 34*XLEN/8, x3) + +inst_68: +// rs2_val == 64, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x40 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5, 0x40, x1, 35*XLEN/8, x3) + +inst_69: +// rs2_val == 128, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x80 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000001, 0x80, x1, 36*XLEN/8, x3) + +inst_70: +// rs2_val == 256, rs1_val == 1431655765 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x100 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x100, x1, 37*XLEN/8, x3) + +inst_71: +// rs2_val == 512, rs1_val == 16777216 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x200 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1000000, 0x200, x1, 38*XLEN/8, x3) + +inst_72: +// rs2_val == 8192, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x2000, x1, 39*XLEN/8, x3) + +inst_73: +// rs2_val == 16384, rs1_val == -1431655766 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x4000, x1, 40*XLEN/8, x3) + +inst_74: +// rs2_val == 65536, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x10000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x3, 0x10000, x1, 41*XLEN/8, x3) + +inst_75: +// rs2_val == 131072, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:0x20000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000000, 0x20000, x1, 42*XLEN/8, x3) + +inst_76: +// rs2_val == 262144, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x40000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000, 0x40000, x1, 43*XLEN/8, x3) + +inst_77: +// rs2_val == 1048576, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x100000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x100000, x1, 44*XLEN/8, x3) + +inst_78: +// rs2_val == 16777216, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x1000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x1000000, x1, 45*XLEN/8, x3) + +inst_79: +// rs2_val == 67108864, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x4000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x101, 0x4000000, x1, 46*XLEN/8, x3) + +inst_80: +// rs2_val == 134217728, rs1_val == 2 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x8000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x8000000, x1, 47*XLEN/8, x3) + +inst_81: +// rs2_val == 268435456, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x10000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20000001, 0x10000000, x1, 48*XLEN/8, x3) + +inst_82: +// rs2_val == 536870912, rs1_val == 8388608 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x20000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800000, 0x20000000, x1, 49*XLEN/8, x3) + +inst_83: +// rs2_val == 1073741824, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x40000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x40000000, x1, 50*XLEN/8, x3) + +inst_84: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)), rs1_val == 8192 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x80000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000, -0x80000000, x1, 51*XLEN/8, x3) + +inst_85: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x3, x1, 52*XLEN/8, x3) + +inst_86: +// rs1_val == 8, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x8 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8, 0x8, x1, 53*XLEN/8, x3) + +inst_87: +// rs1_val == 32, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x100000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20, 0x100000, x1, 54*XLEN/8, x3) + +inst_88: +// rs1_val == 64, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x40, 0x0, x1, 55*XLEN/8, x3) + +inst_89: +// rs1_val == 128, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80, -0x4, x1, 56*XLEN/8, x3) + +inst_90: +// rs1_val == 256, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x40 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100, 0x40, x1, 57*XLEN/8, x3) + +inst_91: +// rs1_val == 512, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200, -0xb504, x1, 58*XLEN/8, x3) + +inst_92: +// rs1_val == 1024, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:-0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x400, -0x6, x1, 59*XLEN/8, x3) + +inst_93: +// rs1_val == 2048, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:-0x40000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800, -0x40000000, x1, 60*XLEN/8, x3) + +inst_94: +// rs1_val == 4096, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1000, -0x55555555, x1, 61*XLEN/8, x3) + +inst_95: +// rs1_val == 32768, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x40 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8000, 0x40, x1, 62*XLEN/8, x3) + +inst_96: +// rs1_val == 65536, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x10000, 0x3, x1, 63*XLEN/8, x3) + +inst_97: +// rs1_val == 131072, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20000, 0x55555555, x1, 64*XLEN/8, x3) + +inst_98: +// rs1_val == 262144, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x40000, 0x33333334, x1, 65*XLEN/8, x3) + +inst_99: +// rs1_val == 1048576, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100000, -0x40000001, x1, 66*XLEN/8, x3) + +inst_100: +// rs1_val == 2097152, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200000, -0x55555555, x1, 67*XLEN/8, x3) + +inst_101: +// rs1_val == 4194304, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x401 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x400000, -0x401, x1, 68*XLEN/8, x3) + +inst_102: +// rs1_val == 33554432, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000000, 0x33333332, x1, 69*XLEN/8, x3) + +inst_103: +// rs1_val == 268435456, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x10000000, 0x20000000, x1, 70*XLEN/8, x3) + +inst_104: +// rs1_val==3 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x55555555, x1, 71*XLEN/8, x3) + +inst_105: +// rs1_val==3 and rs2_val==-1431655766, rs2_val == -1431655766 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0x55555556, x1, 72*XLEN/8, x3) + +inst_106: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x5, x1, 73*XLEN/8, x3) + +inst_107: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x33333333, x1, 74*XLEN/8, x3) + +inst_108: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x66666666, x1, 75*XLEN/8, x3) + +inst_109: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0xb504, x1, 76*XLEN/8, x3) + +inst_110: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0xb504, x1, 77*XLEN/8, x3) + +inst_111: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x2, x1, 78*XLEN/8, x3) + +inst_112: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x55555554, x1, 79*XLEN/8, x3) + +inst_113: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x0, x1, 80*XLEN/8, x3) + +inst_114: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x4, x1, 81*XLEN/8, x3) + +inst_115: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x33333332, x1, 82*XLEN/8, x3) + +inst_116: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x66666665, x1, 83*XLEN/8, x3) + +inst_117: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0xb503, x1, 84*XLEN/8, x3) + +inst_118: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x55555556, x1, 85*XLEN/8, x3) + +inst_119: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0x55555555, x1, 86*XLEN/8, x3) + +inst_120: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x6, x1, 87*XLEN/8, x3) + +inst_121: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x33333334, x1, 88*XLEN/8, x3) + +inst_122: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x66666667, x1, 89*XLEN/8, x3) + +inst_123: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0xb503, x1, 90*XLEN/8, x3) + +inst_124: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0xb505, x1, 91*XLEN/8, x3) + +inst_125: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x3, x1, 92*XLEN/8, x3) + +inst_126: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x55555555, x1, 93*XLEN/8, x3) + +inst_127: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, -0x55555556, x1, 94*XLEN/8, x3) + +inst_128: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x5, x1, 95*XLEN/8, x3) + +inst_129: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x33333333, x1, 96*XLEN/8, x3) + +inst_130: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x66666666, x1, 97*XLEN/8, x3) + +inst_131: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, -0xb504, x1, 98*XLEN/8, x3) + +inst_132: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0xb504, x1, 99*XLEN/8, x3) + +inst_133: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x2, x1, 100*XLEN/8, x3) + +inst_134: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x55555554, x1, 101*XLEN/8, x3) + +inst_135: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x0, x1, 102*XLEN/8, x3) + +inst_136: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x4, x1, 103*XLEN/8, x3) + +inst_137: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x33333332, x1, 104*XLEN/8, x3) + +inst_138: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x66666665, x1, 105*XLEN/8, x3) + +inst_139: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0xb503, x1, 106*XLEN/8, x3) + +inst_140: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x55555556, x1, 107*XLEN/8, x3) + +inst_141: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, -0x55555555, x1, 108*XLEN/8, x3) + +inst_142: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x6, x1, 109*XLEN/8, x3) + +inst_143: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x33333334, x1, 110*XLEN/8, x3) + +inst_144: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0x66666667, x1, 111*XLEN/8, x3) + +inst_145: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, -0xb503, x1, 112*XLEN/8, x3) + +inst_146: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555555, 0xb505, x1, 113*XLEN/8, x3) + +inst_147: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x3, x1, 114*XLEN/8, x3) + +inst_148: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x55555555, x1, 115*XLEN/8, x3) + +inst_149: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, -0x55555556, x1, 116*XLEN/8, x3) + +inst_150: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x5, x1, 117*XLEN/8, x3) + +inst_151: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x33333333, x1, 118*XLEN/8, x3) + +inst_152: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x66666666, x1, 119*XLEN/8, x3) + +inst_153: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, -0xb504, x1, 120*XLEN/8, x3) + +inst_154: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0xb504, x1, 121*XLEN/8, x3) + +inst_155: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x2, x1, 122*XLEN/8, x3) + +inst_156: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x55555554, x1, 123*XLEN/8, x3) + +inst_157: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x0, x1, 124*XLEN/8, x3) + +inst_158: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x4, x1, 125*XLEN/8, x3) + +inst_159: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x33333332, x1, 126*XLEN/8, x3) + +inst_160: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x66666665, x1, 127*XLEN/8, x3) + +inst_161: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0xb503, x1, 128*XLEN/8, x3) + +inst_162: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x55555556, x1, 129*XLEN/8, x3) + +inst_163: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, -0x55555555, x1, 130*XLEN/8, x3) + +inst_164: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x6, x1, 131*XLEN/8, x3) + +inst_165: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x33333334, x1, 132*XLEN/8, x3) + +inst_166: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0x66666667, x1, 133*XLEN/8, x3) + +inst_167: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, -0xb503, x1, 134*XLEN/8, x3) + +inst_168: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555556, 0xb505, x1, 135*XLEN/8, x3) + +inst_169: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x3, x1, 136*XLEN/8, x3) + +inst_170: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x55555555, x1, 137*XLEN/8, x3) + +inst_171: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0x55555556, x1, 138*XLEN/8, x3) + +inst_172: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x5, x1, 139*XLEN/8, x3) + +inst_173: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x33333333, x1, 140*XLEN/8, x3) + +inst_174: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x66666666, x1, 141*XLEN/8, x3) + +inst_175: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0xb504, x1, 142*XLEN/8, x3) + +inst_176: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0xb504, x1, 143*XLEN/8, x3) + +inst_177: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x2, x1, 144*XLEN/8, x3) + +inst_178: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x55555554, x1, 145*XLEN/8, x3) + +inst_179: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x0, x1, 146*XLEN/8, x3) + +inst_180: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x4, x1, 147*XLEN/8, x3) + +inst_181: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x33333332, x1, 148*XLEN/8, x3) + +inst_182: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x66666665, x1, 149*XLEN/8, x3) + +inst_183: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0xb503, x1, 150*XLEN/8, x3) + +inst_184: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x55555556, x1, 151*XLEN/8, x3) + +inst_185: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0x55555555, x1, 152*XLEN/8, x3) + +inst_186: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x6, x1, 153*XLEN/8, x3) + +inst_187: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x33333334, x1, 154*XLEN/8, x3) + +inst_188: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x66666667, x1, 155*XLEN/8, x3) + +inst_189: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0xb503, x1, 156*XLEN/8, x3) + +inst_190: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0xb505, x1, 157*XLEN/8, x3) + +inst_191: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x3, x1, 158*XLEN/8, x3) + +inst_192: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x55555555, x1, 159*XLEN/8, x3) + +inst_193: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, -0x55555556, x1, 160*XLEN/8, x3) + +inst_194: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x5, x1, 161*XLEN/8, x3) + +inst_195: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x33333333, x1, 162*XLEN/8, x3) + +inst_196: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x66666666, x1, 163*XLEN/8, x3) + +inst_197: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, -0xb504, x1, 164*XLEN/8, x3) + +inst_198: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0xb504, x1, 165*XLEN/8, x3) + +inst_199: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x2, x1, 166*XLEN/8, x3) + +inst_200: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x55555554, x1, 167*XLEN/8, x3) + +inst_201: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x0, x1, 168*XLEN/8, x3) + +inst_202: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x4, x1, 169*XLEN/8, x3) + +inst_203: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x33333332, x1, 170*XLEN/8, x3) + +inst_204: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x66666665, x1, 171*XLEN/8, x3) + +inst_205: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0xb503, x1, 172*XLEN/8, x3) + +inst_206: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x55555556, x1, 173*XLEN/8, x3) + +inst_207: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, -0x55555555, x1, 174*XLEN/8, x3) + +inst_208: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x6, x1, 175*XLEN/8, x3) + +inst_209: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x33333334, x1, 176*XLEN/8, x3) + +inst_210: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0x66666667, x1, 177*XLEN/8, x3) + +inst_211: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, -0xb503, x1, 178*XLEN/8, x3) + +inst_212: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333333, 0xb505, x1, 179*XLEN/8, x3) + +inst_213: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x3, x1, 180*XLEN/8, x3) + +inst_214: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x55555555, x1, 181*XLEN/8, x3) + +inst_215: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, -0x55555556, x1, 182*XLEN/8, x3) + +inst_216: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x5, x1, 183*XLEN/8, x3) + +inst_217: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x33333333, x1, 184*XLEN/8, x3) + +inst_218: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x66666666, x1, 185*XLEN/8, x3) + +inst_219: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, -0xb504, x1, 186*XLEN/8, x3) + +inst_220: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0xb504, x1, 187*XLEN/8, x3) + +inst_221: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x2, x1, 188*XLEN/8, x3) + +inst_222: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x55555554, x1, 189*XLEN/8, x3) + +inst_223: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x0, x1, 190*XLEN/8, x3) + +inst_224: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x4, x1, 191*XLEN/8, x3) + +inst_225: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x33333332, x1, 192*XLEN/8, x3) + +inst_226: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x66666665, x1, 193*XLEN/8, x3) + +inst_227: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0xb503, x1, 194*XLEN/8, x3) + +inst_228: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x55555556, x1, 195*XLEN/8, x3) + +inst_229: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, -0x55555555, x1, 196*XLEN/8, x3) + +inst_230: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x6, x1, 197*XLEN/8, x3) + +inst_231: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x33333334, x1, 198*XLEN/8, x3) + +inst_232: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0x66666667, x1, 199*XLEN/8, x3) + +inst_233: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, -0xb503, x1, 200*XLEN/8, x3) + +inst_234: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666666, 0xb505, x1, 201*XLEN/8, x3) + +inst_235: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x3, x1, 202*XLEN/8, x3) + +inst_236: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x55555555, x1, 203*XLEN/8, x3) + +inst_237: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, -0x55555556, x1, 204*XLEN/8, x3) + +inst_238: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x5, x1, 205*XLEN/8, x3) + +inst_239: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x33333333, x1, 206*XLEN/8, x3) + +inst_240: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x66666666, x1, 207*XLEN/8, x3) + +inst_241: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, -0xb504, x1, 208*XLEN/8, x3) + +inst_242: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0xb504, x1, 209*XLEN/8, x3) + +inst_243: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x2, x1, 210*XLEN/8, x3) + +inst_244: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x55555554, x1, 211*XLEN/8, x3) + +inst_245: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x0, x1, 212*XLEN/8, x3) + +inst_246: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x4, x1, 213*XLEN/8, x3) + +inst_247: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x33333332, x1, 214*XLEN/8, x3) + +inst_248: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x66666665, x1, 215*XLEN/8, x3) + +inst_249: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0xb503, x1, 216*XLEN/8, x3) + +inst_250: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x55555556, x1, 217*XLEN/8, x3) + +inst_251: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, -0x55555555, x1, 218*XLEN/8, x3) + +inst_252: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x6, x1, 219*XLEN/8, x3) + +inst_253: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x33333334, x1, 220*XLEN/8, x3) + +inst_254: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0x66666667, x1, 221*XLEN/8, x3) + +inst_255: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, -0xb503, x1, 222*XLEN/8, x3) + +inst_256: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504, 0xb505, x1, 223*XLEN/8, x3) + +inst_257: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x3, x1, 224*XLEN/8, x3) + +inst_258: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x55555555, x1, 225*XLEN/8, x3) + +inst_259: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, -0x55555556, x1, 226*XLEN/8, x3) + +inst_260: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x5, x1, 227*XLEN/8, x3) + +inst_261: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x33333333, x1, 228*XLEN/8, x3) + +inst_262: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x66666666, x1, 229*XLEN/8, x3) + +inst_263: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, -0xb504, x1, 230*XLEN/8, x3) + +inst_264: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0xb504, x1, 231*XLEN/8, x3) + +inst_265: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x2, x1, 232*XLEN/8, x3) + +inst_266: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x55555554, x1, 233*XLEN/8, x3) + +inst_267: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x0, x1, 234*XLEN/8, x3) + +inst_268: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x4, x1, 235*XLEN/8, x3) + +inst_269: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x33333332, x1, 236*XLEN/8, x3) + +inst_270: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x66666665, x1, 237*XLEN/8, x3) + +inst_271: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0xb503, x1, 238*XLEN/8, x3) + +inst_272: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x55555556, x1, 239*XLEN/8, x3) + +inst_273: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, -0x55555555, x1, 240*XLEN/8, x3) + +inst_274: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x6, x1, 241*XLEN/8, x3) + +inst_275: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x33333334, x1, 242*XLEN/8, x3) + +inst_276: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0x66666667, x1, 243*XLEN/8, x3) + +inst_277: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, -0xb503, x1, 244*XLEN/8, x3) + +inst_278: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504, 0xb505, x1, 245*XLEN/8, x3) + +inst_279: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x3, x1, 246*XLEN/8, x3) + +inst_280: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x55555555, x1, 247*XLEN/8, x3) + +inst_281: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0x55555556, x1, 248*XLEN/8, x3) + +inst_282: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x5, x1, 249*XLEN/8, x3) + +inst_283: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x33333333, x1, 250*XLEN/8, x3) + +inst_284: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x66666666, x1, 251*XLEN/8, x3) + +inst_285: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0xb504, x1, 252*XLEN/8, x3) + +inst_286: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0xb504, x1, 253*XLEN/8, x3) + +inst_287: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x2, x1, 254*XLEN/8, x3) + +inst_288: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x55555554, x1, 255*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_289: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x0, x1, 0*XLEN/8, x3) + +inst_290: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x4, x1, 1*XLEN/8, x3) + +inst_291: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x33333332, x1, 2*XLEN/8, x3) + +inst_292: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x66666665, x1, 3*XLEN/8, x3) + +inst_293: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0xb503, x1, 4*XLEN/8, x3) + +inst_294: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x55555556, x1, 5*XLEN/8, x3) + +inst_295: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0x55555555, x1, 6*XLEN/8, x3) + +inst_296: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x6, x1, 7*XLEN/8, x3) + +inst_297: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x33333334, x1, 8*XLEN/8, x3) + +inst_298: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x66666667, x1, 9*XLEN/8, x3) + +inst_299: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0xb503, x1, 10*XLEN/8, x3) + +inst_300: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0xb505, x1, 11*XLEN/8, x3) + +inst_301: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x3, x1, 12*XLEN/8, x3) + +inst_302: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x55555555, x1, 13*XLEN/8, x3) + +inst_303: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, -0x55555556, x1, 14*XLEN/8, x3) + +inst_304: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x5, x1, 15*XLEN/8, x3) + +inst_305: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x33333333, x1, 16*XLEN/8, x3) + +inst_306: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x66666666, x1, 17*XLEN/8, x3) + +inst_307: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, -0xb504, x1, 18*XLEN/8, x3) + +inst_308: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0xb504, x1, 19*XLEN/8, x3) + +inst_309: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x2, x1, 20*XLEN/8, x3) + +inst_310: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x55555554, x1, 21*XLEN/8, x3) + +inst_311: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x0, x1, 22*XLEN/8, x3) + +inst_312: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x4, x1, 23*XLEN/8, x3) + +inst_313: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x33333332, x1, 24*XLEN/8, x3) + +inst_314: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x66666665, x1, 25*XLEN/8, x3) + +inst_315: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0xb503, x1, 26*XLEN/8, x3) + +inst_316: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x55555556, x1, 27*XLEN/8, x3) + +inst_317: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, -0x55555555, x1, 28*XLEN/8, x3) + +inst_318: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x6, x1, 29*XLEN/8, x3) + +inst_319: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x33333334, x1, 30*XLEN/8, x3) + +inst_320: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0x66666667, x1, 31*XLEN/8, x3) + +inst_321: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, -0xb503, x1, 32*XLEN/8, x3) + +inst_322: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555554, 0xb505, x1, 33*XLEN/8, x3) + +inst_323: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x3, x1, 34*XLEN/8, x3) + +inst_324: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x55555555, x1, 35*XLEN/8, x3) + +inst_325: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0x55555556, x1, 36*XLEN/8, x3) + +inst_326: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x5, x1, 37*XLEN/8, x3) + +inst_327: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x33333333, x1, 38*XLEN/8, x3) + +inst_328: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x66666666, x1, 39*XLEN/8, x3) + +inst_329: +// rs1_val==0 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0xb504, x1, 40*XLEN/8, x3) + +inst_330: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0xb504, x1, 41*XLEN/8, x3) + +inst_331: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, -0x55555555, x1, 42*XLEN/8, x3) + +inst_332: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x6, x1, 43*XLEN/8, x3) + +inst_333: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x33333334, x1, 44*XLEN/8, x3) + +inst_334: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x66666667, x1, 45*XLEN/8, x3) + +inst_335: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, -0xb503, x1, 46*XLEN/8, x3) + +inst_336: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0xb505, x1, 47*XLEN/8, x3) + +inst_337: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x3, x1, 48*XLEN/8, x3) + +inst_338: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x55555555, x1, 49*XLEN/8, x3) + +inst_339: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0x55555556, x1, 50*XLEN/8, x3) + +inst_340: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x5, x1, 51*XLEN/8, x3) + +inst_341: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x33333333, x1, 52*XLEN/8, x3) + +inst_342: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x66666666, x1, 53*XLEN/8, x3) + +inst_343: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0xb504, x1, 54*XLEN/8, x3) + +inst_344: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0xb504, x1, 55*XLEN/8, x3) + +inst_345: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x2, x1, 56*XLEN/8, x3) + +inst_346: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x55555554, x1, 57*XLEN/8, x3) + +inst_347: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x0, x1, 58*XLEN/8, x3) + +inst_348: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x4, x1, 59*XLEN/8, x3) + +inst_349: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x33333332, x1, 60*XLEN/8, x3) + +inst_350: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x66666665, x1, 61*XLEN/8, x3) + +inst_351: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0xb503, x1, 62*XLEN/8, x3) + +inst_352: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x55555556, x1, 63*XLEN/8, x3) + +inst_353: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0x55555555, x1, 64*XLEN/8, x3) + +inst_354: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x6, x1, 65*XLEN/8, x3) + +inst_355: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x33333334, x1, 66*XLEN/8, x3) + +inst_356: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x66666667, x1, 67*XLEN/8, x3) + +inst_357: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0xb503, x1, 68*XLEN/8, x3) + +inst_358: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0xb505, x1, 69*XLEN/8, x3) + +inst_359: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x3, x1, 70*XLEN/8, x3) + +inst_360: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x55555555, x1, 71*XLEN/8, x3) + +inst_361: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, -0x55555556, x1, 72*XLEN/8, x3) + +inst_362: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x5, x1, 73*XLEN/8, x3) + +inst_363: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x33333333, x1, 74*XLEN/8, x3) + +inst_364: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x66666666, x1, 75*XLEN/8, x3) + +inst_365: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, -0xb504, x1, 76*XLEN/8, x3) + +inst_366: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0xb504, x1, 77*XLEN/8, x3) + +inst_367: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x2, x1, 78*XLEN/8, x3) + +inst_368: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x55555554, x1, 79*XLEN/8, x3) + +inst_369: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x0, x1, 80*XLEN/8, x3) + +inst_370: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x4, x1, 81*XLEN/8, x3) + +inst_371: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x33333332, x1, 82*XLEN/8, x3) + +inst_372: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x66666665, x1, 83*XLEN/8, x3) + +inst_373: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0xb503, x1, 84*XLEN/8, x3) + +inst_374: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x55555556, x1, 85*XLEN/8, x3) + +inst_375: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, -0x55555555, x1, 86*XLEN/8, x3) + +inst_376: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x6, x1, 87*XLEN/8, x3) + +inst_377: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x33333334, x1, 88*XLEN/8, x3) + +inst_378: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0x66666667, x1, 89*XLEN/8, x3) + +inst_379: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, -0xb503, x1, 90*XLEN/8, x3) + +inst_380: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333334, 0xb505, x1, 91*XLEN/8, x3) + +inst_381: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x3, x1, 92*XLEN/8, x3) + +inst_382: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x55555555, x1, 93*XLEN/8, x3) + +inst_383: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, -0x55555556, x1, 94*XLEN/8, x3) + +inst_384: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x5, x1, 95*XLEN/8, x3) + +inst_385: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x33333333, x1, 96*XLEN/8, x3) + +inst_386: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x66666666, x1, 97*XLEN/8, x3) + +inst_387: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, -0xb504, x1, 98*XLEN/8, x3) + +inst_388: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0xb504, x1, 99*XLEN/8, x3) + +inst_389: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x2, x1, 100*XLEN/8, x3) + +inst_390: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x55555554, x1, 101*XLEN/8, x3) + +inst_391: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x0, x1, 102*XLEN/8, x3) + +inst_392: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x4, x1, 103*XLEN/8, x3) + +inst_393: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x33333332, x1, 104*XLEN/8, x3) + +inst_394: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x66666665, x1, 105*XLEN/8, x3) + +inst_395: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0xb503, x1, 106*XLEN/8, x3) + +inst_396: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x55555556, x1, 107*XLEN/8, x3) + +inst_397: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, -0x55555555, x1, 108*XLEN/8, x3) + +inst_398: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x6, x1, 109*XLEN/8, x3) + +inst_399: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x33333334, x1, 110*XLEN/8, x3) + +inst_400: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0x66666667, x1, 111*XLEN/8, x3) + +inst_401: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, -0xb503, x1, 112*XLEN/8, x3) + +inst_402: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666667, 0xb505, x1, 113*XLEN/8, x3) + +inst_403: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x3, x1, 114*XLEN/8, x3) + +inst_404: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x55555555, x1, 115*XLEN/8, x3) + +inst_405: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, -0x55555556, x1, 116*XLEN/8, x3) + +inst_406: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x5, x1, 117*XLEN/8, x3) + +inst_407: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x33333333, x1, 118*XLEN/8, x3) + +inst_408: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x66666666, x1, 119*XLEN/8, x3) + +inst_409: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, -0xb504, x1, 120*XLEN/8, x3) + +inst_410: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0xb504, x1, 121*XLEN/8, x3) + +inst_411: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x2, x1, 122*XLEN/8, x3) + +inst_412: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x55555554, x1, 123*XLEN/8, x3) + +inst_413: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x0, x1, 124*XLEN/8, x3) + +inst_414: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x4, x1, 125*XLEN/8, x3) + +inst_415: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x33333332, x1, 126*XLEN/8, x3) + +inst_416: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x66666665, x1, 127*XLEN/8, x3) + +inst_417: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0xb503, x1, 128*XLEN/8, x3) + +inst_418: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x55555556, x1, 129*XLEN/8, x3) + +inst_419: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, -0x55555555, x1, 130*XLEN/8, x3) + +inst_420: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x6, x1, 131*XLEN/8, x3) + +inst_421: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x33333334, x1, 132*XLEN/8, x3) + +inst_422: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0x66666667, x1, 133*XLEN/8, x3) + +inst_423: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, -0xb503, x1, 134*XLEN/8, x3) + +inst_424: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb503, 0xb505, x1, 135*XLEN/8, x3) + +inst_425: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x3, x1, 136*XLEN/8, x3) + +inst_426: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x55555555, x1, 137*XLEN/8, x3) + +inst_427: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, -0x55555556, x1, 138*XLEN/8, x3) + +inst_428: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x5, x1, 139*XLEN/8, x3) + +inst_429: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x33333333, x1, 140*XLEN/8, x3) + +inst_430: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x66666666, x1, 141*XLEN/8, x3) + +inst_431: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, -0xb504, x1, 142*XLEN/8, x3) + +inst_432: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0xb504, x1, 143*XLEN/8, x3) + +inst_433: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x2, x1, 144*XLEN/8, x3) + +inst_434: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x55555554, x1, 145*XLEN/8, x3) + +inst_435: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x0, x1, 146*XLEN/8, x3) + +inst_436: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x4, x1, 147*XLEN/8, x3) + +inst_437: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x33333332, x1, 148*XLEN/8, x3) + +inst_438: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x66666665, x1, 149*XLEN/8, x3) + +inst_439: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0xb503, x1, 150*XLEN/8, x3) + +inst_440: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x55555556, x1, 151*XLEN/8, x3) + +inst_441: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, -0x55555555, x1, 152*XLEN/8, x3) + +inst_442: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x6, x1, 153*XLEN/8, x3) + +inst_443: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x33333334, x1, 154*XLEN/8, x3) + +inst_444: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0x66666667, x1, 155*XLEN/8, x3) + +inst_445: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, -0xb503, x1, 156*XLEN/8, x3) + +inst_446: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb505, 0xb505, x1, 157*XLEN/8, x3) + +inst_447: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x2, x1, 158*XLEN/8, x3) + +inst_448: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x55555554, x1, 159*XLEN/8, x3) + +inst_449: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x0, x1, 160*XLEN/8, x3) + +inst_450: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x4, x1, 161*XLEN/8, x3) + +inst_451: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x33333332, x1, 162*XLEN/8, x3) + +inst_452: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x66666665, x1, 163*XLEN/8, x3) + +inst_453: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0xb503, x1, 164*XLEN/8, x3) + +inst_454: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x55555556, x1, 165*XLEN/8, x3) + +inst_455: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0x55555555, x1, 166*XLEN/8, x3) + +inst_456: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x6, x1, 167*XLEN/8, x3) + +inst_457: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x33333334, x1, 168*XLEN/8, x3) + +inst_458: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x66666667, x1, 169*XLEN/8, x3) + +inst_459: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0xb503, x1, 170*XLEN/8, x3) + +inst_460: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0xb505, x1, 171*XLEN/8, x3) + +inst_461: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x3, x1, 172*XLEN/8, x3) + +inst_462: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x55555555, x1, 173*XLEN/8, x3) + +inst_463: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0x55555556, x1, 174*XLEN/8, x3) + +inst_464: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x5, x1, 175*XLEN/8, x3) + +inst_465: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x33333333, x1, 176*XLEN/8, x3) + +inst_466: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x66666666, x1, 177*XLEN/8, x3) + +inst_467: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0xb504, x1, 178*XLEN/8, x3) + +inst_468: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0xb504, x1, 179*XLEN/8, x3) + +inst_469: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x2, x1, 180*XLEN/8, x3) + +inst_470: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x55555554, x1, 181*XLEN/8, x3) + +inst_471: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x0, x1, 182*XLEN/8, x3) + +inst_472: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x4, x1, 183*XLEN/8, x3) + +inst_473: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x33333332, x1, 184*XLEN/8, x3) + +inst_474: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x66666665, x1, 185*XLEN/8, x3) + +inst_475: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0xb503, x1, 186*XLEN/8, x3) + +inst_476: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x55555556, x1, 187*XLEN/8, x3) + +inst_477: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0x55555555, x1, 188*XLEN/8, x3) + +inst_478: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x6, x1, 189*XLEN/8, x3) + +inst_479: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x33333334, x1, 190*XLEN/8, x3) + +inst_480: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x66666667, x1, 191*XLEN/8, x3) + +inst_481: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0xb503, x1, 192*XLEN/8, x3) + +inst_482: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0xb505, x1, 193*XLEN/8, x3) + +inst_483: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x3, x1, 194*XLEN/8, x3) + +inst_484: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x55555555, x1, 195*XLEN/8, x3) + +inst_485: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, -0x55555556, x1, 196*XLEN/8, x3) + +inst_486: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x5, x1, 197*XLEN/8, x3) + +inst_487: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x33333333, x1, 198*XLEN/8, x3) + +inst_488: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x66666666, x1, 199*XLEN/8, x3) + +inst_489: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, -0xb504, x1, 200*XLEN/8, x3) + +inst_490: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0xb504, x1, 201*XLEN/8, x3) + +inst_491: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x2, x1, 202*XLEN/8, x3) + +inst_492: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x55555554, x1, 203*XLEN/8, x3) + +inst_493: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x0, x1, 204*XLEN/8, x3) + +inst_494: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x4, x1, 205*XLEN/8, x3) + +inst_495: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x33333332, x1, 206*XLEN/8, x3) + +inst_496: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x66666665, x1, 207*XLEN/8, x3) + +inst_497: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0xb503, x1, 208*XLEN/8, x3) + +inst_498: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x55555556, x1, 209*XLEN/8, x3) + +inst_499: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, -0x55555555, x1, 210*XLEN/8, x3) + +inst_500: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x6, x1, 211*XLEN/8, x3) + +inst_501: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x33333334, x1, 212*XLEN/8, x3) + +inst_502: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0x66666667, x1, 213*XLEN/8, x3) + +inst_503: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, -0xb503, x1, 214*XLEN/8, x3) + +inst_504: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x33333332, 0xb505, x1, 215*XLEN/8, x3) + +inst_505: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x3, x1, 216*XLEN/8, x3) + +inst_506: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x55555555, x1, 217*XLEN/8, x3) + +inst_507: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, -0x55555556, x1, 218*XLEN/8, x3) + +inst_508: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x5, x1, 219*XLEN/8, x3) + +inst_509: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x33333333, x1, 220*XLEN/8, x3) + +inst_510: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x66666666, x1, 221*XLEN/8, x3) + +inst_511: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, -0xb504, x1, 222*XLEN/8, x3) + +inst_512: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0xb504, x1, 223*XLEN/8, x3) + +inst_513: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x2, x1, 224*XLEN/8, x3) + +inst_514: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x55555554, x1, 225*XLEN/8, x3) + +inst_515: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x0, x1, 226*XLEN/8, x3) + +inst_516: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x4, x1, 227*XLEN/8, x3) + +inst_517: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x33333332, x1, 228*XLEN/8, x3) + +inst_518: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x66666665, x1, 229*XLEN/8, x3) + +inst_519: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0xb503, x1, 230*XLEN/8, x3) + +inst_520: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x55555556, x1, 231*XLEN/8, x3) + +inst_521: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, -0x55555555, x1, 232*XLEN/8, x3) + +inst_522: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x33333334, x1, 233*XLEN/8, x3) + +inst_523: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x66666667, x1, 234*XLEN/8, x3) + +inst_524: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, -0xb503, x1, 235*XLEN/8, x3) + +inst_525: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0xb505, x1, 236*XLEN/8, x3) + +inst_526: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x3, x1, 237*XLEN/8, x3) + +inst_527: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x55555555, x1, 238*XLEN/8, x3) + +inst_528: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, -0x55555556, x1, 239*XLEN/8, x3) + +inst_529: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x5, x1, 240*XLEN/8, x3) + +inst_530: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x33333333, x1, 241*XLEN/8, x3) + +inst_531: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x66666666, x1, 242*XLEN/8, x3) + +inst_532: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, -0xb504, x1, 243*XLEN/8, x3) + +inst_533: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0xb504, x1, 244*XLEN/8, x3) + +inst_534: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x2, x1, 245*XLEN/8, x3) + +inst_535: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x55555554, x1, 246*XLEN/8, x3) + +inst_536: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x0, x1, 247*XLEN/8, x3) + +inst_537: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x4, x1, 248*XLEN/8, x3) + +inst_538: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x33333332, x1, 249*XLEN/8, x3) + +inst_539: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x66666665, x1, 250*XLEN/8, x3) + +inst_540: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0xb503, x1, 251*XLEN/8, x3) + +inst_541: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x55555556, x1, 252*XLEN/8, x3) + +inst_542: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, -0x55555555, x1, 253*XLEN/8, x3) + +inst_543: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x6, x1, 254*XLEN/8, x3) + +inst_544: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x33333334, x1, 255*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_545: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0x66666667, x1, 0*XLEN/8, x3) + +inst_546: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, -0xb503, x1, 1*XLEN/8, x3) + +inst_547: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb503, 0xb505, x1, 2*XLEN/8, x3) + +inst_548: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x3, x1, 3*XLEN/8, x3) + +inst_549: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x55555555, x1, 4*XLEN/8, x3) + +inst_550: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, -0x55555556, x1, 5*XLEN/8, x3) + +inst_551: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x5, x1, 6*XLEN/8, x3) + +inst_552: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x33333333, x1, 7*XLEN/8, x3) + +inst_553: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x66666666, x1, 8*XLEN/8, x3) + +inst_554: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, -0xb504, x1, 9*XLEN/8, x3) + +inst_555: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0xb504, x1, 10*XLEN/8, x3) + +inst_556: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x2, x1, 11*XLEN/8, x3) + +inst_557: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x55555554, x1, 12*XLEN/8, x3) + +inst_558: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x0, x1, 13*XLEN/8, x3) + +inst_559: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x4, x1, 14*XLEN/8, x3) + +inst_560: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x33333332, x1, 15*XLEN/8, x3) + +inst_561: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x66666665, x1, 16*XLEN/8, x3) + +inst_562: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0xb503, x1, 17*XLEN/8, x3) + +inst_563: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x55555556, x1, 18*XLEN/8, x3) + +inst_564: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, -0x55555555, x1, 19*XLEN/8, x3) + +inst_565: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x6, x1, 20*XLEN/8, x3) + +inst_566: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x33333334, x1, 21*XLEN/8, x3) + +inst_567: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0x66666667, x1, 22*XLEN/8, x3) + +inst_568: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, -0xb503, x1, 23*XLEN/8, x3) + +inst_569: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x55555556, 0xb505, x1, 24*XLEN/8, x3) + +inst_570: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x3, x1, 25*XLEN/8, x3) + +inst_571: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x55555555, x1, 26*XLEN/8, x3) + +inst_572: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, -0x55555556, x1, 27*XLEN/8, x3) + +inst_573: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x5, x1, 28*XLEN/8, x3) + +inst_574: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x33333333, x1, 29*XLEN/8, x3) + +inst_575: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x66666666, x1, 30*XLEN/8, x3) + +inst_576: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, -0xb504, x1, 31*XLEN/8, x3) + +inst_577: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0xb504, x1, 32*XLEN/8, x3) + +inst_578: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x2, x1, 33*XLEN/8, x3) + +inst_579: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x55555554, x1, 34*XLEN/8, x3) + +inst_580: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x0, x1, 35*XLEN/8, x3) + +inst_581: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x4, x1, 36*XLEN/8, x3) + +inst_582: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x33333332, x1, 37*XLEN/8, x3) + +inst_583: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x66666665, x1, 38*XLEN/8, x3) + +inst_584: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0xb503, x1, 39*XLEN/8, x3) + +inst_585: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x55555555, 0x55555556, x1, 40*XLEN/8, x3) + +inst_586: +// rs1_val != rs2_val, rs1_val > 0 and rs2_val > 0, rs1_val==1717986917 and rs2_val==6 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x66666665, 0x6, x1, 41*XLEN/8, x3) + +inst_587: +// rs1_val < 0 and rs2_val < 0, rs2_val == -513 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x7; op2val:-0x201 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x7, -0x201, x1, 42*XLEN/8, x3) + +inst_588: +// rs2_val == -2049, rs1_val == -1073741825 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:-0x801 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000001, -0x801, x1, 43*XLEN/8, x3) + +inst_589: +// rs2_val == -131073, rs1_val == 536870912 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x20001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20000000, -0x20001, x1, 44*XLEN/8, x3) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x9_0: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 45*((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/Zimop/src/mop.rr.6-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.6-01.S new file mode 100644 index 000000000..235b89c73 --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.6-01.S @@ -0,0 +1,3032 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.6 instruction of the RISC-V RV32Zimop extension for the mop.rr.6 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.6) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x13, rs2==x13, rd==x13, rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0, rs1_val == 1024 +// opcode: mop.rr.6 ; op1:x13; op2:x13; dest:x13; op1val:0x400; op2val:0x400 +TEST_RR_OP(mop.rr.6, x13, x13, x13, 0, 0x400, 0x400, x3, 0*XLEN/8, x4) + +inst_1: +// rs1 == rs2 != rd, rs1==x28, rs2==x28, rd==x5, rs1_val < 0 and rs2_val < 0, rs1_val == -131073 +// opcode: mop.rr.6 ; op1:x28; op2:x28; dest:x5; op1val:-0x20001; op2val:-0x20001 +TEST_RR_OP(mop.rr.6, x5, x28, x28, 0, -0x20001, -0x20001, x3, 1*XLEN/8, x4) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x26, rs2==x14, rd==x19, rs1_val < 0 and rs2_val > 0, rs2_val == 1048576, rs1_val == -536870913 +// opcode: mop.rr.6 ; op1:x26; op2:x14; dest:x19; op1val:-0x20000001; op2val:0x100000 +TEST_RR_OP(mop.rr.6, x19, x26, x14, 0, -0x20000001, 0x100000, x3, 2*XLEN/8, x4) + +inst_3: +// rs2 == rd != rs1, rs1==x20, rs2==x15, rd==x15, rs1_val == (-2**(xlen-1)), rs2_val == 8192, rs1_val == -2147483648 +// opcode: mop.rr.6 ; op1:x20; op2:x15; dest:x15; op1val:-0x80000000; op2val:0x2000 +TEST_RR_OP(mop.rr.6, x15, x20, x15, 0, -0x80000000, 0x2000, x3, 3*XLEN/8, x4) + +inst_4: +// rs1 == rd != rs2, rs1==x23, rs2==x0, rd==x23, rs1_val == (2**(xlen-1)-1), rs2_val == 512, rs1_val == 2147483647, rs1_val > 0 and rs2_val > 0 +// opcode: mop.rr.6 ; op1:x23; op2:x0; dest:x23; op1val:0x7fffffff; op2val:0x0 +TEST_RR_OP(mop.rr.6, x23, x23, x0, 0, 0x7fffffff, 0x0, x3, 4*XLEN/8, x4) + +inst_5: +// rs1==x14, rs2==x16, rd==x24, rs1_val == 0, rs2_val == 2, rs1_val==0 and rs2_val==2 +// opcode: mop.rr.6 ; op1:x14; op2:x16; dest:x24; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.6, x24, x14, x16, 0, 0x0, 0x2, x3, 5*XLEN/8, x4) + +inst_6: +// rs1==x30, rs2==x23, rd==x17, rs1_val == 1, rs2_val == 8388608 +// opcode: mop.rr.6 ; op1:x30; op2:x23; dest:x17; op1val:0x1; op2val:0x800000 +TEST_RR_OP(mop.rr.6, x17, x30, x23, 0, 0x1, 0x800000, x3, 6*XLEN/8, x4) + +inst_7: +// rs1==x19, rs2==x20, rd==x0, rs2_val == -2, rs1_val == 128 +// opcode: mop.rr.6 ; op1:x19; op2:x20; dest:x0; op1val:0x80; op2val:-0x2 +TEST_RR_OP(mop.rr.6, x0, x19, x20, 0, 0x80, -0x2, x3, 7*XLEN/8, x4) + +inst_8: +// rs1==x1, rs2==x5, rd==x28, rs2_val == -3, +// opcode: mop.rr.6 ; op1:x1; op2:x5; dest:x28; op1val:-0x80000000; op2val:-0x3 +TEST_RR_OP(mop.rr.6, x28, x1, x5, 0, -0x80000000, -0x3, x3, 8*XLEN/8, x4) + +inst_9: +// rs1==x16, rs2==x18, rd==x21, rs2_val == -5, rs1_val == 65536 +// opcode: mop.rr.6 ; op1:x16; op2:x18; dest:x21; op1val:0x10000; op2val:-0x5 +TEST_RR_OP(mop.rr.6, x21, x16, x18, 0, 0x10000, -0x5, x3, 9*XLEN/8, x4) + +inst_10: +// rs1==x17, rs2==x29, rd==x20, rs2_val == -9, rs1_val == -1073741825 +// opcode: mop.rr.6 ; op1:x17; op2:x29; dest:x20; op1val:-0x40000001; op2val:-0x9 +TEST_RR_OP(mop.rr.6, x20, x17, x29, 0, -0x40000001, -0x9, x3, 10*XLEN/8, x4) + +inst_11: +// rs1==x9, rs2==x12, rd==x2, rs2_val == -17, +// opcode: mop.rr.6 ; op1:x9; op2:x12; dest:x2; op1val:-0x4; op2val:-0x11 +TEST_RR_OP(mop.rr.6, x2, x9, x12, 0, -0x4, -0x11, x3, 11*XLEN/8, x4) + +inst_12: +// rs1==x5, rs2==x30, rd==x10, rs2_val == -33, +// opcode: mop.rr.6 ; op1:x5; op2:x30; dest:x10; op1val:0x400; op2val:-0x21 +TEST_RR_OP(mop.rr.6, x10, x5, x30, 0, 0x400, -0x21, x3, 12*XLEN/8, x4) + +inst_13: +// rs1==x0, rs2==x9, rd==x7, rs2_val == -65, rs1_val == -4194305 +// opcode: mop.rr.6 ; op1:x0; op2:x9; dest:x7; op1val:0x0; op2val:-0x41 +TEST_RR_OP(mop.rr.6, x7, x0, x9, 0, 0x0, -0x41, x3, 13*XLEN/8, x4) + +inst_14: +// rs1==x29, rs2==x24, rd==x31, rs2_val == -129, rs1_val == -262145 +// opcode: mop.rr.6 ; op1:x29; op2:x24; dest:x31; op1val:-0x40001; op2val:-0x81 +TEST_RR_OP(mop.rr.6, x31, x29, x24, 0, -0x40001, -0x81, x3, 14*XLEN/8, x4) + +inst_15: +// rs1==x18, rs2==x22, rd==x8, rs2_val == -257, rs1_val == 4194304 +// opcode: mop.rr.6 ; op1:x18; op2:x22; dest:x8; op1val:0x400000; op2val:-0x101 +TEST_RR_OP(mop.rr.6, x8, x18, x22, 0, 0x400000, -0x101, x3, 15*XLEN/8, x4) + +inst_16: +// rs1==x7, rs2==x6, rd==x26, rs2_val == -513, rs1_val == 134217728 +// opcode: mop.rr.6 ; op1:x7; op2:x6; dest:x26; op1val:0x8000000; op2val:-0x201 +TEST_RR_OP(mop.rr.6, x26, x7, x6, 0, 0x8000000, -0x201, x3, 16*XLEN/8, x9) +RVTEST_SIGBASE(x5,signature_x5_0) + +inst_17: +// rs1==x15, rs2==x2, rd==x11, rs2_val == -1025, rs1_val == 4096 +// opcode: mop.rr.6 ; op1:x15; op2:x2; dest:x11; op1val:0x1000; op2val:-0x401 +TEST_RR_OP(mop.rr.6, x11, x15, x2, 0, 0x1000, -0x401, x5, 0*XLEN/8, x9) + +inst_18: +// rs1==x24, rs2==x3, rd==x25, rs2_val == -2049, +// opcode: mop.rr.6 ; op1:x24; op2:x3; dest:x25; op1val:0x0; op2val:-0x801 +TEST_RR_OP(mop.rr.6, x25, x24, x3, 0, 0x0, -0x801, x5, 1*XLEN/8, x9) + +inst_19: +// rs1==x8, rs2==x31, rd==x14, rs2_val == -4097, rs1_val == 1048576 +// opcode: mop.rr.6 ; op1:x8; op2:x31; dest:x14; op1val:0x100000; op2val:-0x1001 +TEST_RR_OP(mop.rr.6, x14, x8, x31, 0, 0x100000, -0x1001, x5, 2*XLEN/8, x9) + +inst_20: +// rs1==x21, rs2==x17, rd==x29, rs2_val == -8193, rs1_val == 2048 +// opcode: mop.rr.6 ; op1:x21; op2:x17; dest:x29; op1val:0x800; op2val:-0x2001 +TEST_RR_OP(mop.rr.6, x29, x21, x17, 0, 0x800, -0x2001, x5, 3*XLEN/8, x9) + +inst_21: +// rs1==x4, rs2==x27, rd==x22, rs2_val == -16385, rs1_val == 524288 +// opcode: mop.rr.6 ; op1:x4; op2:x27; dest:x22; op1val:0x80000; op2val:-0x4001 +TEST_RR_OP(mop.rr.6, x22, x4, x27, 0, 0x80000, -0x4001, x5, 4*XLEN/8, x9) + +inst_22: +// rs1==x2, rs2==x19, rd==x3, rs2_val == -32769, rs1_val == -16385 +// opcode: mop.rr.6 ; op1:x2; op2:x19; dest:x3; op1val:-0x4001; op2val:-0x8001 +TEST_RR_OP(mop.rr.6, x3, x2, x19, 0, -0x4001, -0x8001, x5, 5*XLEN/8, x9) + +inst_23: +// rs1==x25, rs2==x21, rd==x16, rs2_val == -65537, rs1_val == 4 +// opcode: mop.rr.6 ; op1:x25; op2:x21; dest:x16; op1val:0x4; op2val:-0x10001 +TEST_RR_OP(mop.rr.6, x16, x25, x21, 0, 0x4, -0x10001, x5, 6*XLEN/8, x9) + +inst_24: +// rs1==x22, rs2==x1, rd==x4, rs2_val == -131073, +// opcode: mop.rr.6 ; op1:x22; op2:x1; dest:x4; op1val:-0xb504; op2val:-0x20001 +TEST_RR_OP(mop.rr.6, x4, x22, x1, 0, -0xb504, -0x20001, x5, 7*XLEN/8, x9) + +inst_25: +// rs1==x10, rs2==x25, rd==x12, rs2_val == -262145, +// opcode: mop.rr.6 ; op1:x10; op2:x25; dest:x12; op1val:-0xa; op2val:-0x40001 +TEST_RR_OP(mop.rr.6, x12, x10, x25, 0, -0xa, -0x40001, x5, 8*XLEN/8, x9) + +inst_26: +// rs1==x6, rs2==x8, rd==x18, rs2_val == -524289, rs1_val == -2049 +// opcode: mop.rr.6 ; op1:x6; op2:x8; dest:x18; op1val:-0x801; op2val:-0x80001 +TEST_RR_OP(mop.rr.6, x18, x6, x8, 0, -0x801, -0x80001, x5, 9*XLEN/8, x9) + +inst_27: +// rs1==x11, rs2==x7, rd==x30, rs2_val == -1048577, rs1_val == -9 +// opcode: mop.rr.6 ; op1:x11; op2:x7; dest:x30; op1val:-0x9; op2val:-0x100001 +TEST_RR_OP(mop.rr.6, x30, x11, x7, 0, -0x9, -0x100001, x5, 10*XLEN/8, x9) + +inst_28: +// rs1==x3, rs2==x26, rd==x27, rs2_val == -2097153, +// opcode: mop.rr.6 ; op1:x3; op2:x26; dest:x27; op1val:0x0; op2val:-0x200001 +TEST_RR_OP(mop.rr.6, x27, x3, x26, 0, 0x0, -0x200001, x5, 11*XLEN/8, x7) + +inst_29: +// rs1==x12, rs2==x4, rd==x9, rs2_val == -4194305, rs1_val == 67108864 +// opcode: mop.rr.6 ; op1:x12; op2:x4; dest:x9; op1val:0x4000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.6, x9, x12, x4, 0, 0x4000000, -0x400001, x5, 12*XLEN/8, x7) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_30: +// rs1==x27, rs2==x10, rd==x6, rs2_val == -8388609, +// opcode: mop.rr.6 ; op1:x27; op2:x10; dest:x6; op1val:0x1; op2val:-0x800001 +TEST_RR_OP(mop.rr.6, x6, x27, x10, 0, 0x1, -0x800001, x2, 0*XLEN/8, x7) + +inst_31: +// rs1==x31, rs2==x11, rd==x1, rs2_val == -16777217, rs1_val == 2 +// opcode: mop.rr.6 ; op1:x31; op2:x11; dest:x1; op1val:0x2; op2val:-0x1000001 +TEST_RR_OP(mop.rr.6, x1, x31, x11, 0, 0x2, -0x1000001, x2, 1*XLEN/8, x7) + +inst_32: +// rs2_val == -33554433, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x2000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, -0x2000001, x2, 2*XLEN/8, x7) + +inst_33: +// rs2_val == -67108865, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:-0x4000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x7, -0x4000001, x2, 3*XLEN/8, x7) + +inst_34: +// rs2_val == -134217729, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x8000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, -0x8000001, x2, 4*XLEN/8, x7) + +inst_35: +// rs2_val == -268435457, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x10000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x10000001, x2, 5*XLEN/8, x7) + +inst_36: +// rs2_val == -536870913, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:-0x20000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800, -0x20000001, x2, 6*XLEN/8, x7) + +inst_37: +// rs2_val == -1073741825, rs1_val == 8 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:-0x40000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8, -0x40000001, x2, 7*XLEN/8, x7) + +inst_38: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x7fffffff +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x7fffffff, x2, 8*XLEN/8, x7) + +inst_39: +// rs1_val == -2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x200001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2, -0x200001, x2, 9*XLEN/8, x7) + +inst_40: +// rs1_val == -3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x80001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x3, -0x80001, x2, 10*XLEN/8, x7) + +inst_41: +// rs1_val == -5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x8001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5, -0x8001, x2, 11*XLEN/8, x7) + +inst_42: +// rs1_val == -17, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x9 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x11, 0x9, x2, 12*XLEN/8, x7) + +inst_43: +// rs1_val == -33, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x21, 0x66666666, x2, 13*XLEN/8, x7) + +inst_44: +// rs1_val == -65, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x41, 0xb505, x2, 14*XLEN/8, x7) + +inst_45: +// rs1_val == -129, rs2_val == 16384 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x4000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x81, 0x4000, x2, 15*XLEN/8, x7) + +inst_46: +// rs1_val == -257, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x100000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x101, 0x100000, x2, 16*XLEN/8, x7) + +inst_47: +// rs1_val == -513, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x11 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x201, -0x11, x2, 17*XLEN/8, x7) + +inst_48: +// rs1_val == -1025, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x80001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x401, -0x80001, x2, 18*XLEN/8, x7) + +inst_49: +// rs1_val == -4097, rs2_val == 268435456 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x10000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1001, 0x10000000, x2, 19*XLEN/8, x7) + +inst_50: +// rs1_val == -8193, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2001, 0xb505, x2, 20*XLEN/8, x7) + +inst_51: +// rs1_val == -32769, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8001, 0x33333332, x2, 21*XLEN/8, x7) + +inst_52: +// rs1_val == -65537, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x10001, 0x6, x2, 22*XLEN/8, x7) + +inst_53: +// rs1_val == -524289, rs2_val == 128 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x80 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x80001, 0x80, x2, 23*XLEN/8, x7) + +inst_54: +// rs1_val == -1048577, rs2_val == 4194304 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x400000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x100001, 0x400000, x2, 24*XLEN/8, x7) + +inst_55: +// rs1_val == -2097153, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x100000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x200001, 0x100000, x2, 25*XLEN/8, x7) + +inst_56: +// rs1_val == -8388609, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x800001, 0x66666667, x2, 26*XLEN/8, x7) + +inst_57: +// rs1_val == -16777217, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x2001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1000001, -0x2001, x2, 27*XLEN/8, x7) + +inst_58: +// rs1_val == -33554433, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x101 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2000001, -0x101, x2, 28*XLEN/8, x7) + +inst_59: +// rs1_val == -67108865, rs2_val == 0 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000001, 0x0, x2, 29*XLEN/8, x7) + +inst_60: +// rs1_val == -134217729, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x100001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8000001, -0x100001, x2, 30*XLEN/8, x7) + +inst_61: +// rs1_val == -268435457, rs2_val == 4 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x10000001, 0x4, x2, 31*XLEN/8, x7) + +inst_62: +// rs2_val == 1, rs1_val == 33554432 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x1 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000000, 0x1, x2, 32*XLEN/8, x7) + +inst_63: +// rs2_val == 8, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x8 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1000001, 0x8, x2, 33*XLEN/8, x7) + +inst_64: +// rs2_val == 16, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x10 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x81, 0x10, x2, 34*XLEN/8, x7) + +inst_65: +// rs2_val == 32, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x20 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20000001, 0x20, x2, 35*XLEN/8, x7) + +inst_66: +// rs2_val == 64, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x40 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x40, x2, 36*XLEN/8, x7) + +inst_67: +// rs2_val == 256, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x100 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x9, 0x100, x2, 37*XLEN/8, x7) + +inst_68: +// rs2_val == 1024, rs1_val == 1431655765 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x400 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x400, x2, 38*XLEN/8, x7) + +inst_69: +// rs2_val == 2048, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x800 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x81, 0x800, x2, 39*XLEN/8, x7) + +inst_70: +// rs2_val == 4096, rs1_val == 262144 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x1000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40000, 0x1000, x2, 40*XLEN/8, x7) + +inst_71: +// rs2_val == 32768, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x8000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x201, 0x8000, x2, 41*XLEN/8, x7) + +inst_72: +// rs2_val == 65536, rs1_val == 536870912 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x10000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20000000, 0x10000, x2, 42*XLEN/8, x7) + +inst_73: +// rs2_val == 131072, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x20000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x20000, x2, 43*XLEN/8, x7) + +inst_74: +// rs2_val == 262144, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x40000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x40000, x2, 44*XLEN/8, x7) + +inst_75: +// rs2_val == 524288, rs1_val == 2097152 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x80000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200000, 0x80000, x2, 45*XLEN/8, x7) + +inst_76: +// rs2_val == 2097152, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x200000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x200000, x2, 46*XLEN/8, x7) + +inst_77: +// rs2_val == 16777216, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x1000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10000, 0x1000000, x2, 47*XLEN/8, x7) + +inst_78: +// rs2_val == 33554432, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x2000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x40001, 0x2000000, x2, 48*XLEN/8, x7) + +inst_79: +// rs2_val == 67108864, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x4000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x9, 0x4000000, x2, 49*XLEN/8, x7) + +inst_80: +// rs2_val == 134217728, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x8000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x81, 0x8000000, x2, 50*XLEN/8, x7) + +inst_81: +// rs2_val == 536870912, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x20000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x40001, 0x20000000, x2, 51*XLEN/8, x7) + +inst_82: +// rs2_val == 1073741824, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3fffffff; op2val:0x40000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3fffffff, 0x40000000, x2, 52*XLEN/8, x7) + +inst_83: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x80000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400001, -0x80000000, x2, 53*XLEN/8, x7) + +inst_84: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x3, x2, 54*XLEN/8, x7) + +inst_85: +// rs1_val == 16, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x4001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10, -0x4001, x2, 55*XLEN/8, x7) + +inst_86: +// rs1_val == 32, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x1000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20, -0x1000001, x2, 56*XLEN/8, x7) + +inst_87: +// rs1_val == 64, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40, 0x0, x2, 57*XLEN/8, x7) + +inst_88: +// rs1_val == 256, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x8 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x100, 0x8, x2, 58*XLEN/8, x7) + +inst_89: +// rs1_val == 512, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:-0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200, -0x2, x2, 59*XLEN/8, x7) + +inst_90: +// rs1_val == 8192, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:0x7 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000, 0x7, x2, 60*XLEN/8, x7) + +inst_91: +// rs1_val == 16384, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x4001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4000, -0x4001, x2, 61*XLEN/8, x7) + +inst_92: +// rs1_val == 32768, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8000, 0xb503, x2, 62*XLEN/8, x7) + +inst_93: +// rs1_val == 131072, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x10 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20000, 0x10, x2, 63*XLEN/8, x7) + +inst_94: +// rs1_val == 8388608, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000, 0x33333332, x2, 64*XLEN/8, x7) + +inst_95: +// rs1_val == 16777216, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000, -0x10000001, x2, 65*XLEN/8, x7) + +inst_96: +// rs1_val == 268435456, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10000000, 0x4, x2, 66*XLEN/8, x7) + +inst_97: +// rs1_val == 1073741824, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x1 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40000000, -0x1, x2, 67*XLEN/8, x7) + +inst_98: +// rs1_val==3 and rs2_val==1431655765, rs2_val == 1431655765 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x55555555, x2, 68*XLEN/8, x7) + +inst_99: +// rs1_val==3 and rs2_val==-1431655766, rs2_val == -1431655766 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0x55555556, x2, 69*XLEN/8, x7) + +inst_100: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x5, x2, 70*XLEN/8, x7) + +inst_101: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x33333333, x2, 71*XLEN/8, x7) + +inst_102: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x66666666, x2, 72*XLEN/8, x7) + +inst_103: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0xb504, x2, 73*XLEN/8, x7) + +inst_104: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0xb504, x2, 74*XLEN/8, x7) + +inst_105: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x2, x2, 75*XLEN/8, x7) + +inst_106: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x55555554, x2, 76*XLEN/8, x7) + +inst_107: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x0, x2, 77*XLEN/8, x7) + +inst_108: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x4, x2, 78*XLEN/8, x7) + +inst_109: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x33333332, x2, 79*XLEN/8, x7) + +inst_110: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x66666665, x2, 80*XLEN/8, x7) + +inst_111: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0xb503, x2, 81*XLEN/8, x7) + +inst_112: +// rs1_val == -1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x801 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, -0x801, x2, 82*XLEN/8, x7) + +inst_113: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x55555556, x2, 83*XLEN/8, x7) + +inst_114: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0x55555555, x2, 84*XLEN/8, x7) + +inst_115: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x6, x2, 85*XLEN/8, x7) + +inst_116: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x33333334, x2, 86*XLEN/8, x7) + +inst_117: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x66666667, x2, 87*XLEN/8, x7) + +inst_118: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0xb503, x2, 88*XLEN/8, x7) + +inst_119: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0xb505, x2, 89*XLEN/8, x7) + +inst_120: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x3, x2, 90*XLEN/8, x7) + +inst_121: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x55555555, x2, 91*XLEN/8, x7) + +inst_122: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, -0x55555556, x2, 92*XLEN/8, x7) + +inst_123: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x5, x2, 93*XLEN/8, x7) + +inst_124: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x33333333, x2, 94*XLEN/8, x7) + +inst_125: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x66666666, x2, 95*XLEN/8, x7) + +inst_126: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, -0xb504, x2, 96*XLEN/8, x7) + +inst_127: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0xb504, x2, 97*XLEN/8, x7) + +inst_128: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x2, x2, 98*XLEN/8, x7) + +inst_129: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x55555554, x2, 99*XLEN/8, x7) + +inst_130: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x0, x2, 100*XLEN/8, x7) + +inst_131: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x4, x2, 101*XLEN/8, x7) + +inst_132: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x33333332, x2, 102*XLEN/8, x7) + +inst_133: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x66666665, x2, 103*XLEN/8, x7) + +inst_134: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0xb503, x2, 104*XLEN/8, x7) + +inst_135: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x55555556, x2, 105*XLEN/8, x7) + +inst_136: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, -0x55555555, x2, 106*XLEN/8, x7) + +inst_137: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x6, x2, 107*XLEN/8, x7) + +inst_138: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x33333334, x2, 108*XLEN/8, x7) + +inst_139: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0x66666667, x2, 109*XLEN/8, x7) + +inst_140: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, -0xb503, x2, 110*XLEN/8, x7) + +inst_141: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555555, 0xb505, x2, 111*XLEN/8, x7) + +inst_142: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x3, x2, 112*XLEN/8, x7) + +inst_143: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x55555555, x2, 113*XLEN/8, x7) + +inst_144: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, -0x55555556, x2, 114*XLEN/8, x7) + +inst_145: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x5, x2, 115*XLEN/8, x7) + +inst_146: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x33333333, x2, 116*XLEN/8, x7) + +inst_147: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x66666666, x2, 117*XLEN/8, x7) + +inst_148: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, -0xb504, x2, 118*XLEN/8, x7) + +inst_149: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0xb504, x2, 119*XLEN/8, x7) + +inst_150: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x2, x2, 120*XLEN/8, x7) + +inst_151: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x55555554, x2, 121*XLEN/8, x7) + +inst_152: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x0, x2, 122*XLEN/8, x7) + +inst_153: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x4, x2, 123*XLEN/8, x7) + +inst_154: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x33333332, x2, 124*XLEN/8, x7) + +inst_155: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x66666665, x2, 125*XLEN/8, x7) + +inst_156: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0xb503, x2, 126*XLEN/8, x7) + +inst_157: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x55555556, x2, 127*XLEN/8, x7) + +inst_158: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, -0x55555555, x2, 128*XLEN/8, x7) + +inst_159: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x6, x2, 129*XLEN/8, x7) + +inst_160: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x33333334, x2, 130*XLEN/8, x7) + +inst_161: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0x66666667, x2, 131*XLEN/8, x7) + +inst_162: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, -0xb503, x2, 132*XLEN/8, x7) + +inst_163: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555556, 0xb505, x2, 133*XLEN/8, x7) + +inst_164: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x3, x2, 134*XLEN/8, x7) + +inst_165: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x55555555, x2, 135*XLEN/8, x7) + +inst_166: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0x55555556, x2, 136*XLEN/8, x7) + +inst_167: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x5, x2, 137*XLEN/8, x7) + +inst_168: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x33333333, x2, 138*XLEN/8, x7) + +inst_169: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x66666666, x2, 139*XLEN/8, x7) + +inst_170: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0xb504, x2, 140*XLEN/8, x7) + +inst_171: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0xb504, x2, 141*XLEN/8, x7) + +inst_172: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x2, x2, 142*XLEN/8, x7) + +inst_173: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x55555554, x2, 143*XLEN/8, x7) + +inst_174: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x0, x2, 144*XLEN/8, x7) + +inst_175: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x4, x2, 145*XLEN/8, x7) + +inst_176: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x33333332, x2, 146*XLEN/8, x7) + +inst_177: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x66666665, x2, 147*XLEN/8, x7) + +inst_178: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0xb503, x2, 148*XLEN/8, x7) + +inst_179: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x55555556, x2, 149*XLEN/8, x7) + +inst_180: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0x55555555, x2, 150*XLEN/8, x7) + +inst_181: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x6, x2, 151*XLEN/8, x7) + +inst_182: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x33333334, x2, 152*XLEN/8, x7) + +inst_183: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x66666667, x2, 153*XLEN/8, x7) + +inst_184: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0xb503, x2, 154*XLEN/8, x7) + +inst_185: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0xb505, x2, 155*XLEN/8, x7) + +inst_186: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x3, x2, 156*XLEN/8, x7) + +inst_187: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x55555555, x2, 157*XLEN/8, x7) + +inst_188: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, -0x55555556, x2, 158*XLEN/8, x7) + +inst_189: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x5, x2, 159*XLEN/8, x7) + +inst_190: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x33333333, x2, 160*XLEN/8, x7) + +inst_191: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x66666666, x2, 161*XLEN/8, x7) + +inst_192: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, -0xb504, x2, 162*XLEN/8, x7) + +inst_193: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0xb504, x2, 163*XLEN/8, x7) + +inst_194: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x2, x2, 164*XLEN/8, x7) + +inst_195: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x55555554, x2, 165*XLEN/8, x7) + +inst_196: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x0, x2, 166*XLEN/8, x7) + +inst_197: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x4, x2, 167*XLEN/8, x7) + +inst_198: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x33333332, x2, 168*XLEN/8, x7) + +inst_199: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x66666665, x2, 169*XLEN/8, x7) + +inst_200: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0xb503, x2, 170*XLEN/8, x7) + +inst_201: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x55555556, x2, 171*XLEN/8, x7) + +inst_202: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, -0x55555555, x2, 172*XLEN/8, x7) + +inst_203: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x6, x2, 173*XLEN/8, x7) + +inst_204: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x33333334, x2, 174*XLEN/8, x7) + +inst_205: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0x66666667, x2, 175*XLEN/8, x7) + +inst_206: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, -0xb503, x2, 176*XLEN/8, x7) + +inst_207: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333333, 0xb505, x2, 177*XLEN/8, x7) + +inst_208: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x3, x2, 178*XLEN/8, x7) + +inst_209: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x55555555, x2, 179*XLEN/8, x7) + +inst_210: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, -0x55555556, x2, 180*XLEN/8, x7) + +inst_211: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x5, x2, 181*XLEN/8, x7) + +inst_212: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x33333333, x2, 182*XLEN/8, x7) + +inst_213: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x66666666, x2, 183*XLEN/8, x7) + +inst_214: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, -0xb504, x2, 184*XLEN/8, x7) + +inst_215: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0xb504, x2, 185*XLEN/8, x7) + +inst_216: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x2, x2, 186*XLEN/8, x7) + +inst_217: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x55555554, x2, 187*XLEN/8, x7) + +inst_218: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x0, x2, 188*XLEN/8, x7) + +inst_219: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x4, x2, 189*XLEN/8, x7) + +inst_220: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x33333332, x2, 190*XLEN/8, x7) + +inst_221: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x66666665, x2, 191*XLEN/8, x7) + +inst_222: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0xb503, x2, 192*XLEN/8, x7) + +inst_223: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x55555556, x2, 193*XLEN/8, x7) + +inst_224: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, -0x55555555, x2, 194*XLEN/8, x7) + +inst_225: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x6, x2, 195*XLEN/8, x7) + +inst_226: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x33333334, x2, 196*XLEN/8, x7) + +inst_227: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0x66666667, x2, 197*XLEN/8, x7) + +inst_228: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, -0xb503, x2, 198*XLEN/8, x7) + +inst_229: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666666, 0xb505, x2, 199*XLEN/8, x7) + +inst_230: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x3, x2, 200*XLEN/8, x7) + +inst_231: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x55555555, x2, 201*XLEN/8, x7) + +inst_232: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, -0x55555556, x2, 202*XLEN/8, x7) + +inst_233: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x5, x2, 203*XLEN/8, x7) + +inst_234: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x33333333, x2, 204*XLEN/8, x7) + +inst_235: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x66666666, x2, 205*XLEN/8, x7) + +inst_236: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, -0xb504, x2, 206*XLEN/8, x7) + +inst_237: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0xb504, x2, 207*XLEN/8, x7) + +inst_238: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x2, x2, 208*XLEN/8, x7) + +inst_239: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x55555554, x2, 209*XLEN/8, x7) + +inst_240: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x0, x2, 210*XLEN/8, x7) + +inst_241: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x4, x2, 211*XLEN/8, x7) + +inst_242: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x33333332, x2, 212*XLEN/8, x7) + +inst_243: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x66666665, x2, 213*XLEN/8, x7) + +inst_244: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0xb503, x2, 214*XLEN/8, x7) + +inst_245: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x55555556, x2, 215*XLEN/8, x7) + +inst_246: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, -0x55555555, x2, 216*XLEN/8, x7) + +inst_247: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x6, x2, 217*XLEN/8, x7) + +inst_248: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x33333334, x2, 218*XLEN/8, x7) + +inst_249: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0x66666667, x2, 219*XLEN/8, x7) + +inst_250: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, -0xb503, x2, 220*XLEN/8, x7) + +inst_251: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504, 0xb505, x2, 221*XLEN/8, x7) + +inst_252: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x3, x2, 222*XLEN/8, x7) + +inst_253: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x55555555, x2, 223*XLEN/8, x7) + +inst_254: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, -0x55555556, x2, 224*XLEN/8, x7) + +inst_255: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x5, x2, 225*XLEN/8, x7) + +inst_256: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x33333333, x2, 226*XLEN/8, x7) + +inst_257: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x66666666, x2, 227*XLEN/8, x7) + +inst_258: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, -0xb504, x2, 228*XLEN/8, x7) + +inst_259: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0xb504, x2, 229*XLEN/8, x7) + +inst_260: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x2, x2, 230*XLEN/8, x7) + +inst_261: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x55555554, x2, 231*XLEN/8, x7) + +inst_262: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x0, x2, 232*XLEN/8, x7) + +inst_263: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x4, x2, 233*XLEN/8, x7) + +inst_264: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x33333332, x2, 234*XLEN/8, x7) + +inst_265: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x66666665, x2, 235*XLEN/8, x7) + +inst_266: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0xb503, x2, 236*XLEN/8, x7) + +inst_267: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x55555556, x2, 237*XLEN/8, x7) + +inst_268: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, -0x55555555, x2, 238*XLEN/8, x7) + +inst_269: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x6, x2, 239*XLEN/8, x7) + +inst_270: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x33333334, x2, 240*XLEN/8, x7) + +inst_271: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0x66666667, x2, 241*XLEN/8, x7) + +inst_272: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, -0xb503, x2, 242*XLEN/8, x7) + +inst_273: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504, 0xb505, x2, 243*XLEN/8, x7) + +inst_274: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x3, x2, 244*XLEN/8, x7) + +inst_275: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x55555555, x2, 245*XLEN/8, x7) + +inst_276: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0x55555556, x2, 246*XLEN/8, x7) + +inst_277: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x5, x2, 247*XLEN/8, x7) + +inst_278: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x33333333, x2, 248*XLEN/8, x7) + +inst_279: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x66666666, x2, 249*XLEN/8, x7) + +inst_280: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0xb504, x2, 250*XLEN/8, x7) + +inst_281: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0xb504, x2, 251*XLEN/8, x7) + +inst_282: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x2, x2, 252*XLEN/8, x7) + +inst_283: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x55555554, x2, 253*XLEN/8, x7) + +inst_284: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x0, x2, 254*XLEN/8, x7) + +inst_285: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x4, x2, 255*XLEN/8, x7) +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_286: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x33333332, x2, 0*XLEN/8, x7) + +inst_287: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x66666665, x2, 1*XLEN/8, x7) + +inst_288: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0xb503, x2, 2*XLEN/8, x7) + +inst_289: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x55555556, x2, 3*XLEN/8, x7) + +inst_290: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0x55555555, x2, 4*XLEN/8, x7) + +inst_291: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x6, x2, 5*XLEN/8, x7) + +inst_292: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x33333334, x2, 6*XLEN/8, x7) + +inst_293: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x66666667, x2, 7*XLEN/8, x7) + +inst_294: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0xb503, x2, 8*XLEN/8, x7) + +inst_295: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0xb505, x2, 9*XLEN/8, x7) + +inst_296: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x3, x2, 10*XLEN/8, x7) + +inst_297: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x55555555, x2, 11*XLEN/8, x7) + +inst_298: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, -0x55555556, x2, 12*XLEN/8, x7) + +inst_299: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x5, x2, 13*XLEN/8, x7) + +inst_300: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x33333333, x2, 14*XLEN/8, x7) + +inst_301: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x66666666, x2, 15*XLEN/8, x7) + +inst_302: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, -0xb504, x2, 16*XLEN/8, x7) + +inst_303: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0xb504, x2, 17*XLEN/8, x7) + +inst_304: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x2, x2, 18*XLEN/8, x7) + +inst_305: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x55555554, x2, 19*XLEN/8, x7) + +inst_306: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x0, x2, 20*XLEN/8, x7) + +inst_307: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x4, x2, 21*XLEN/8, x7) + +inst_308: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x33333332, x2, 22*XLEN/8, x7) + +inst_309: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x66666665, x2, 23*XLEN/8, x7) + +inst_310: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0xb503, x2, 24*XLEN/8, x7) + +inst_311: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x55555556, x2, 25*XLEN/8, x7) + +inst_312: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, -0x55555555, x2, 26*XLEN/8, x7) + +inst_313: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x6, x2, 27*XLEN/8, x7) + +inst_314: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x33333334, x2, 28*XLEN/8, x7) + +inst_315: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0x66666667, x2, 29*XLEN/8, x7) + +inst_316: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, -0xb503, x2, 30*XLEN/8, x7) + +inst_317: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555554, 0xb505, x2, 31*XLEN/8, x7) + +inst_318: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x3, x2, 32*XLEN/8, x7) + +inst_319: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x55555555, x2, 33*XLEN/8, x7) + +inst_320: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x55555556, x2, 34*XLEN/8, x7) + +inst_321: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x5, x2, 35*XLEN/8, x7) + +inst_322: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x33333333, x2, 36*XLEN/8, x7) + +inst_323: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x66666666, x2, 37*XLEN/8, x7) + +inst_324: +// rs1_val==0 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0xb504, x2, 38*XLEN/8, x7) + +inst_325: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0xb504, x2, 39*XLEN/8, x7) + +inst_326: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, -0x55555555, x2, 40*XLEN/8, x7) + +inst_327: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x6, x2, 41*XLEN/8, x7) + +inst_328: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x33333334, x2, 42*XLEN/8, x7) + +inst_329: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x66666667, x2, 43*XLEN/8, x7) + +inst_330: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, -0xb503, x2, 44*XLEN/8, x7) + +inst_331: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0xb505, x2, 45*XLEN/8, x7) + +inst_332: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x3, x2, 46*XLEN/8, x7) + +inst_333: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x55555555, x2, 47*XLEN/8, x7) + +inst_334: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0x55555556, x2, 48*XLEN/8, x7) + +inst_335: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x5, x2, 49*XLEN/8, x7) + +inst_336: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x33333333, x2, 50*XLEN/8, x7) + +inst_337: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x66666666, x2, 51*XLEN/8, x7) + +inst_338: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0xb504, x2, 52*XLEN/8, x7) + +inst_339: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0xb504, x2, 53*XLEN/8, x7) + +inst_340: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x2, x2, 54*XLEN/8, x7) + +inst_341: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x55555554, x2, 55*XLEN/8, x7) + +inst_342: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x0, x2, 56*XLEN/8, x7) + +inst_343: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x4, x2, 57*XLEN/8, x7) + +inst_344: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x33333332, x2, 58*XLEN/8, x7) + +inst_345: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x66666665, x2, 59*XLEN/8, x7) + +inst_346: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0xb503, x2, 60*XLEN/8, x7) + +inst_347: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x55555556, x2, 61*XLEN/8, x7) + +inst_348: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0x55555555, x2, 62*XLEN/8, x7) + +inst_349: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x6, x2, 63*XLEN/8, x7) + +inst_350: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x33333334, x2, 64*XLEN/8, x7) + +inst_351: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x66666667, x2, 65*XLEN/8, x7) + +inst_352: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0xb503, x2, 66*XLEN/8, x7) + +inst_353: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0xb505, x2, 67*XLEN/8, x7) + +inst_354: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x3, x2, 68*XLEN/8, x7) + +inst_355: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x55555555, x2, 69*XLEN/8, x7) + +inst_356: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, -0x55555556, x2, 70*XLEN/8, x7) + +inst_357: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x5, x2, 71*XLEN/8, x7) + +inst_358: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x33333333, x2, 72*XLEN/8, x7) + +inst_359: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x66666666, x2, 73*XLEN/8, x7) + +inst_360: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, -0xb504, x2, 74*XLEN/8, x7) + +inst_361: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0xb504, x2, 75*XLEN/8, x7) + +inst_362: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x2, x2, 76*XLEN/8, x7) + +inst_363: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x55555554, x2, 77*XLEN/8, x7) + +inst_364: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x0, x2, 78*XLEN/8, x7) + +inst_365: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x4, x2, 79*XLEN/8, x7) + +inst_366: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x33333332, x2, 80*XLEN/8, x7) + +inst_367: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x66666665, x2, 81*XLEN/8, x7) + +inst_368: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0xb503, x2, 82*XLEN/8, x7) + +inst_369: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x55555556, x2, 83*XLEN/8, x7) + +inst_370: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, -0x55555555, x2, 84*XLEN/8, x7) + +inst_371: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x6, x2, 85*XLEN/8, x7) + +inst_372: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x33333334, x2, 86*XLEN/8, x7) + +inst_373: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0x66666667, x2, 87*XLEN/8, x7) + +inst_374: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, -0xb503, x2, 88*XLEN/8, x7) + +inst_375: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333334, 0xb505, x2, 89*XLEN/8, x7) + +inst_376: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x3, x2, 90*XLEN/8, x7) + +inst_377: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x55555555, x2, 91*XLEN/8, x7) + +inst_378: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, -0x55555556, x2, 92*XLEN/8, x7) + +inst_379: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x5, x2, 93*XLEN/8, x7) + +inst_380: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x33333333, x2, 94*XLEN/8, x7) + +inst_381: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x66666666, x2, 95*XLEN/8, x7) + +inst_382: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, -0xb504, x2, 96*XLEN/8, x7) + +inst_383: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0xb504, x2, 97*XLEN/8, x7) + +inst_384: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x2, x2, 98*XLEN/8, x7) + +inst_385: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x55555554, x2, 99*XLEN/8, x7) + +inst_386: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x0, x2, 100*XLEN/8, x7) + +inst_387: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x4, x2, 101*XLEN/8, x7) + +inst_388: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x33333332, x2, 102*XLEN/8, x7) + +inst_389: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x66666665, x2, 103*XLEN/8, x7) + +inst_390: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0xb503, x2, 104*XLEN/8, x7) + +inst_391: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x55555556, x2, 105*XLEN/8, x7) + +inst_392: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, -0x55555555, x2, 106*XLEN/8, x7) + +inst_393: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x6, x2, 107*XLEN/8, x7) + +inst_394: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x33333334, x2, 108*XLEN/8, x7) + +inst_395: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0x66666667, x2, 109*XLEN/8, x7) + +inst_396: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, -0xb503, x2, 110*XLEN/8, x7) + +inst_397: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666667, 0xb505, x2, 111*XLEN/8, x7) + +inst_398: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x3, x2, 112*XLEN/8, x7) + +inst_399: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x55555555, x2, 113*XLEN/8, x7) + +inst_400: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, -0x55555556, x2, 114*XLEN/8, x7) + +inst_401: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x5, x2, 115*XLEN/8, x7) + +inst_402: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x33333333, x2, 116*XLEN/8, x7) + +inst_403: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x66666666, x2, 117*XLEN/8, x7) + +inst_404: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, -0xb504, x2, 118*XLEN/8, x7) + +inst_405: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0xb504, x2, 119*XLEN/8, x7) + +inst_406: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x2, x2, 120*XLEN/8, x7) + +inst_407: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x55555554, x2, 121*XLEN/8, x7) + +inst_408: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x0, x2, 122*XLEN/8, x7) + +inst_409: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x4, x2, 123*XLEN/8, x7) + +inst_410: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x33333332, x2, 124*XLEN/8, x7) + +inst_411: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x66666665, x2, 125*XLEN/8, x7) + +inst_412: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0xb503, x2, 126*XLEN/8, x7) + +inst_413: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x55555556, x2, 127*XLEN/8, x7) + +inst_414: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, -0x55555555, x2, 128*XLEN/8, x7) + +inst_415: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x6, x2, 129*XLEN/8, x7) + +inst_416: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x33333334, x2, 130*XLEN/8, x7) + +inst_417: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0x66666667, x2, 131*XLEN/8, x7) + +inst_418: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, -0xb503, x2, 132*XLEN/8, x7) + +inst_419: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb503, 0xb505, x2, 133*XLEN/8, x7) + +inst_420: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x3, x2, 134*XLEN/8, x7) + +inst_421: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x55555555, x2, 135*XLEN/8, x7) + +inst_422: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, -0x55555556, x2, 136*XLEN/8, x7) + +inst_423: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x5, x2, 137*XLEN/8, x7) + +inst_424: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x33333333, x2, 138*XLEN/8, x7) + +inst_425: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x66666666, x2, 139*XLEN/8, x7) + +inst_426: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, -0xb504, x2, 140*XLEN/8, x7) + +inst_427: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0xb504, x2, 141*XLEN/8, x7) + +inst_428: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x2, x2, 142*XLEN/8, x7) + +inst_429: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x55555554, x2, 143*XLEN/8, x7) + +inst_430: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x0, x2, 144*XLEN/8, x7) + +inst_431: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x4, x2, 145*XLEN/8, x7) + +inst_432: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x33333332, x2, 146*XLEN/8, x7) + +inst_433: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x66666665, x2, 147*XLEN/8, x7) + +inst_434: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0xb503, x2, 148*XLEN/8, x7) + +inst_435: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x55555556, x2, 149*XLEN/8, x7) + +inst_436: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, -0x55555555, x2, 150*XLEN/8, x7) + +inst_437: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x6, x2, 151*XLEN/8, x7) + +inst_438: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x33333334, x2, 152*XLEN/8, x7) + +inst_439: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0x66666667, x2, 153*XLEN/8, x7) + +inst_440: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, -0xb503, x2, 154*XLEN/8, x7) + +inst_441: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb505, 0xb505, x2, 155*XLEN/8, x7) + +inst_442: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x55555554, x2, 156*XLEN/8, x7) + +inst_443: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x0, x2, 157*XLEN/8, x7) + +inst_444: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x4, x2, 158*XLEN/8, x7) + +inst_445: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x33333332, x2, 159*XLEN/8, x7) + +inst_446: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x66666665, x2, 160*XLEN/8, x7) + +inst_447: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0xb503, x2, 161*XLEN/8, x7) + +inst_448: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x55555556, x2, 162*XLEN/8, x7) + +inst_449: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x55555555, x2, 163*XLEN/8, x7) + +inst_450: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x6, x2, 164*XLEN/8, x7) + +inst_451: +// rs1_val==0 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x33333334, x2, 165*XLEN/8, x7) + +inst_452: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x66666667, x2, 166*XLEN/8, x7) + +inst_453: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0xb503, x2, 167*XLEN/8, x7) + +inst_454: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0xb505, x2, 168*XLEN/8, x7) + +inst_455: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x3, x2, 169*XLEN/8, x7) + +inst_456: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x55555555, x2, 170*XLEN/8, x7) + +inst_457: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x55555556, x2, 171*XLEN/8, x7) + +inst_458: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x5, x2, 172*XLEN/8, x7) + +inst_459: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x33333333, x2, 173*XLEN/8, x7) + +inst_460: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x66666666, x2, 174*XLEN/8, x7) + +inst_461: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0xb504, x2, 175*XLEN/8, x7) + +inst_462: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0xb504, x2, 176*XLEN/8, x7) + +inst_463: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x2, x2, 177*XLEN/8, x7) + +inst_464: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x55555554, x2, 178*XLEN/8, x7) + +inst_465: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x0, x2, 179*XLEN/8, x7) + +inst_466: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x4, x2, 180*XLEN/8, x7) + +inst_467: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x33333332, x2, 181*XLEN/8, x7) + +inst_468: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x66666665, x2, 182*XLEN/8, x7) + +inst_469: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0xb503, x2, 183*XLEN/8, x7) + +inst_470: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x55555556, x2, 184*XLEN/8, x7) + +inst_471: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x55555555, x2, 185*XLEN/8, x7) + +inst_472: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x6, x2, 186*XLEN/8, x7) + +inst_473: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x33333334, x2, 187*XLEN/8, x7) + +inst_474: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x66666667, x2, 188*XLEN/8, x7) + +inst_475: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0xb503, x2, 189*XLEN/8, x7) + +inst_476: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0xb505, x2, 190*XLEN/8, x7) + +inst_477: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x3, x2, 191*XLEN/8, x7) + +inst_478: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x55555555, x2, 192*XLEN/8, x7) + +inst_479: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, -0x55555556, x2, 193*XLEN/8, x7) + +inst_480: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x5, x2, 194*XLEN/8, x7) + +inst_481: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x33333333, x2, 195*XLEN/8, x7) + +inst_482: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x66666666, x2, 196*XLEN/8, x7) + +inst_483: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, -0xb504, x2, 197*XLEN/8, x7) + +inst_484: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0xb504, x2, 198*XLEN/8, x7) + +inst_485: +// rs1_val==858993458 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x2, x2, 199*XLEN/8, x7) + +inst_486: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x55555554, x2, 200*XLEN/8, x7) + +inst_487: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x0, x2, 201*XLEN/8, x7) + +inst_488: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x4, x2, 202*XLEN/8, x7) + +inst_489: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x33333332, x2, 203*XLEN/8, x7) + +inst_490: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x66666665, x2, 204*XLEN/8, x7) + +inst_491: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0xb503, x2, 205*XLEN/8, x7) + +inst_492: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x55555556, x2, 206*XLEN/8, x7) + +inst_493: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, -0x55555555, x2, 207*XLEN/8, x7) + +inst_494: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x6, x2, 208*XLEN/8, x7) + +inst_495: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x33333334, x2, 209*XLEN/8, x7) + +inst_496: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0x66666667, x2, 210*XLEN/8, x7) + +inst_497: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, -0xb503, x2, 211*XLEN/8, x7) + +inst_498: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x33333332, 0xb505, x2, 212*XLEN/8, x7) + +inst_499: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x3, x2, 213*XLEN/8, x7) + +inst_500: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x55555555, x2, 214*XLEN/8, x7) + +inst_501: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, -0x55555556, x2, 215*XLEN/8, x7) + +inst_502: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x5, x2, 216*XLEN/8, x7) + +inst_503: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x33333333, x2, 217*XLEN/8, x7) + +inst_504: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x66666666, x2, 218*XLEN/8, x7) + +inst_505: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, -0xb504, x2, 219*XLEN/8, x7) + +inst_506: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0xb504, x2, 220*XLEN/8, x7) + +inst_507: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x2, x2, 221*XLEN/8, x7) + +inst_508: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x55555554, x2, 222*XLEN/8, x7) + +inst_509: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x0, x2, 223*XLEN/8, x7) + +inst_510: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x4, x2, 224*XLEN/8, x7) + +inst_511: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x33333332, x2, 225*XLEN/8, x7) + +inst_512: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x66666665, x2, 226*XLEN/8, x7) + +inst_513: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0xb503, x2, 227*XLEN/8, x7) + +inst_514: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x55555556, x2, 228*XLEN/8, x7) + +inst_515: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, -0x55555555, x2, 229*XLEN/8, x7) + +inst_516: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x6, x2, 230*XLEN/8, x7) + +inst_517: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x33333334, x2, 231*XLEN/8, x7) + +inst_518: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0x66666667, x2, 232*XLEN/8, x7) + +inst_519: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, -0xb503, x2, 233*XLEN/8, x7) + +inst_520: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x66666665, 0xb505, x2, 234*XLEN/8, x7) + +inst_521: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x3, x2, 235*XLEN/8, x7) + +inst_522: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x55555555, x2, 236*XLEN/8, x7) + +inst_523: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, -0x55555556, x2, 237*XLEN/8, x7) + +inst_524: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x5, x2, 238*XLEN/8, x7) + +inst_525: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x33333333, x2, 239*XLEN/8, x7) + +inst_526: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x66666666, x2, 240*XLEN/8, x7) + +inst_527: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, -0xb504, x2, 241*XLEN/8, x7) + +inst_528: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0xb504, x2, 242*XLEN/8, x7) + +inst_529: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x2, x2, 243*XLEN/8, x7) + +inst_530: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x55555554, x2, 244*XLEN/8, x7) + +inst_531: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x0, x2, 245*XLEN/8, x7) + +inst_532: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x4, x2, 246*XLEN/8, x7) + +inst_533: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x33333332, x2, 247*XLEN/8, x7) + +inst_534: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x66666665, x2, 248*XLEN/8, x7) + +inst_535: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0xb503, x2, 249*XLEN/8, x7) + +inst_536: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x55555556, x2, 250*XLEN/8, x7) + +inst_537: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, -0x55555555, x2, 251*XLEN/8, x7) + +inst_538: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x6, x2, 252*XLEN/8, x7) + +inst_539: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x33333334, x2, 253*XLEN/8, x7) + +inst_540: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0x66666667, x2, 254*XLEN/8, x7) + +inst_541: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, -0xb503, x2, 255*XLEN/8, x7) +RVTEST_SIGBASE(x2,signature_x2_2) + +inst_542: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb503, 0xb505, x2, 0*XLEN/8, x7) + +inst_543: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x3, x2, 1*XLEN/8, x7) + +inst_544: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x55555555, x2, 2*XLEN/8, x7) + +inst_545: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, -0x55555556, x2, 3*XLEN/8, x7) + +inst_546: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x5, x2, 4*XLEN/8, x7) + +inst_547: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x33333333, x2, 5*XLEN/8, x7) + +inst_548: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x66666666, x2, 6*XLEN/8, x7) + +inst_549: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, -0xb504, x2, 7*XLEN/8, x7) + +inst_550: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0xb504, x2, 8*XLEN/8, x7) + +inst_551: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x2, x2, 9*XLEN/8, x7) + +inst_552: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x55555554, x2, 10*XLEN/8, x7) + +inst_553: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x0, x2, 11*XLEN/8, x7) + +inst_554: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x4, x2, 12*XLEN/8, x7) + +inst_555: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x33333332, x2, 13*XLEN/8, x7) + +inst_556: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x66666665, x2, 14*XLEN/8, x7) + +inst_557: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0xb503, x2, 15*XLEN/8, x7) + +inst_558: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x55555556, x2, 16*XLEN/8, x7) + +inst_559: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, -0x55555555, x2, 17*XLEN/8, x7) + +inst_560: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x6, x2, 18*XLEN/8, x7) + +inst_561: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x33333334, x2, 19*XLEN/8, x7) + +inst_562: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0x66666667, x2, 20*XLEN/8, x7) + +inst_563: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, -0xb503, x2, 21*XLEN/8, x7) + +inst_564: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x55555556, 0xb505, x2, 22*XLEN/8, x7) + +inst_565: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x3, x2, 23*XLEN/8, x7) + +inst_566: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x55555555, x2, 24*XLEN/8, x7) + +inst_567: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, -0x55555556, x2, 25*XLEN/8, x7) + +inst_568: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x5, x2, 26*XLEN/8, x7) + +inst_569: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x33333333, x2, 27*XLEN/8, x7) + +inst_570: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x66666666, x2, 28*XLEN/8, x7) + +inst_571: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, -0xb504, x2, 29*XLEN/8, x7) + +inst_572: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0xb504, x2, 30*XLEN/8, x7) + +inst_573: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x2, x2, 31*XLEN/8, x7) + +inst_574: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x55555554, x2, 32*XLEN/8, x7) + +inst_575: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x0, x2, 33*XLEN/8, x7) + +inst_576: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x4, x2, 34*XLEN/8, x7) + +inst_577: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x33333332, x2, 35*XLEN/8, x7) + +inst_578: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x66666665, x2, 36*XLEN/8, x7) + +inst_579: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0xb503, x2, 37*XLEN/8, x7) + +inst_580: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x55555555, 0x55555556, x2, 38*XLEN/8, x7) + +inst_581: +// rs1_val < 0 and rs2_val < 0, rs1_val == -131073 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20001, -0x4, x2, 39*XLEN/8, x7) + +inst_582: +// rs1_val == (2**(xlen-1)-1), rs2_val == 512, rs1_val == 2147483647, rs1_val > 0 and rs2_val > 0 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffff; op2val:0x200 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x7fffffff, 0x200, x2, 40*XLEN/8, x7) + +inst_583: +// rs2_val == -2, rs1_val == 128 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x80, -0x2, x2, 41*XLEN/8, x7) + +inst_584: +// rs2_val == -65, rs1_val == -4194305 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x41 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400001, -0x41, x2, 42*XLEN/8, x7) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 17*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_0: + .fill 13*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_2: + .fill 43*((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/Zimop/src/mop.rr.7-01.S b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.7-01.S new file mode 100644 index 000000000..900e2994b --- /dev/null +++ b/riscv-test-suite/rv32i_m/Zimop/src/mop.rr.7-01.S @@ -0,0 +1,3072 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Sun Sep 17 19:42:00 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 32 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.7 instruction of the RISC-V RV32Zimop extension for the mop.rr.7 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.7) + +RVTEST_SIGBASE(x16,signature_x16_1) + +inst_0: +// rs1 == rs2 == rd, rs1==x7, rs2==x7, rd==x7, rs1_val != rs2_val, rs2_val == 33554432, rs1_val > 0 and rs2_val > 0 +// opcode: mop.rr.7 ; op1:x7; op2:x7; dest:x7; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x7, x7, x7, 0, 0x66666667, 0x66666667, x16, 0*XLEN/8, x4) + +inst_1: +// rs1 == rs2 != rd, rs1==x11, rs2==x11, rd==x22, rs1_val < 0 and rs2_val < 0, rs1_val == -8193, rs2_val == -1431655766 +// opcode: mop.rr.7 ; op1:x11; op2:x11; dest:x22; op1val:-0x2001; op2val:-0x2001 +TEST_RR_OP(mop.rr.7, x22, x11, x11, 0, -0x2001, -0x2001, x16, 1*XLEN/8, x4) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x12, rs2==x27, rd==x20, rs1_val < 0 and rs2_val > 0, rs2_val == 134217728 +// opcode: mop.rr.7 ; op1:x12; op2:x27; dest:x20; op1val:-0x6; op2val:0x8000000 +TEST_RR_OP(mop.rr.7, x20, x12, x27, 0, -0x6, 0x8000000, x16, 2*XLEN/8, x4) + +inst_3: +// rs2 == rd != rs1, rs1==x30, rs2==x28, rd==x28, rs1_val == (-2**(xlen-1)), rs1_val == -2147483648 +// opcode: mop.rr.7 ; op1:x30; op2:x28; dest:x28; op1val:-0x80000000; op2val:-0x7 +TEST_RR_OP(mop.rr.7, x28, x30, x28, 0, -0x80000000, -0x7, x16, 3*XLEN/8, x4) + +inst_4: +// rs1 == rd != rs2, rs1==x10, rs2==x25, rd==x10, rs1_val == (2**(xlen-1)-1), rs2_val == 512, rs1_val == 2147483647 +// opcode: mop.rr.7 ; op1:x10; op2:x25; dest:x10; op1val:0x7fffffff; op2val:0x200 +TEST_RR_OP(mop.rr.7, x10, x10, x25, 0, 0x7fffffff, 0x200, x16, 4*XLEN/8, x4) + +inst_5: +// rs1==x22, rs2==x3, rd==x27, rs1_val == 0, rs1_val==0 and rs2_val==858993460 +// opcode: mop.rr.7 ; op1:x22; op2:x3; dest:x27; op1val:0x0; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x27, x22, x3, 0, 0x0, 0x33333334, x16, 5*XLEN/8, x4) + +inst_6: +// rs1==x20, rs2==x31, rd==x15, rs1_val == 1, rs1_val > 0 and rs2_val < 0, rs2_val == -257 +// opcode: mop.rr.7 ; op1:x20; op2:x31; dest:x15; op1val:0x1; op2val:-0x101 +TEST_RR_OP(mop.rr.7, x15, x20, x31, 0, 0x1, -0x101, x16, 6*XLEN/8, x4) + +inst_7: +// rs1==x1, rs2==x2, rd==x17, rs2_val == -2, +// opcode: mop.rr.7 ; op1:x1; op2:x2; dest:x17; op1val:-0x7; op2val:-0x2 +TEST_RR_OP(mop.rr.7, x17, x1, x2, 0, -0x7, -0x2, x16, 7*XLEN/8, x4) + +inst_8: +// rs1==x2, rs2==x22, rd==x19, rs2_val == -3, +// opcode: mop.rr.7 ; op1:x2; op2:x22; dest:x19; op1val:-0x80000000; op2val:-0x3 +TEST_RR_OP(mop.rr.7, x19, x2, x22, 0, -0x80000000, -0x3, x16, 8*XLEN/8, x4) + +inst_9: +// rs1==x13, rs2==x19, rd==x14, rs2_val == -5, +// opcode: mop.rr.7 ; op1:x13; op2:x19; dest:x14; op1val:-0xb503; op2val:-0x5 +TEST_RR_OP(mop.rr.7, x14, x13, x19, 0, -0xb503, -0x5, x16, 9*XLEN/8, x4) + +inst_10: +// rs1==x25, rs2==x8, rd==x9, rs2_val == -9, rs1_val == -2097153 +// opcode: mop.rr.7 ; op1:x25; op2:x8; dest:x9; op1val:-0x200001; op2val:-0x9 +TEST_RR_OP(mop.rr.7, x9, x25, x8, 0, -0x200001, -0x9, x16, 10*XLEN/8, x4) + +inst_11: +// rs1==x6, rs2==x13, rd==x26, rs2_val == -17, rs1_val == 4 +// opcode: mop.rr.7 ; op1:x6; op2:x13; dest:x26; op1val:0x4; op2val:-0x11 +TEST_RR_OP(mop.rr.7, x26, x6, x13, 0, 0x4, -0x11, x16, 11*XLEN/8, x4) + +inst_12: +// rs1==x8, rs2==x5, rd==x21, rs2_val == -33, rs1_val == -257 +// opcode: mop.rr.7 ; op1:x8; op2:x5; dest:x21; op1val:-0x101; op2val:-0x21 +TEST_RR_OP(mop.rr.7, x21, x8, x5, 0, -0x101, -0x21, x16, 12*XLEN/8, x4) + +inst_13: +// rs1==x3, rs2==x30, rd==x5, rs2_val == -65, +// opcode: mop.rr.7 ; op1:x3; op2:x30; dest:x5; op1val:-0x55555555; op2val:-0x41 +TEST_RR_OP(mop.rr.7, x5, x3, x30, 0, -0x55555555, -0x41, x16, 13*XLEN/8, x13) + +inst_14: +// rs1==x31, rs2==x17, rd==x4, rs2_val == -129, +// opcode: mop.rr.7 ; op1:x31; op2:x17; dest:x4; op1val:0x33333334; op2val:-0x81 +TEST_RR_OP(mop.rr.7, x4, x31, x17, 0, 0x33333334, -0x81, x16, 14*XLEN/8, x13) +RVTEST_SIGBASE(x7,signature_x7_0) + +inst_15: +// rs1==x5, rs2==x10, rd==x2, rs2_val == -513, rs1_val == 2 +// opcode: mop.rr.7 ; op1:x5; op2:x10; dest:x2; op1val:0x2; op2val:-0x201 +TEST_RR_OP(mop.rr.7, x2, x5, x10, 0, 0x2, -0x201, x7, 0*XLEN/8, x13) + +inst_16: +// rs1==x29, rs2==x0, rd==x30, rs2_val == -1025, +// opcode: mop.rr.7 ; op1:x29; op2:x0; dest:x30; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.7, x30, x29, x0, 0, 0x66666665, 0x0, x7, 1*XLEN/8, x13) + +inst_17: +// rs1==x28, rs2==x29, rd==x0, rs2_val == -2049, rs1_val == 134217728 +// opcode: mop.rr.7 ; op1:x28; op2:x29; dest:x0; op1val:0x8000000; op2val:-0x801 +TEST_RR_OP(mop.rr.7, x0, x28, x29, 0, 0x8000000, -0x801, x7, 2*XLEN/8, x13) + +inst_18: +// rs1==x18, rs2==x14, rd==x23, rs2_val == -4097, rs1_val == 256 +// opcode: mop.rr.7 ; op1:x18; op2:x14; dest:x23; op1val:0x100; op2val:-0x1001 +TEST_RR_OP(mop.rr.7, x23, x18, x14, 0, 0x100, -0x1001, x7, 3*XLEN/8, x13) + +inst_19: +// rs1==x9, rs2==x18, rd==x29, rs2_val == -8193, +// opcode: mop.rr.7 ; op1:x9; op2:x18; dest:x29; op1val:0x6; op2val:-0x2001 +TEST_RR_OP(mop.rr.7, x29, x9, x18, 0, 0x6, -0x2001, x7, 4*XLEN/8, x13) + +inst_20: +// rs1==x14, rs2==x24, rd==x1, rs2_val == -16385, rs1_val == -2049 +// opcode: mop.rr.7 ; op1:x14; op2:x24; dest:x1; op1val:-0x801; op2val:-0x4001 +TEST_RR_OP(mop.rr.7, x1, x14, x24, 0, -0x801, -0x4001, x7, 5*XLEN/8, x13) + +inst_21: +// rs1==x0, rs2==x12, rd==x3, rs2_val == -32769, +// opcode: mop.rr.7 ; op1:x0; op2:x12; dest:x3; op1val:0x0; op2val:-0x8001 +TEST_RR_OP(mop.rr.7, x3, x0, x12, 0, 0x0, -0x8001, x7, 6*XLEN/8, x13) + +inst_22: +// rs1==x15, rs2==x23, rd==x24, rs2_val == -65537, rs1_val == 262144 +// opcode: mop.rr.7 ; op1:x15; op2:x23; dest:x24; op1val:0x40000; op2val:-0x10001 +TEST_RR_OP(mop.rr.7, x24, x15, x23, 0, 0x40000, -0x10001, x7, 7*XLEN/8, x13) + +inst_23: +// rs1==x24, rs2==x16, rd==x25, rs2_val == -131073, +// opcode: mop.rr.7 ; op1:x24; op2:x16; dest:x25; op1val:0x4; op2val:-0x20001 +TEST_RR_OP(mop.rr.7, x25, x24, x16, 0, 0x4, -0x20001, x7, 8*XLEN/8, x13) + +inst_24: +// rs1==x17, rs2==x1, rd==x11, rs2_val == -262145, rs1_val == -524289 +// opcode: mop.rr.7 ; op1:x17; op2:x1; dest:x11; op1val:-0x80001; op2val:-0x40001 +TEST_RR_OP(mop.rr.7, x11, x17, x1, 0, -0x80001, -0x40001, x7, 9*XLEN/8, x13) + +inst_25: +// rs1==x16, rs2==x15, rd==x31, rs2_val == -524289, rs1_val == -1073741825 +// opcode: mop.rr.7 ; op1:x16; op2:x15; dest:x31; op1val:-0x40000001; op2val:-0x80001 +TEST_RR_OP(mop.rr.7, x31, x16, x15, 0, -0x40000001, -0x80001, x7, 10*XLEN/8, x13) + +inst_26: +// rs1==x26, rs2==x21, rd==x8, rs2_val == -1048577, rs1_val == -32769 +// opcode: mop.rr.7 ; op1:x26; op2:x21; dest:x8; op1val:-0x8001; op2val:-0x100001 +TEST_RR_OP(mop.rr.7, x8, x26, x21, 0, -0x8001, -0x100001, x7, 11*XLEN/8, x13) + +inst_27: +// rs1==x4, rs2==x6, rd==x16, rs2_val == -2097153, +// opcode: mop.rr.7 ; op1:x4; op2:x6; dest:x16; op1val:-0xa; op2val:-0x200001 +TEST_RR_OP(mop.rr.7, x16, x4, x6, 0, -0xa, -0x200001, x7, 12*XLEN/8, x13) + +inst_28: +// rs1==x27, rs2==x9, rd==x18, rs2_val == -4194305, +// opcode: mop.rr.7 ; op1:x27; op2:x9; dest:x18; op1val:0x33333333; op2val:-0x400001 +TEST_RR_OP(mop.rr.7, x18, x27, x9, 0, 0x33333333, -0x400001, x7, 13*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_29: +// rs1==x21, rs2==x26, rd==x6, rs2_val == -8388609, rs1_val == -4097 +// opcode: mop.rr.7 ; op1:x21; op2:x26; dest:x6; op1val:-0x1001; op2val:-0x800001 +TEST_RR_OP(mop.rr.7, x6, x21, x26, 0, -0x1001, -0x800001, x1, 0*XLEN/8, x2) + +inst_30: +// rs1==x19, rs2==x20, rd==x13, rs2_val == -16777217, rs1_val == 8192 +// opcode: mop.rr.7 ; op1:x19; op2:x20; dest:x13; op1val:0x2000; op2val:-0x1000001 +TEST_RR_OP(mop.rr.7, x13, x19, x20, 0, 0x2000, -0x1000001, x1, 1*XLEN/8, x2) + +inst_31: +// rs1==x23, rs2==x4, rd==x12, rs2_val == -33554433, +// opcode: mop.rr.7 ; op1:x23; op2:x4; dest:x12; op1val:0x5; op2val:-0x2000001 +TEST_RR_OP(mop.rr.7, x12, x23, x4, 0, 0x5, -0x2000001, x1, 2*XLEN/8, x2) + +inst_32: +// rs2_val == -67108865, rs1_val == -131073 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x4000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20001, -0x4000001, x1, 3*XLEN/8, x2) + +inst_33: +// rs2_val == -134217729, rs1_val == -129 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x8000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x81, -0x8000001, x1, 4*XLEN/8, x2) + +inst_34: +// rs2_val == -268435457, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:-0x10000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x801, -0x10000001, x1, 5*XLEN/8, x2) + +inst_35: +// rs2_val == -536870913, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x20000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x200001, -0x20000001, x1, 6*XLEN/8, x2) + +inst_36: +// rs2_val == -1073741825, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1001, -0x40000001, x1, 7*XLEN/8, x2) + +inst_37: +// rs2_val == 2147483647, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:0x7fffffff +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40000000, 0x7fffffff, x1, 8*XLEN/8, x2) + +inst_38: +// rs1_val == -2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x20000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2, -0x20000001, x1, 9*XLEN/8, x2) + +inst_39: +// rs1_val == -3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x4000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x3, -0x4000001, x1, 10*XLEN/8, x2) + +inst_40: +// rs1_val == -5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x7 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5, 0x7, x1, 11*XLEN/8, x2) + +inst_41: +// rs1_val == -9, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x9, 0x66666666, x1, 12*XLEN/8, x2) + +inst_42: +// rs1_val == -17, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0x40000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x11, -0x40000001, x1, 13*XLEN/8, x2) + +inst_43: +// rs1_val == -33, rs2_val == 16 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x10 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x21, 0x10, x1, 14*XLEN/8, x2) + +inst_44: +// rs1_val == -65, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x41, 0x66666667, x1, 15*XLEN/8, x2) + +inst_45: +// rs1_val == -513, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x201, 0x3, x1, 16*XLEN/8, x2) + +inst_46: +// rs1_val == -1025, rs2_val == 0 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x401, 0x0, x1, 17*XLEN/8, x2) + +inst_47: +// rs1_val == -16385, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x2000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4001, 0x2000000, x1, 18*XLEN/8, x2) + +inst_48: +// rs1_val == -65537, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10001, 0x0, x1, 19*XLEN/8, x2) + +inst_49: +// rs1_val == -262145, rs2_val == 256 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x100 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40001, 0x100, x1, 20*XLEN/8, x2) + +inst_50: +// rs1_val == -1048577, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x100001, 0x33333334, x1, 21*XLEN/8, x2) + +inst_51: +// rs1_val == -4194305, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x400001, 0x55555556, x1, 22*XLEN/8, x2) + +inst_52: +// rs1_val == -8388609, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x800001, -0x6, x1, 23*XLEN/8, x2) + +inst_53: +// rs1_val == -16777217, rs2_val == 4 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1000001, 0x4, x1, 24*XLEN/8, x2) + +inst_54: +// rs1_val == -33554433, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x201 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000001, -0x201, x1, 25*XLEN/8, x2) + +inst_55: +// rs1_val == -67108865, rs2_val == 524288 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x80000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4000001, 0x80000, x1, 26*XLEN/8, x2) + +inst_56: +// rs1_val == -134217729, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x7 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000001, -0x7, x1, 27*XLEN/8, x2) + +inst_57: +// rs1_val == -268435457, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:-0x4001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10000001, -0x4001, x1, 28*XLEN/8, x2) + +inst_58: +// rs1_val == -536870913, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x1000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000001, -0x1000001, x1, 29*XLEN/8, x2) + +inst_59: +// rs2_val == 1, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x1 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x1, x1, 30*XLEN/8, x2) + +inst_60: +// rs2_val == 2, rs1_val==858993458 and rs2_val==2 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x2, x1, 31*XLEN/8, x2) + +inst_61: +// rs2_val == 8, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x8 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x8, x1, 32*XLEN/8, x2) + +inst_62: +// rs2_val == 32, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x20 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x20, x1, 33*XLEN/8, x2) + +inst_63: +// rs2_val == 64, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x40 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x81, 0x40, x1, 34*XLEN/8, x2) + +inst_64: +// rs2_val == 128, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x80 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000001, 0x80, x1, 35*XLEN/8, x2) + +inst_65: +// rs2_val == 1024, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x400 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x400, x1, 36*XLEN/8, x2) + +inst_66: +// rs2_val == 2048, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x800 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x800, x1, 37*XLEN/8, x2) + +inst_67: +// rs2_val == 4096, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:0x1000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40000000, 0x1000, x1, 38*XLEN/8, x2) + +inst_68: +// rs2_val == 8192, rs1_val == 65536 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x2000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10000, 0x2000, x1, 39*XLEN/8, x2) + +inst_69: +// rs2_val == 16384, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x4000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4001, 0x4000, x1, 40*XLEN/8, x2) + +inst_70: +// rs2_val == 32768, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x8000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x8000, x1, 41*XLEN/8, x2) + +inst_71: +// rs2_val == 65536, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4; op2val:0x10000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4, 0x10000, x1, 42*XLEN/8, x2) + +inst_72: +// rs2_val == 131072, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x20000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x80001, 0x20000, x1, 43*XLEN/8, x2) + +inst_73: +// rs2_val == 262144, rs1_val == 2097152 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x40000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200000, 0x40000, x1, 44*XLEN/8, x2) + +inst_74: +// rs2_val == 1048576, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x100000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x3, 0x100000, x1, 45*XLEN/8, x2) + +inst_75: +// rs2_val == 2097152, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x200000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x200000, x1, 46*XLEN/8, x2) + +inst_76: +// rs2_val == 4194304, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x400000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x400000, x1, 47*XLEN/8, x2) + +inst_77: +// rs2_val == 8388608, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:0x800000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1, 0x800000, x1, 48*XLEN/8, x2) + +inst_78: +// rs2_val == 16777216, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x1000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x1000000, x1, 49*XLEN/8, x2) + +inst_79: +// rs2_val == 67108864, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x4000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8001, 0x4000000, x1, 50*XLEN/8, x2) + +inst_80: +// rs2_val == 268435456, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x10000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000001, 0x10000000, x1, 51*XLEN/8, x2) + +inst_81: +// rs2_val == 536870912, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x20000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x20000000, x1, 52*XLEN/8, x2) + +inst_82: +// rs2_val == 1073741824, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x40000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x40000000, x1, 53*XLEN/8, x2) + +inst_83: +// rs2_val == -2147483648, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000; op2val:-0x80000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40000000, -0x80000000, x1, 54*XLEN/8, x2) + +inst_84: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x3, x1, 55*XLEN/8, x2) + +inst_85: +// rs1_val == 8, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:-0x40000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8, -0x40000000, x1, 56*XLEN/8, x2) + +inst_86: +// rs1_val == 16, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x4000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10, 0x4000000, x1, 57*XLEN/8, x2) + +inst_87: +// rs1_val == 32, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x3fffffff +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20, 0x3fffffff, x1, 58*XLEN/8, x2) + +inst_88: +// rs1_val == 64, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:-0x11 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x40, -0x11, x1, 59*XLEN/8, x2) + +inst_89: +// rs1_val == 128, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x21 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80, -0x21, x1, 60*XLEN/8, x2) + +inst_90: +// rs1_val == 512, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200, -0xb504, x1, 61*XLEN/8, x2) + +inst_91: +// rs1_val == 1024, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x400, 0x2, x1, 62*XLEN/8, x2) + +inst_92: +// rs1_val == 2048, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:-0x201 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800, -0x201, x1, 63*XLEN/8, x2) + +inst_93: +// rs1_val == 4096, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0x1000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000, -0x1000001, x1, 64*XLEN/8, x2) + +inst_94: +// rs1_val == 16384, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x800001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000, -0x800001, x1, 65*XLEN/8, x2) + +inst_95: +// rs1_val == 32768, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8000, 0x6, x1, 66*XLEN/8, x2) + +inst_96: +// rs1_val == 131072, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:-0x8001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20000, -0x8001, x1, 67*XLEN/8, x2) + +inst_97: +// rs1_val == 524288, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x8000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000, -0x8000001, x1, 68*XLEN/8, x2) + +inst_98: +// rs1_val == 1048576, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x20000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x100000, 0x20000, x1, 69*XLEN/8, x2) + +inst_99: +// rs1_val == 4194304, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x400000, -0x10000001, x1, 70*XLEN/8, x2) + +inst_100: +// rs1_val == 8388608, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800000, 0x0, x1, 71*XLEN/8, x2) + +inst_101: +// rs1_val == 16777216, rs2_val == 1431655765 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000000, 0x55555555, x1, 72*XLEN/8, x2) + +inst_102: +// rs1_val == 33554432, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2000000, 0xb505, x1, 73*XLEN/8, x2) + +inst_103: +// rs1_val == 67108864, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x4000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000000, 0x4000000, x1, 74*XLEN/8, x2) + +inst_104: +// rs1_val == 268435456, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10000000, 0x20000000, x1, 75*XLEN/8, x2) + +inst_105: +// rs1_val == 536870912, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x8 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20000000, -0x8, x1, 76*XLEN/8, x2) + +inst_106: +// rs1_val == 1073741824, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:0x400 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x40000000, 0x400, x1, 77*XLEN/8, x2) + +inst_107: +// rs1_val==3 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x55555555, x1, 78*XLEN/8, x2) + +inst_108: +// rs1_val==3 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0x55555556, x1, 79*XLEN/8, x2) + +inst_109: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x5, x1, 80*XLEN/8, x2) + +inst_110: +// rs1_val==3 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x33333333, x1, 81*XLEN/8, x2) + +inst_111: +// rs1_val==3 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x66666666, x1, 82*XLEN/8, x2) + +inst_112: +// rs1_val==3 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0xb504, x1, 83*XLEN/8, x2) + +inst_113: +// rs1_val==3 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0xb504, x1, 84*XLEN/8, x2) + +inst_114: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x2, x1, 85*XLEN/8, x2) + +inst_115: +// rs1_val==3 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x55555554, x1, 86*XLEN/8, x2) + +inst_116: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x0, x1, 87*XLEN/8, x2) + +inst_117: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x4, x1, 88*XLEN/8, x2) + +inst_118: +// rs1_val==3 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x33333332, x1, 89*XLEN/8, x2) + +inst_119: +// rs1_val==3 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x66666665, x1, 90*XLEN/8, x2) + +inst_120: +// rs1_val == 1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x40001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, -0x40001, x1, 91*XLEN/8, x2) + +inst_121: +// rs1_val==3 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0xb503, x1, 92*XLEN/8, x2) + +inst_122: +// rs1_val == -1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x800001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, -0x800001, x1, 93*XLEN/8, x2) + +inst_123: +// rs1_val==3 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x55555556, x1, 94*XLEN/8, x2) + +inst_124: +// rs1_val==3 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0x55555555, x1, 95*XLEN/8, x2) + +inst_125: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x6, x1, 96*XLEN/8, x2) + +inst_126: +// rs1_val==3 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x33333334, x1, 97*XLEN/8, x2) + +inst_127: +// rs1_val==3 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x66666667, x1, 98*XLEN/8, x2) + +inst_128: +// rs1_val==3 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0xb503, x1, 99*XLEN/8, x2) + +inst_129: +// rs1_val==3 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0xb505, x1, 100*XLEN/8, x2) + +inst_130: +// rs1_val==1431655765 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x3, x1, 101*XLEN/8, x2) + +inst_131: +// rs1_val==1431655765 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x55555555, x1, 102*XLEN/8, x2) + +inst_132: +// rs1_val==1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, -0x55555556, x1, 103*XLEN/8, x2) + +inst_133: +// rs1_val==1431655765 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x5, x1, 104*XLEN/8, x2) + +inst_134: +// rs1_val==1431655765 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x33333333, x1, 105*XLEN/8, x2) + +inst_135: +// rs1_val==1431655765 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x66666666, x1, 106*XLEN/8, x2) + +inst_136: +// rs1_val==1431655765 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, -0xb504, x1, 107*XLEN/8, x2) + +inst_137: +// rs1_val==1431655765 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0xb504, x1, 108*XLEN/8, x2) + +inst_138: +// rs1_val==1431655765 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x2, x1, 109*XLEN/8, x2) + +inst_139: +// rs1_val==1431655765 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x55555554, x1, 110*XLEN/8, x2) + +inst_140: +// rs1_val==1431655765 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x0, x1, 111*XLEN/8, x2) + +inst_141: +// rs1_val==1431655765 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x4, x1, 112*XLEN/8, x2) + +inst_142: +// rs1_val==1431655765 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x33333332, x1, 113*XLEN/8, x2) + +inst_143: +// rs1_val==1431655765 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x66666665, x1, 114*XLEN/8, x2) + +inst_144: +// rs1_val==1431655765 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0xb503, x1, 115*XLEN/8, x2) + +inst_145: +// rs1_val==1431655765 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x55555556, x1, 116*XLEN/8, x2) + +inst_146: +// rs1_val==1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, -0x55555555, x1, 117*XLEN/8, x2) + +inst_147: +// rs1_val==1431655765 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x6, x1, 118*XLEN/8, x2) + +inst_148: +// rs1_val==1431655765 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x33333334, x1, 119*XLEN/8, x2) + +inst_149: +// rs1_val==1431655765 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0x66666667, x1, 120*XLEN/8, x2) + +inst_150: +// rs1_val==1431655765 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, -0xb503, x1, 121*XLEN/8, x2) + +inst_151: +// rs1_val==1431655765 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555555, 0xb505, x1, 122*XLEN/8, x2) + +inst_152: +// rs1_val==-1431655766 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x3, x1, 123*XLEN/8, x2) + +inst_153: +// rs1_val==-1431655766 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x55555555, x1, 124*XLEN/8, x2) + +inst_154: +// rs1_val==-1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, -0x55555556, x1, 125*XLEN/8, x2) + +inst_155: +// rs1_val==-1431655766 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x5, x1, 126*XLEN/8, x2) + +inst_156: +// rs1_val==-1431655766 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x33333333, x1, 127*XLEN/8, x2) + +inst_157: +// rs1_val==-1431655766 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x66666666, x1, 128*XLEN/8, x2) + +inst_158: +// rs1_val==-1431655766 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, -0xb504, x1, 129*XLEN/8, x2) + +inst_159: +// rs1_val==-1431655766 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0xb504, x1, 130*XLEN/8, x2) + +inst_160: +// rs1_val==-1431655766 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x2, x1, 131*XLEN/8, x2) + +inst_161: +// rs1_val==-1431655766 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x55555554, x1, 132*XLEN/8, x2) + +inst_162: +// rs1_val==-1431655766 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x0, x1, 133*XLEN/8, x2) + +inst_163: +// rs1_val==-1431655766 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x4, x1, 134*XLEN/8, x2) + +inst_164: +// rs1_val==-1431655766 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x33333332, x1, 135*XLEN/8, x2) + +inst_165: +// rs1_val==-1431655766 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x66666665, x1, 136*XLEN/8, x2) + +inst_166: +// rs1_val==-1431655766 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0xb503, x1, 137*XLEN/8, x2) + +inst_167: +// rs1_val==-1431655766 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x55555556, x1, 138*XLEN/8, x2) + +inst_168: +// rs1_val==-1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, -0x55555555, x1, 139*XLEN/8, x2) + +inst_169: +// rs1_val==-1431655766 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x6, x1, 140*XLEN/8, x2) + +inst_170: +// rs1_val==-1431655766 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x33333334, x1, 141*XLEN/8, x2) + +inst_171: +// rs1_val==-1431655766 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0x66666667, x1, 142*XLEN/8, x2) + +inst_172: +// rs1_val==-1431655766 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, -0xb503, x1, 143*XLEN/8, x2) + +inst_173: +// rs1_val==-1431655766 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555556, 0xb505, x1, 144*XLEN/8, x2) + +inst_174: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x3, x1, 145*XLEN/8, x2) + +inst_175: +// rs1_val==5 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x55555555, x1, 146*XLEN/8, x2) + +inst_176: +// rs1_val==5 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0x55555556, x1, 147*XLEN/8, x2) + +inst_177: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x5, x1, 148*XLEN/8, x2) + +inst_178: +// rs1_val==5 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x33333333, x1, 149*XLEN/8, x2) + +inst_179: +// rs1_val==5 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x66666666, x1, 150*XLEN/8, x2) + +inst_180: +// rs1_val==5 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0xb504, x1, 151*XLEN/8, x2) + +inst_181: +// rs1_val==5 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0xb504, x1, 152*XLEN/8, x2) + +inst_182: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x2, x1, 153*XLEN/8, x2) + +inst_183: +// rs1_val==5 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x55555554, x1, 154*XLEN/8, x2) + +inst_184: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x0, x1, 155*XLEN/8, x2) + +inst_185: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x4, x1, 156*XLEN/8, x2) + +inst_186: +// rs1_val==5 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x33333332, x1, 157*XLEN/8, x2) + +inst_187: +// rs1_val==5 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x66666665, x1, 158*XLEN/8, x2) + +inst_188: +// rs1_val==5 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0xb503, x1, 159*XLEN/8, x2) + +inst_189: +// rs1_val==5 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x55555556, x1, 160*XLEN/8, x2) + +inst_190: +// rs1_val==5 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0x55555555, x1, 161*XLEN/8, x2) + +inst_191: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x6, x1, 162*XLEN/8, x2) + +inst_192: +// rs1_val==5 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x33333334, x1, 163*XLEN/8, x2) + +inst_193: +// rs1_val==5 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x66666667, x1, 164*XLEN/8, x2) + +inst_194: +// rs1_val==5 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0xb503, x1, 165*XLEN/8, x2) + +inst_195: +// rs1_val==5 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0xb505, x1, 166*XLEN/8, x2) + +inst_196: +// rs1_val==858993459 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x3, x1, 167*XLEN/8, x2) + +inst_197: +// rs1_val==858993459 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x55555555, x1, 168*XLEN/8, x2) + +inst_198: +// rs1_val==858993459 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, -0x55555556, x1, 169*XLEN/8, x2) + +inst_199: +// rs1_val==858993459 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x5, x1, 170*XLEN/8, x2) + +inst_200: +// rs1_val==858993459 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x33333333, x1, 171*XLEN/8, x2) + +inst_201: +// rs1_val==858993459 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x66666666, x1, 172*XLEN/8, x2) + +inst_202: +// rs1_val==858993459 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, -0xb504, x1, 173*XLEN/8, x2) + +inst_203: +// rs1_val==858993459 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0xb504, x1, 174*XLEN/8, x2) + +inst_204: +// rs1_val==858993459 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x2, x1, 175*XLEN/8, x2) + +inst_205: +// rs1_val==858993459 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x55555554, x1, 176*XLEN/8, x2) + +inst_206: +// rs1_val==858993459 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x0, x1, 177*XLEN/8, x2) + +inst_207: +// rs1_val==858993459 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x4, x1, 178*XLEN/8, x2) + +inst_208: +// rs1_val==858993459 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x33333332, x1, 179*XLEN/8, x2) + +inst_209: +// rs1_val==858993459 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x66666665, x1, 180*XLEN/8, x2) + +inst_210: +// rs1_val==858993459 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0xb503, x1, 181*XLEN/8, x2) + +inst_211: +// rs1_val==858993459 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x55555556, x1, 182*XLEN/8, x2) + +inst_212: +// rs1_val==858993459 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, -0x55555555, x1, 183*XLEN/8, x2) + +inst_213: +// rs1_val==858993459 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x6, x1, 184*XLEN/8, x2) + +inst_214: +// rs1_val==858993459 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x33333334, x1, 185*XLEN/8, x2) + +inst_215: +// rs1_val==858993459 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0x66666667, x1, 186*XLEN/8, x2) + +inst_216: +// rs1_val==858993459 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, -0xb503, x1, 187*XLEN/8, x2) + +inst_217: +// rs1_val==858993459 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333333; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333333, 0xb505, x1, 188*XLEN/8, x2) + +inst_218: +// rs1_val==1717986918 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x3, x1, 189*XLEN/8, x2) + +inst_219: +// rs1_val==1717986918 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x55555555, x1, 190*XLEN/8, x2) + +inst_220: +// rs1_val==1717986918 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, -0x55555556, x1, 191*XLEN/8, x2) + +inst_221: +// rs1_val==1717986918 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x5, x1, 192*XLEN/8, x2) + +inst_222: +// rs1_val==1717986918 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x33333333, x1, 193*XLEN/8, x2) + +inst_223: +// rs1_val==1717986918 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x66666666, x1, 194*XLEN/8, x2) + +inst_224: +// rs1_val==1717986918 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, -0xb504, x1, 195*XLEN/8, x2) + +inst_225: +// rs1_val==1717986918 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0xb504, x1, 196*XLEN/8, x2) + +inst_226: +// rs1_val==1717986918 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x2, x1, 197*XLEN/8, x2) + +inst_227: +// rs1_val==1717986918 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x55555554, x1, 198*XLEN/8, x2) + +inst_228: +// rs1_val==1717986918 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x0, x1, 199*XLEN/8, x2) + +inst_229: +// rs1_val==1717986918 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x4, x1, 200*XLEN/8, x2) + +inst_230: +// rs1_val==1717986918 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x33333332, x1, 201*XLEN/8, x2) + +inst_231: +// rs1_val==1717986918 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x66666665, x1, 202*XLEN/8, x2) + +inst_232: +// rs1_val==1717986918 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0xb503, x1, 203*XLEN/8, x2) + +inst_233: +// rs1_val==1717986918 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x55555556, x1, 204*XLEN/8, x2) + +inst_234: +// rs1_val==1717986918 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, -0x55555555, x1, 205*XLEN/8, x2) + +inst_235: +// rs1_val==1717986918 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x6, x1, 206*XLEN/8, x2) + +inst_236: +// rs1_val==1717986918 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x33333334, x1, 207*XLEN/8, x2) + +inst_237: +// rs1_val==1717986918 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0x66666667, x1, 208*XLEN/8, x2) + +inst_238: +// rs1_val==1717986918 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, -0xb503, x1, 209*XLEN/8, x2) + +inst_239: +// rs1_val==1717986918 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666666; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666666, 0xb505, x1, 210*XLEN/8, x2) + +inst_240: +// rs1_val==-46340 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x3, x1, 211*XLEN/8, x2) + +inst_241: +// rs1_val==-46340 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x55555555, x1, 212*XLEN/8, x2) + +inst_242: +// rs1_val==-46340 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, -0x55555556, x1, 213*XLEN/8, x2) + +inst_243: +// rs1_val==-46340 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x5, x1, 214*XLEN/8, x2) + +inst_244: +// rs1_val==-46340 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x33333333, x1, 215*XLEN/8, x2) + +inst_245: +// rs1_val==-46340 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x66666666, x1, 216*XLEN/8, x2) + +inst_246: +// rs1_val==-46340 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, -0xb504, x1, 217*XLEN/8, x2) + +inst_247: +// rs1_val==-46340 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0xb504, x1, 218*XLEN/8, x2) + +inst_248: +// rs1_val==-46340 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x2, x1, 219*XLEN/8, x2) + +inst_249: +// rs1_val==-46340 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x55555554, x1, 220*XLEN/8, x2) + +inst_250: +// rs1_val==-46340 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x0, x1, 221*XLEN/8, x2) + +inst_251: +// rs1_val==-46340 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x4, x1, 222*XLEN/8, x2) + +inst_252: +// rs1_val==-46340 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x33333332, x1, 223*XLEN/8, x2) + +inst_253: +// rs1_val==-46340 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x66666665, x1, 224*XLEN/8, x2) + +inst_254: +// rs1_val==-46340 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0xb503, x1, 225*XLEN/8, x2) + +inst_255: +// rs1_val==-46340 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x55555556, x1, 226*XLEN/8, x2) + +inst_256: +// rs1_val==-46340 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, -0x55555555, x1, 227*XLEN/8, x2) + +inst_257: +// rs1_val==-46340 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x6, x1, 228*XLEN/8, x2) + +inst_258: +// rs1_val==-46340 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x33333334, x1, 229*XLEN/8, x2) + +inst_259: +// rs1_val==-46340 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0x66666667, x1, 230*XLEN/8, x2) + +inst_260: +// rs1_val==-46340 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, -0xb503, x1, 231*XLEN/8, x2) + +inst_261: +// rs1_val==-46340 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504, 0xb505, x1, 232*XLEN/8, x2) + +inst_262: +// rs1_val==46340 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x3, x1, 233*XLEN/8, x2) + +inst_263: +// rs1_val==46340 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x55555555, x1, 234*XLEN/8, x2) + +inst_264: +// rs1_val==46340 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, -0x55555556, x1, 235*XLEN/8, x2) + +inst_265: +// rs1_val==46340 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x5, x1, 236*XLEN/8, x2) + +inst_266: +// rs1_val==46340 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x33333333, x1, 237*XLEN/8, x2) + +inst_267: +// rs1_val==46340 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x66666666, x1, 238*XLEN/8, x2) + +inst_268: +// rs1_val==46340 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, -0xb504, x1, 239*XLEN/8, x2) + +inst_269: +// rs1_val==46340 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0xb504, x1, 240*XLEN/8, x2) + +inst_270: +// rs1_val==46340 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x2, x1, 241*XLEN/8, x2) + +inst_271: +// rs1_val==46340 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x55555554, x1, 242*XLEN/8, x2) + +inst_272: +// rs1_val==46340 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x0, x1, 243*XLEN/8, x2) + +inst_273: +// rs1_val==46340 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x4, x1, 244*XLEN/8, x2) + +inst_274: +// rs1_val==46340 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x33333332, x1, 245*XLEN/8, x2) + +inst_275: +// rs1_val==46340 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x66666665, x1, 246*XLEN/8, x2) + +inst_276: +// rs1_val==46340 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0xb503, x1, 247*XLEN/8, x2) + +inst_277: +// rs1_val==46340 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x55555556, x1, 248*XLEN/8, x2) + +inst_278: +// rs1_val==46340 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, -0x55555555, x1, 249*XLEN/8, x2) + +inst_279: +// rs1_val==46340 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x6, x1, 250*XLEN/8, x2) + +inst_280: +// rs1_val==46340 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x33333334, x1, 251*XLEN/8, x2) + +inst_281: +// rs1_val==46340 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0x66666667, x1, 252*XLEN/8, x2) + +inst_282: +// rs1_val==46340 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, -0xb503, x1, 253*XLEN/8, x2) + +inst_283: +// rs1_val==46340 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504, 0xb505, x1, 254*XLEN/8, x2) + +inst_284: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x3, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_285: +// rs1_val==2 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x55555555, x1, 0*XLEN/8, x2) + +inst_286: +// rs1_val==2 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0x55555556, x1, 1*XLEN/8, x2) + +inst_287: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x5, x1, 2*XLEN/8, x2) + +inst_288: +// rs1_val==2 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x33333333, x1, 3*XLEN/8, x2) + +inst_289: +// rs1_val==2 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x66666666, x1, 4*XLEN/8, x2) + +inst_290: +// rs1_val==2 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0xb504, x1, 5*XLEN/8, x2) + +inst_291: +// rs1_val==2 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0xb504, x1, 6*XLEN/8, x2) + +inst_292: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x2, x1, 7*XLEN/8, x2) + +inst_293: +// rs1_val==2 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x55555554, x1, 8*XLEN/8, x2) + +inst_294: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x0, x1, 9*XLEN/8, x2) + +inst_295: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x4, x1, 10*XLEN/8, x2) + +inst_296: +// rs1_val==2 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x33333332, x1, 11*XLEN/8, x2) + +inst_297: +// rs1_val==2 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x66666665, x1, 12*XLEN/8, x2) + +inst_298: +// rs1_val==2 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0xb503, x1, 13*XLEN/8, x2) + +inst_299: +// rs1_val==2 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x55555556, x1, 14*XLEN/8, x2) + +inst_300: +// rs1_val==2 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0x55555555, x1, 15*XLEN/8, x2) + +inst_301: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x6, x1, 16*XLEN/8, x2) + +inst_302: +// rs1_val==2 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x33333334, x1, 17*XLEN/8, x2) + +inst_303: +// rs1_val==2 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x66666667, x1, 18*XLEN/8, x2) + +inst_304: +// rs1_val==2 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0xb503, x1, 19*XLEN/8, x2) + +inst_305: +// rs1_val==2 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0xb505, x1, 20*XLEN/8, x2) + +inst_306: +// rs1_val==1431655764 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x3, x1, 21*XLEN/8, x2) + +inst_307: +// rs1_val==1431655764 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x55555555, x1, 22*XLEN/8, x2) + +inst_308: +// rs1_val==1431655764 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, -0x55555556, x1, 23*XLEN/8, x2) + +inst_309: +// rs1_val==1431655764 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x5, x1, 24*XLEN/8, x2) + +inst_310: +// rs1_val==1431655764 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x33333333, x1, 25*XLEN/8, x2) + +inst_311: +// rs1_val==1431655764 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x66666666, x1, 26*XLEN/8, x2) + +inst_312: +// rs1_val==1431655764 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, -0xb504, x1, 27*XLEN/8, x2) + +inst_313: +// rs1_val==1431655764 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0xb504, x1, 28*XLEN/8, x2) + +inst_314: +// rs1_val==1431655764 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x2, x1, 29*XLEN/8, x2) + +inst_315: +// rs1_val==1431655764 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x55555554, x1, 30*XLEN/8, x2) + +inst_316: +// rs1_val==1431655764 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x0, x1, 31*XLEN/8, x2) + +inst_317: +// rs1_val==1431655764 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x4, x1, 32*XLEN/8, x2) + +inst_318: +// rs1_val==1431655764 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x33333332, x1, 33*XLEN/8, x2) + +inst_319: +// rs1_val==1431655764 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x66666665, x1, 34*XLEN/8, x2) + +inst_320: +// rs1_val==1431655764 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0xb503, x1, 35*XLEN/8, x2) + +inst_321: +// rs1_val==1431655764 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x55555556, x1, 36*XLEN/8, x2) + +inst_322: +// rs1_val==1431655764 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, -0x55555555, x1, 37*XLEN/8, x2) + +inst_323: +// rs1_val==1431655764 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x6, x1, 38*XLEN/8, x2) + +inst_324: +// rs1_val==1431655764 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x33333334, x1, 39*XLEN/8, x2) + +inst_325: +// rs1_val==1431655764 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0x66666667, x1, 40*XLEN/8, x2) + +inst_326: +// rs1_val==1431655764 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, -0xb503, x1, 41*XLEN/8, x2) + +inst_327: +// rs1_val==1431655764 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555554; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555554, 0xb505, x1, 42*XLEN/8, x2) + +inst_328: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x3, x1, 43*XLEN/8, x2) + +inst_329: +// rs1_val==0 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x55555555, x1, 44*XLEN/8, x2) + +inst_330: +// rs1_val==0 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0x55555556, x1, 45*XLEN/8, x2) + +inst_331: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x5, x1, 46*XLEN/8, x2) + +inst_332: +// rs1_val==0 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x33333333, x1, 47*XLEN/8, x2) + +inst_333: +// rs1_val==0 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x66666666, x1, 48*XLEN/8, x2) + +inst_334: +// rs1_val==0 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0xb504, x1, 49*XLEN/8, x2) + +inst_335: +// rs1_val==-1431655765 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, -0x55555555, x1, 50*XLEN/8, x2) + +inst_336: +// rs1_val==-1431655765 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x6, x1, 51*XLEN/8, x2) + +inst_337: +// rs1_val==-1431655765 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x33333334, x1, 52*XLEN/8, x2) + +inst_338: +// rs1_val==-1431655765 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x66666667, x1, 53*XLEN/8, x2) + +inst_339: +// rs1_val==-1431655765 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, -0xb503, x1, 54*XLEN/8, x2) + +inst_340: +// rs1_val==-1431655765 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0xb505, x1, 55*XLEN/8, x2) + +inst_341: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x3, x1, 56*XLEN/8, x2) + +inst_342: +// rs1_val==6 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x55555555, x1, 57*XLEN/8, x2) + +inst_343: +// rs1_val==6 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0x55555556, x1, 58*XLEN/8, x2) + +inst_344: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x5, x1, 59*XLEN/8, x2) + +inst_345: +// rs1_val==6 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x33333333, x1, 60*XLEN/8, x2) + +inst_346: +// rs1_val==6 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x66666666, x1, 61*XLEN/8, x2) + +inst_347: +// rs1_val==6 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0xb504, x1, 62*XLEN/8, x2) + +inst_348: +// rs1_val==6 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0xb504, x1, 63*XLEN/8, x2) + +inst_349: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x2, x1, 64*XLEN/8, x2) + +inst_350: +// rs1_val==6 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x55555554, x1, 65*XLEN/8, x2) + +inst_351: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x0, x1, 66*XLEN/8, x2) + +inst_352: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x4, x1, 67*XLEN/8, x2) + +inst_353: +// rs1_val==6 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x33333332, x1, 68*XLEN/8, x2) + +inst_354: +// rs1_val==6 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x66666665, x1, 69*XLEN/8, x2) + +inst_355: +// rs1_val==6 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0xb503, x1, 70*XLEN/8, x2) + +inst_356: +// rs1_val==6 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x55555556, x1, 71*XLEN/8, x2) + +inst_357: +// rs1_val==6 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0x55555555, x1, 72*XLEN/8, x2) + +inst_358: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x6, x1, 73*XLEN/8, x2) + +inst_359: +// rs1_val==6 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x33333334, x1, 74*XLEN/8, x2) + +inst_360: +// rs1_val==6 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x66666667, x1, 75*XLEN/8, x2) + +inst_361: +// rs1_val==6 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0xb503, x1, 76*XLEN/8, x2) + +inst_362: +// rs1_val==6 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0xb505, x1, 77*XLEN/8, x2) + +inst_363: +// rs1_val==858993460 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x3, x1, 78*XLEN/8, x2) + +inst_364: +// rs1_val==858993460 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x55555555, x1, 79*XLEN/8, x2) + +inst_365: +// rs1_val==858993460 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, -0x55555556, x1, 80*XLEN/8, x2) + +inst_366: +// rs1_val==858993460 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x5, x1, 81*XLEN/8, x2) + +inst_367: +// rs1_val==858993460 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x33333333, x1, 82*XLEN/8, x2) + +inst_368: +// rs1_val==858993460 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x66666666, x1, 83*XLEN/8, x2) + +inst_369: +// rs1_val==858993460 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, -0xb504, x1, 84*XLEN/8, x2) + +inst_370: +// rs1_val==858993460 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0xb504, x1, 85*XLEN/8, x2) + +inst_371: +// rs1_val==858993460 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x2, x1, 86*XLEN/8, x2) + +inst_372: +// rs1_val==858993460 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x55555554, x1, 87*XLEN/8, x2) + +inst_373: +// rs1_val==858993460 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x0, x1, 88*XLEN/8, x2) + +inst_374: +// rs1_val==858993460 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x4, x1, 89*XLEN/8, x2) + +inst_375: +// rs1_val==858993460 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x33333332, x1, 90*XLEN/8, x2) + +inst_376: +// rs1_val==858993460 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x66666665, x1, 91*XLEN/8, x2) + +inst_377: +// rs1_val==858993460 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0xb503, x1, 92*XLEN/8, x2) + +inst_378: +// rs1_val==858993460 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x55555556, x1, 93*XLEN/8, x2) + +inst_379: +// rs1_val==858993460 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, -0x55555555, x1, 94*XLEN/8, x2) + +inst_380: +// rs1_val==858993460 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x6, x1, 95*XLEN/8, x2) + +inst_381: +// rs1_val==858993460 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x33333334, x1, 96*XLEN/8, x2) + +inst_382: +// rs1_val==858993460 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0x66666667, x1, 97*XLEN/8, x2) + +inst_383: +// rs1_val==858993460 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, -0xb503, x1, 98*XLEN/8, x2) + +inst_384: +// rs1_val==858993460 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333334; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333334, 0xb505, x1, 99*XLEN/8, x2) + +inst_385: +// rs1_val==1717986919 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x3, x1, 100*XLEN/8, x2) + +inst_386: +// rs1_val==1717986919 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x55555555, x1, 101*XLEN/8, x2) + +inst_387: +// rs1_val==1717986919 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, -0x55555556, x1, 102*XLEN/8, x2) + +inst_388: +// rs1_val==1717986919 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x5, x1, 103*XLEN/8, x2) + +inst_389: +// rs1_val==1717986919 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x33333333, x1, 104*XLEN/8, x2) + +inst_390: +// rs1_val==1717986919 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x66666666, x1, 105*XLEN/8, x2) + +inst_391: +// rs1_val==1717986919 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, -0xb504, x1, 106*XLEN/8, x2) + +inst_392: +// rs1_val==1717986919 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0xb504, x1, 107*XLEN/8, x2) + +inst_393: +// rs1_val==1717986919 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x2, x1, 108*XLEN/8, x2) + +inst_394: +// rs1_val==1717986919 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x55555554, x1, 109*XLEN/8, x2) + +inst_395: +// rs1_val==1717986919 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x0, x1, 110*XLEN/8, x2) + +inst_396: +// rs1_val==1717986919 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x4, x1, 111*XLEN/8, x2) + +inst_397: +// rs1_val==1717986919 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x33333332, x1, 112*XLEN/8, x2) + +inst_398: +// rs1_val==1717986919 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x66666665, x1, 113*XLEN/8, x2) + +inst_399: +// rs1_val==1717986919 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0xb503, x1, 114*XLEN/8, x2) + +inst_400: +// rs1_val==1717986919 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x55555556, x1, 115*XLEN/8, x2) + +inst_401: +// rs1_val==1717986919 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, -0x55555555, x1, 116*XLEN/8, x2) + +inst_402: +// rs1_val==1717986919 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x6, x1, 117*XLEN/8, x2) + +inst_403: +// rs1_val==1717986919 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x33333334, x1, 118*XLEN/8, x2) + +inst_404: +// rs1_val==1717986919 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0x66666667, x1, 119*XLEN/8, x2) + +inst_405: +// rs1_val==1717986919 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, -0xb503, x1, 120*XLEN/8, x2) + +inst_406: +// rs1_val==1717986919 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666667; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666667, 0xb505, x1, 121*XLEN/8, x2) + +inst_407: +// rs1_val==-46339 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x3, x1, 122*XLEN/8, x2) + +inst_408: +// rs1_val==-46339 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x55555555, x1, 123*XLEN/8, x2) + +inst_409: +// rs1_val==-46339 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, -0x55555556, x1, 124*XLEN/8, x2) + +inst_410: +// rs1_val==-46339 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x5, x1, 125*XLEN/8, x2) + +inst_411: +// rs1_val==-46339 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x33333333, x1, 126*XLEN/8, x2) + +inst_412: +// rs1_val==-46339 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x66666666, x1, 127*XLEN/8, x2) + +inst_413: +// rs1_val==-46339 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, -0xb504, x1, 128*XLEN/8, x2) + +inst_414: +// rs1_val==-46339 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0xb504, x1, 129*XLEN/8, x2) + +inst_415: +// rs1_val==-46339 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x2, x1, 130*XLEN/8, x2) + +inst_416: +// rs1_val==-46339 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x55555554, x1, 131*XLEN/8, x2) + +inst_417: +// rs1_val==-46339 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x0, x1, 132*XLEN/8, x2) + +inst_418: +// rs1_val==-46339 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x4, x1, 133*XLEN/8, x2) + +inst_419: +// rs1_val==-46339 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x33333332, x1, 134*XLEN/8, x2) + +inst_420: +// rs1_val==-46339 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x66666665, x1, 135*XLEN/8, x2) + +inst_421: +// rs1_val==-46339 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0xb503, x1, 136*XLEN/8, x2) + +inst_422: +// rs1_val==-46339 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x55555556, x1, 137*XLEN/8, x2) + +inst_423: +// rs1_val==-46339 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, -0x55555555, x1, 138*XLEN/8, x2) + +inst_424: +// rs1_val==-46339 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x6, x1, 139*XLEN/8, x2) + +inst_425: +// rs1_val==-46339 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x33333334, x1, 140*XLEN/8, x2) + +inst_426: +// rs1_val==-46339 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0x66666667, x1, 141*XLEN/8, x2) + +inst_427: +// rs1_val==-46339 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, -0xb503, x1, 142*XLEN/8, x2) + +inst_428: +// rs1_val==-46339 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb503, 0xb505, x1, 143*XLEN/8, x2) + +inst_429: +// rs1_val==46341 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x3, x1, 144*XLEN/8, x2) + +inst_430: +// rs1_val==46341 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x55555555, x1, 145*XLEN/8, x2) + +inst_431: +// rs1_val==46341 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, -0x55555556, x1, 146*XLEN/8, x2) + +inst_432: +// rs1_val==46341 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x5, x1, 147*XLEN/8, x2) + +inst_433: +// rs1_val==46341 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x33333333, x1, 148*XLEN/8, x2) + +inst_434: +// rs1_val==46341 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x66666666, x1, 149*XLEN/8, x2) + +inst_435: +// rs1_val==46341 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, -0xb504, x1, 150*XLEN/8, x2) + +inst_436: +// rs1_val==46341 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0xb504, x1, 151*XLEN/8, x2) + +inst_437: +// rs1_val==46341 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x2, x1, 152*XLEN/8, x2) + +inst_438: +// rs1_val==46341 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x55555554, x1, 153*XLEN/8, x2) + +inst_439: +// rs1_val==46341 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x0, x1, 154*XLEN/8, x2) + +inst_440: +// rs1_val==46341 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x4, x1, 155*XLEN/8, x2) + +inst_441: +// rs1_val==46341 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x33333332, x1, 156*XLEN/8, x2) + +inst_442: +// rs1_val==46341 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x66666665, x1, 157*XLEN/8, x2) + +inst_443: +// rs1_val==46341 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0xb503, x1, 158*XLEN/8, x2) + +inst_444: +// rs1_val==46341 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x55555556, x1, 159*XLEN/8, x2) + +inst_445: +// rs1_val==46341 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, -0x55555555, x1, 160*XLEN/8, x2) + +inst_446: +// rs1_val==46341 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x6, x1, 161*XLEN/8, x2) + +inst_447: +// rs1_val==46341 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x33333334, x1, 162*XLEN/8, x2) + +inst_448: +// rs1_val==46341 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0x66666667, x1, 163*XLEN/8, x2) + +inst_449: +// rs1_val==46341 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, -0xb503, x1, 164*XLEN/8, x2) + +inst_450: +// rs1_val==46341 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb505; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb505, 0xb505, x1, 165*XLEN/8, x2) + +inst_451: +// rs1_val==0 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0xb504, x1, 166*XLEN/8, x2) + +inst_452: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x2, x1, 167*XLEN/8, x2) + +inst_453: +// rs1_val==0 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x55555554, x1, 168*XLEN/8, x2) + +inst_454: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x0, x1, 169*XLEN/8, x2) + +inst_455: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x4, x1, 170*XLEN/8, x2) + +inst_456: +// rs1_val==0 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x33333332, x1, 171*XLEN/8, x2) + +inst_457: +// rs1_val==0 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x66666665, x1, 172*XLEN/8, x2) + +inst_458: +// rs1_val==0 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0xb503, x1, 173*XLEN/8, x2) + +inst_459: +// rs1_val==0 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x55555556, x1, 174*XLEN/8, x2) + +inst_460: +// rs1_val==0 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0x55555555, x1, 175*XLEN/8, x2) + +inst_461: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x6, x1, 176*XLEN/8, x2) + +inst_462: +// rs1_val==0 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x66666667, x1, 177*XLEN/8, x2) + +inst_463: +// rs1_val==0 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0xb503, x1, 178*XLEN/8, x2) + +inst_464: +// rs1_val==0 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0xb505, x1, 179*XLEN/8, x2) + +inst_465: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x3, x1, 180*XLEN/8, x2) + +inst_466: +// rs1_val==4 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x55555555, x1, 181*XLEN/8, x2) + +inst_467: +// rs1_val==4 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x55555556, x1, 182*XLEN/8, x2) + +inst_468: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x5, x1, 183*XLEN/8, x2) + +inst_469: +// rs1_val==4 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x33333333, x1, 184*XLEN/8, x2) + +inst_470: +// rs1_val==4 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x66666666, x1, 185*XLEN/8, x2) + +inst_471: +// rs1_val==4 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0xb504, x1, 186*XLEN/8, x2) + +inst_472: +// rs1_val==4 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0xb504, x1, 187*XLEN/8, x2) + +inst_473: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x2, x1, 188*XLEN/8, x2) + +inst_474: +// rs1_val==4 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x55555554, x1, 189*XLEN/8, x2) + +inst_475: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x0, x1, 190*XLEN/8, x2) + +inst_476: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x4, x1, 191*XLEN/8, x2) + +inst_477: +// rs1_val==4 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x33333332, x1, 192*XLEN/8, x2) + +inst_478: +// rs1_val==4 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x66666665, x1, 193*XLEN/8, x2) + +inst_479: +// rs1_val==4 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0xb503, x1, 194*XLEN/8, x2) + +inst_480: +// rs1_val==4 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x55555556, x1, 195*XLEN/8, x2) + +inst_481: +// rs1_val==4 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x55555555, x1, 196*XLEN/8, x2) + +inst_482: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x6, x1, 197*XLEN/8, x2) + +inst_483: +// rs1_val==4 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x33333334, x1, 198*XLEN/8, x2) + +inst_484: +// rs1_val==4 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x66666667, x1, 199*XLEN/8, x2) + +inst_485: +// rs1_val==4 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0xb503, x1, 200*XLEN/8, x2) + +inst_486: +// rs1_val==4 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0xb505, x1, 201*XLEN/8, x2) + +inst_487: +// rs1_val==858993458 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x3, x1, 202*XLEN/8, x2) + +inst_488: +// rs1_val==858993458 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x55555555, x1, 203*XLEN/8, x2) + +inst_489: +// rs1_val==858993458 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, -0x55555556, x1, 204*XLEN/8, x2) + +inst_490: +// rs1_val==858993458 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x5, x1, 205*XLEN/8, x2) + +inst_491: +// rs1_val==858993458 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x33333333, x1, 206*XLEN/8, x2) + +inst_492: +// rs1_val==858993458 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x66666666, x1, 207*XLEN/8, x2) + +inst_493: +// rs1_val==858993458 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, -0xb504, x1, 208*XLEN/8, x2) + +inst_494: +// rs1_val==858993458 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0xb504, x1, 209*XLEN/8, x2) + +inst_495: +// rs1_val==858993458 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x55555554, x1, 210*XLEN/8, x2) + +inst_496: +// rs1_val==858993458 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x0, x1, 211*XLEN/8, x2) + +inst_497: +// rs1_val==858993458 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x4, x1, 212*XLEN/8, x2) + +inst_498: +// rs1_val==858993458 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x33333332, x1, 213*XLEN/8, x2) + +inst_499: +// rs1_val==858993458 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x66666665, x1, 214*XLEN/8, x2) + +inst_500: +// rs1_val==858993458 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0xb503, x1, 215*XLEN/8, x2) + +inst_501: +// rs1_val==858993458 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x55555556, x1, 216*XLEN/8, x2) + +inst_502: +// rs1_val==858993458 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, -0x55555555, x1, 217*XLEN/8, x2) + +inst_503: +// rs1_val==858993458 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x6, x1, 218*XLEN/8, x2) + +inst_504: +// rs1_val==858993458 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x33333334, x1, 219*XLEN/8, x2) + +inst_505: +// rs1_val==858993458 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0x66666667, x1, 220*XLEN/8, x2) + +inst_506: +// rs1_val==858993458 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, -0xb503, x1, 221*XLEN/8, x2) + +inst_507: +// rs1_val==858993458 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x33333332; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x33333332, 0xb505, x1, 222*XLEN/8, x2) + +inst_508: +// rs1_val==1717986917 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x3, x1, 223*XLEN/8, x2) + +inst_509: +// rs1_val==1717986917 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x55555555, x1, 224*XLEN/8, x2) + +inst_510: +// rs1_val==1717986917 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, -0x55555556, x1, 225*XLEN/8, x2) + +inst_511: +// rs1_val==1717986917 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x5, x1, 226*XLEN/8, x2) + +inst_512: +// rs1_val==1717986917 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x33333333, x1, 227*XLEN/8, x2) + +inst_513: +// rs1_val==1717986917 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x66666666, x1, 228*XLEN/8, x2) + +inst_514: +// rs1_val==1717986917 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, -0xb504, x1, 229*XLEN/8, x2) + +inst_515: +// rs1_val==1717986917 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0xb504, x1, 230*XLEN/8, x2) + +inst_516: +// rs1_val==1717986917 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x2, x1, 231*XLEN/8, x2) + +inst_517: +// rs1_val==1717986917 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x55555554, x1, 232*XLEN/8, x2) + +inst_518: +// rs1_val==1717986917 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x0, x1, 233*XLEN/8, x2) + +inst_519: +// rs1_val==1717986917 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x4, x1, 234*XLEN/8, x2) + +inst_520: +// rs1_val==1717986917 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x33333332, x1, 235*XLEN/8, x2) + +inst_521: +// rs1_val==1717986917 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x66666665, x1, 236*XLEN/8, x2) + +inst_522: +// rs1_val==1717986917 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0xb503, x1, 237*XLEN/8, x2) + +inst_523: +// rs1_val==1717986917 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x55555556, x1, 238*XLEN/8, x2) + +inst_524: +// rs1_val==1717986917 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, -0x55555555, x1, 239*XLEN/8, x2) + +inst_525: +// rs1_val==1717986917 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x6, x1, 240*XLEN/8, x2) + +inst_526: +// rs1_val==1717986917 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x33333334, x1, 241*XLEN/8, x2) + +inst_527: +// rs1_val==1717986917 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0x66666667, x1, 242*XLEN/8, x2) + +inst_528: +// rs1_val==1717986917 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, -0xb503, x1, 243*XLEN/8, x2) + +inst_529: +// rs1_val==1717986917 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, 0xb505, x1, 244*XLEN/8, x2) + +inst_530: +// rs1_val==46339 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x3, x1, 245*XLEN/8, x2) + +inst_531: +// rs1_val==46339 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x55555555, x1, 246*XLEN/8, x2) + +inst_532: +// rs1_val==46339 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, -0x55555556, x1, 247*XLEN/8, x2) + +inst_533: +// rs1_val==46339 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x5, x1, 248*XLEN/8, x2) + +inst_534: +// rs1_val==46339 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x33333333, x1, 249*XLEN/8, x2) + +inst_535: +// rs1_val==46339 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x66666666, x1, 250*XLEN/8, x2) + +inst_536: +// rs1_val==46339 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, -0xb504, x1, 251*XLEN/8, x2) + +inst_537: +// rs1_val==46339 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0xb504, x1, 252*XLEN/8, x2) + +inst_538: +// rs1_val==46339 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x2, x1, 253*XLEN/8, x2) + +inst_539: +// rs1_val==46339 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x55555554, x1, 254*XLEN/8, x2) + +inst_540: +// rs1_val==46339 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x0, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_541: +// rs1_val==46339 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x4, x1, 0*XLEN/8, x2) + +inst_542: +// rs1_val==46339 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x33333332, x1, 1*XLEN/8, x2) + +inst_543: +// rs1_val==46339 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x66666665, x1, 2*XLEN/8, x2) + +inst_544: +// rs1_val==46339 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0xb503, x1, 3*XLEN/8, x2) + +inst_545: +// rs1_val==46339 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x55555556, x1, 4*XLEN/8, x2) + +inst_546: +// rs1_val==46339 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, -0x55555555, x1, 5*XLEN/8, x2) + +inst_547: +// rs1_val==46339 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x6, x1, 6*XLEN/8, x2) + +inst_548: +// rs1_val==46339 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x33333334, x1, 7*XLEN/8, x2) + +inst_549: +// rs1_val==46339 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0x66666667, x1, 8*XLEN/8, x2) + +inst_550: +// rs1_val==46339 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, -0xb503, x1, 9*XLEN/8, x2) + +inst_551: +// rs1_val==46339 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb503; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb503, 0xb505, x1, 10*XLEN/8, x2) + +inst_552: +// rs1_val==1431655766 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x3, x1, 11*XLEN/8, x2) + +inst_553: +// rs1_val==1431655766 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x55555555, x1, 12*XLEN/8, x2) + +inst_554: +// rs1_val==1431655766 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, -0x55555556, x1, 13*XLEN/8, x2) + +inst_555: +// rs1_val==1431655766 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x5, x1, 14*XLEN/8, x2) + +inst_556: +// rs1_val==1431655766 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x33333333, x1, 15*XLEN/8, x2) + +inst_557: +// rs1_val==1431655766 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x66666666, x1, 16*XLEN/8, x2) + +inst_558: +// rs1_val==1431655766 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, -0xb504, x1, 17*XLEN/8, x2) + +inst_559: +// rs1_val==1431655766 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0xb504, x1, 18*XLEN/8, x2) + +inst_560: +// rs1_val==1431655766 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x2, x1, 19*XLEN/8, x2) + +inst_561: +// rs1_val==1431655766 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x55555554, x1, 20*XLEN/8, x2) + +inst_562: +// rs1_val==1431655766 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x0, x1, 21*XLEN/8, x2) + +inst_563: +// rs1_val==1431655766 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x4, x1, 22*XLEN/8, x2) + +inst_564: +// rs1_val==1431655766 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x33333332, x1, 23*XLEN/8, x2) + +inst_565: +// rs1_val==1431655766 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x66666665, x1, 24*XLEN/8, x2) + +inst_566: +// rs1_val==1431655766 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0xb503, x1, 25*XLEN/8, x2) + +inst_567: +// rs1_val==1431655766 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x55555556, x1, 26*XLEN/8, x2) + +inst_568: +// rs1_val==1431655766 and rs2_val==-1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, -0x55555555, x1, 27*XLEN/8, x2) + +inst_569: +// rs1_val==1431655766 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x6, x1, 28*XLEN/8, x2) + +inst_570: +// rs1_val==1431655766 and rs2_val==858993460, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x33333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x33333334, x1, 29*XLEN/8, x2) + +inst_571: +// rs1_val==1431655766 and rs2_val==1717986919, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0x66666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0x66666667, x1, 30*XLEN/8, x2) + +inst_572: +// rs1_val==1431655766 and rs2_val==-46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:-0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, -0xb503, x1, 31*XLEN/8, x2) + +inst_573: +// rs1_val==1431655766 and rs2_val==46341, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x55555556; op2val:0xb505 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x55555556, 0xb505, x1, 32*XLEN/8, x2) + +inst_574: +// rs1_val==-1431655765 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x3, x1, 33*XLEN/8, x2) + +inst_575: +// rs1_val==-1431655765 and rs2_val==1431655765, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x55555555, x1, 34*XLEN/8, x2) + +inst_576: +// rs1_val==-1431655765 and rs2_val==-1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, -0x55555556, x1, 35*XLEN/8, x2) + +inst_577: +// rs1_val==-1431655765 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x5, x1, 36*XLEN/8, x2) + +inst_578: +// rs1_val==-1431655765 and rs2_val==858993459, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x33333333, x1, 37*XLEN/8, x2) + +inst_579: +// rs1_val==-1431655765 and rs2_val==1717986918, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x66666666, x1, 38*XLEN/8, x2) + +inst_580: +// rs1_val==-1431655765 and rs2_val==-46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:-0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, -0xb504, x1, 39*XLEN/8, x2) + +inst_581: +// rs1_val==-1431655765 and rs2_val==46340, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb504 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0xb504, x1, 40*XLEN/8, x2) + +inst_582: +// rs1_val==-1431655765 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x2, x1, 41*XLEN/8, x2) + +inst_583: +// rs1_val==-1431655765 and rs2_val==1431655764, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x55555554, x1, 42*XLEN/8, x2) + +inst_584: +// rs1_val==-1431655765 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x0, x1, 43*XLEN/8, x2) + +inst_585: +// rs1_val==-1431655765 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x4, x1, 44*XLEN/8, x2) + +inst_586: +// rs1_val==-1431655765 and rs2_val==858993458, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x33333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x33333332, x1, 45*XLEN/8, x2) + +inst_587: +// rs1_val==-1431655765 and rs2_val==1717986917, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x66666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x66666665, x1, 46*XLEN/8, x2) + +inst_588: +// rs1_val==-1431655765 and rs2_val==46339, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0xb503 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0xb503, x1, 47*XLEN/8, x2) + +inst_589: +// rs1_val==-1431655765 and rs2_val==1431655766, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x55555555; op2val:0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x55555555, 0x55555556, x1, 48*XLEN/8, x2) + +inst_590: +// rs1_val < 0 and rs2_val < 0, rs1_val == -8193, rs2_val == -1431655766 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x55555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2001, -0x55555556, x1, 49*XLEN/8, x2) + +inst_591: +// rs2_val == -1025, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x66666665; op2val:-0x401 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x66666665, -0x401, x1, 50*XLEN/8, x2) + +inst_592: +// rs2_val == -2049, rs1_val == 134217728 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x801 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8000000, -0x801, x1, 51*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_x16_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x16_1: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_0: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 52*((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/Zimop/src/mop.r.0-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.0-01.S new file mode 100644 index 000000000..fc031faef --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.0-01.S @@ -0,0 +1,262 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.0 instruction of the RISC-V RV64Zimop extension for the mop.r.0 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.0) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rs1==x2, rd==x2, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.0 ; op1:x2; dest:x2; op1val:0x4000000000000; immval:-0x800 +TEST_R_OP( mop.r.0, x2, x2, 0, 0x4000000000000, x1, 0*XLEN/8, x6) + +inst_1: +// rs1 != rd, rs1==x4, rd==x29, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.0 ; op1:x4; dest:x29; op1val:-0x1000000001; immval:0x7ff +TEST_R_OP( mop.r.0, x29, x4, 0, -0x1000000001, x1, 1*XLEN/8, x6) + +inst_2: +// rs1==x26, rd==x31, imm_val == 0, +// opcode: mop.r.0 ; op1:x26; dest:x31; op1val:0x4000000000; immval:0x0 +TEST_R_OP( mop.r.0, x31, x26, 0, 0x4000000000, x1, 2*XLEN/8, x6) + +inst_3: +// rs1==x28, rd==x0, imm_val == 1, +// opcode: mop.r.0 ; op1:x28; dest:x0; op1val:-0x2000000000001; immval:0x1 +TEST_R_OP( mop.r.0, x0, x28, 0, -0x2000000000001, x1, 3*XLEN/8, x6) + +inst_4: +// rs1==x24, rd==x28, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.0 ; op1:x24; dest:x28; op1val:-0x40000000000001; immval:-0x21 +TEST_R_OP( mop.r.0, x28, x24, 0, -0x40000000000001, x1, 4*XLEN/8, x6) + +inst_5: +// rs1==x23, rd==x11, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.0 ; op1:x23; dest:x11; op1val:-0x8000000000000000; immval:0x665 +TEST_R_OP( mop.r.0, x11, x23, 0, -0x8000000000000000, x1, 5*XLEN/8, x6) + +inst_6: +// rs1==x0, rd==x12, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.0 ; op1:x0; dest:x12; op1val:0x0; immval:0x9 +TEST_R_OP( mop.r.0, x12, x0, 0, 0x0, x1, 6*XLEN/8, x6) + +inst_7: +// rs1==x16, rd==x27, rs1_val == 0, +// opcode: mop.r.0 ; op1:x16; dest:x27; op1val:0x0; immval:0x556 +TEST_R_OP( mop.r.0, x27, x16, 0, 0x0, x1, 7*XLEN/8, x6) + +inst_8: +// rs1==x30, rd==x23, rs1_val == 1, +// opcode: mop.r.0 ; op1:x30; dest:x23; op1val:0x1; immval:0x0 +TEST_R_OP( mop.r.0, x23, x30, 0, 0x1, x1, 8*XLEN/8, x6) + +inst_9: +// rs1==x10, rd==x4, rs1_val == imm_val, +// opcode: mop.r.0 ; op1:x10; dest:x4; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.0, x4, x10, 0, 0x0, x1, 9*XLEN/8, x6) + +inst_10: +// rs1==x3, rd==x21, +// opcode: mop.r.0 ; op1:x3; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x21, x3, 0, 0x0, x1, 10*XLEN/8, x6) + +inst_11: +// rs1==x13, rd==x8, +// opcode: mop.r.0 ; op1:x13; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x8, x13, 0, 0x0, x1, 11*XLEN/8, x6) + +inst_12: +// rs1==x29, rd==x3, +// opcode: mop.r.0 ; op1:x29; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x3, x29, 0, 0x0, x1, 12*XLEN/8, x6) + +inst_13: +// rs1==x5, rd==x17, +// opcode: mop.r.0 ; op1:x5; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x17, x5, 0, 0x0, x1, 13*XLEN/8, x6) + +inst_14: +// rs1==x17, rd==x19, +// opcode: mop.r.0 ; op1:x17; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x19, x17, 0, 0x0, x1, 14*XLEN/8, x6) + +inst_15: +// rs1==x14, rd==x5, +// opcode: mop.r.0 ; op1:x14; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x5, x14, 0, 0x0, x1, 15*XLEN/8, x6) + +inst_16: +// rs1==x25, rd==x13, +// opcode: mop.r.0 ; op1:x25; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x13, x25, 0, 0x0, x1, 16*XLEN/8, x6) + +inst_17: +// rs1==x27, rd==x16, +// opcode: mop.r.0 ; op1:x27; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x16, x27, 0, 0x0, x1, 17*XLEN/8, x6) + +inst_18: +// rs1==x18, rd==x9, +// opcode: mop.r.0 ; op1:x18; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x9, x18, 0, 0x0, x1, 18*XLEN/8, x6) + +inst_19: +// rs1==x15, rd==x22, +// opcode: mop.r.0 ; op1:x15; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x22, x15, 0, 0x0, x1, 19*XLEN/8, x6) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_20: +// rs1==x19, rd==x26, +// opcode: mop.r.0 ; op1:x19; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x26, x19, 0, 0x0, x2, 0*XLEN/8, x3) + +inst_21: +// rs1==x20, rd==x24, +// opcode: mop.r.0 ; op1:x20; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x24, x20, 0, 0x0, x2, 1*XLEN/8, x3) + +inst_22: +// rs1==x6, rd==x1, +// opcode: mop.r.0 ; op1:x6; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x1, x6, 0, 0x0, x2, 2*XLEN/8, x3) + +inst_23: +// rs1==x8, rd==x18, +// opcode: mop.r.0 ; op1:x8; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x18, x8, 0, 0x0, x2, 3*XLEN/8, x3) + +inst_24: +// rs1==x12, rd==x20, +// opcode: mop.r.0 ; op1:x12; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x20, x12, 0, 0x0, x2, 4*XLEN/8, x3) + +inst_25: +// rs1==x1, rd==x6, +// opcode: mop.r.0 ; op1:x1; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x6, x1, 0, 0x0, x2, 5*XLEN/8, x3) + +inst_26: +// rs1==x11, rd==x15, +// opcode: mop.r.0 ; op1:x11; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x15, x11, 0, 0x0, x2, 6*XLEN/8, x3) + +inst_27: +// rs1==x9, rd==x7, +// opcode: mop.r.0 ; op1:x9; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x7, x9, 0, 0x0, x2, 7*XLEN/8, x3) + +inst_28: +// rs1==x31, rd==x25, +// opcode: mop.r.0 ; op1:x31; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x25, x31, 0, 0x0, x2, 8*XLEN/8, x3) + +inst_29: +// rs1==x22, rd==x30, +// opcode: mop.r.0 ; op1:x22; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x30, x22, 0, 0x0, x2, 9*XLEN/8, x3) + +inst_30: +// rs1==x21, rd==x10, +// opcode: mop.r.0 ; op1:x21; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x10, x21, 0, 0x0, x2, 10*XLEN/8, x3) + +inst_31: +// rs1==x7, rd==x14, +// opcode: mop.r.0 ; op1:x7; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.0, x14, x7, 0, 0x0, x2, 11*XLEN/8, x3) + +inst_32: +// imm_val == 1, +// opcode: mop.r.0 ; op1:x30; dest:x31; op1val:-0x2000000000001; immval:0x1 +TEST_R_OP( mop.r.0, x31, x30, 0, -0x2000000000001, x2, 12*XLEN/8, x3) + +inst_33: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.0 ; op1:x30; dest:x31; op1val:0x7fffffffffffffff; immval:0x9 +TEST_R_OP( mop.r.0, x31, x30, 0, 0x7fffffffffffffff, x2, 13*XLEN/8, x3) +#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 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 14*((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/Zimop/src/mop.r.1-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.1-01.S new file mode 100644 index 000000000..33b38e384 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.1-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.1 instruction of the RISC-V RV64Zimop extension for the mop.r.1 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.1) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x30, rd==x30, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.1 ; op1:x30; dest:x30; op1val:-0x10001; immval:-0x800 +TEST_R_OP( mop.r.1, x30, x30, 0, -0x10001, x3, 0*XLEN/8, x18) + +inst_1: +// rs1 != rd, rs1==x11, rd==x16, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.1 ; op1:x11; dest:x16; op1val:0x100000; immval:0x7ff +TEST_R_OP( mop.r.1, x16, x11, 0, 0x100000, x3, 1*XLEN/8, x18) + +inst_2: +// rs1==x29, rd==x1, imm_val == 0, +// opcode: mop.r.1 ; op1:x29; dest:x1; op1val:0x20; immval:0x0 +TEST_R_OP( mop.r.1, x1, x29, 0, 0x20, x3, 2*XLEN/8, x18) + +inst_3: +// rs1==x14, rd==x17, imm_val == 1, +// opcode: mop.r.1 ; op1:x14; dest:x17; op1val:0x2000000000; immval:0x1 +TEST_R_OP( mop.r.1, x17, x14, 0, 0x2000000000, x3, 3*XLEN/8, x18) + +inst_4: +// rs1==x24, rd==x29, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.1 ; op1:x24; dest:x29; op1val:-0x5555555555555556; immval:0x2 +TEST_R_OP( mop.r.1, x29, x24, 0, -0x5555555555555556, x3, 4*XLEN/8, x18) + +inst_5: +// rs1==x7, rd==x6, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.1 ; op1:x7; dest:x6; op1val:-0x8000000000000000; immval:0x555 +TEST_R_OP( mop.r.1, x6, x7, 0, -0x8000000000000000, x3, 5*XLEN/8, x18) + +inst_6: +// rs1==x28, rd==x25, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.1 ; op1:x28; dest:x25; op1val:0x7fffffffffffffff; immval:-0xa +TEST_R_OP( mop.r.1, x25, x28, 0, 0x7fffffffffffffff, x3, 6*XLEN/8, x18) + +inst_7: +// rs1==x26, rd==x20, rs1_val == 0, +// opcode: mop.r.1 ; op1:x26; dest:x20; op1val:0x0; immval:-0xa +TEST_R_OP( mop.r.1, x20, x26, 0, 0x0, x3, 7*XLEN/8, x18) + +inst_8: +// rs1==x9, rd==x10, rs1_val == 1, +// opcode: mop.r.1 ; op1:x9; dest:x10; op1val:0x1; immval:0x6 +TEST_R_OP( mop.r.1, x10, x9, 0, 0x1, x3, 8*XLEN/8, x18) + +inst_9: +// rs1==x0, rd==x31, rs1_val == imm_val, +// opcode: mop.r.1 ; op1:x0; dest:x31; op1val:0x0; immval:-0x11 +TEST_R_OP( mop.r.1, x31, x0, 0, 0x0, x3, 9*XLEN/8, x18) + +inst_10: +// rs1==x15, rd==x7, +// opcode: mop.r.1 ; op1:x15; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x7, x15, 0, 0x0, x3, 10*XLEN/8, x18) + +inst_11: +// rs1==x31, rd==x5, +// opcode: mop.r.1 ; op1:x31; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x5, x31, 0, 0x0, x3, 11*XLEN/8, x18) + +inst_12: +// rs1==x19, rd==x4, +// opcode: mop.r.1 ; op1:x19; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x4, x19, 0, 0x0, x3, 12*XLEN/8, x18) + +inst_13: +// rs1==x12, rd==x9, +// opcode: mop.r.1 ; op1:x12; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x9, x12, 0, 0x0, x3, 13*XLEN/8, x18) + +inst_14: +// rs1==x25, rd==x24, +// opcode: mop.r.1 ; op1:x25; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x24, x25, 0, 0x0, x3, 14*XLEN/8, x18) + +inst_15: +// rs1==x20, rd==x14, +// opcode: mop.r.1 ; op1:x20; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x14, x20, 0, 0x0, x3, 15*XLEN/8, x18) + +inst_16: +// rs1==x16, rd==x2, +// opcode: mop.r.1 ; op1:x16; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x2, x16, 0, 0x0, x3, 16*XLEN/8, x18) + +inst_17: +// rs1==x6, rd==x13, +// opcode: mop.r.1 ; op1:x6; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x13, x6, 0, 0x0, x3, 17*XLEN/8, x18) + +inst_18: +// rs1==x23, rd==x19, +// opcode: mop.r.1 ; op1:x23; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x19, x23, 0, 0x0, x3, 18*XLEN/8, x18) + +inst_19: +// rs1==x27, rd==x8, +// opcode: mop.r.1 ; op1:x27; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x8, x27, 0, 0x0, x3, 19*XLEN/8, x18) +RVTEST_SIGBASE(x6,signature_x6_0) + +inst_20: +// rs1==x3, rd==x15, +// opcode: mop.r.1 ; op1:x3; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x15, x3, 0, 0x0, x6, 0*XLEN/8, x7) + +inst_21: +// rs1==x18, rd==x27, +// opcode: mop.r.1 ; op1:x18; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x27, x18, 0, 0x0, x6, 1*XLEN/8, x7) + +inst_22: +// rs1==x4, rd==x23, +// opcode: mop.r.1 ; op1:x4; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x23, x4, 0, 0x0, x6, 2*XLEN/8, x7) + +inst_23: +// rs1==x8, rd==x12, +// opcode: mop.r.1 ; op1:x8; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x12, x8, 0, 0x0, x6, 3*XLEN/8, x7) + +inst_24: +// rs1==x21, rd==x3, +// opcode: mop.r.1 ; op1:x21; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x3, x21, 0, 0x0, x6, 4*XLEN/8, x7) + +inst_25: +// rs1==x22, rd==x28, +// opcode: mop.r.1 ; op1:x22; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x28, x22, 0, 0x0, x6, 5*XLEN/8, x7) + +inst_26: +// rs1==x5, rd==x0, +// opcode: mop.r.1 ; op1:x5; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x0, x5, 0, 0x0, x6, 6*XLEN/8, x7) + +inst_27: +// rs1==x1, rd==x11, +// opcode: mop.r.1 ; op1:x1; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x11, x1, 0, 0x0, x6, 7*XLEN/8, x7) + +inst_28: +// rs1==x13, rd==x18, +// opcode: mop.r.1 ; op1:x13; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x18, x13, 0, 0x0, x6, 8*XLEN/8, x7) + +inst_29: +// rs1==x17, rd==x21, +// opcode: mop.r.1 ; op1:x17; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x21, x17, 0, 0x0, x6, 9*XLEN/8, x7) + +inst_30: +// rs1==x10, rd==x26, +// opcode: mop.r.1 ; op1:x10; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x26, x10, 0, 0x0, x6, 10*XLEN/8, x7) + +inst_31: +// rs1==x2, rd==x22, +// opcode: mop.r.1 ; op1:x2; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.1, x22, x2, 0, 0x0, x6, 11*XLEN/8, x7) + +inst_32: +// rs1_val == imm_val, +// opcode: mop.r.1 ; op1:x30; dest:x31; op1val:-0x11; immval:-0x11 +TEST_R_OP( mop.r.1, x31, x30, 0, -0x11, x6, 12*XLEN/8, x7) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_0: + .fill 13*((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/Zimop/src/mop.r.10-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.10-01.S new file mode 100644 index 000000000..2b39c6d65 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.10-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.10 instruction of the RISC-V RV64Zimop extension for the mop.r.10 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.10) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x29, rd==x29, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.10 ; op1:x29; dest:x29; op1val:0x100000000000000; immval:-0x800 +TEST_R_OP( mop.r.10, x29, x29, 0, 0x100000000000000, x7, 0*XLEN/8, x13) + +inst_1: +// rs1 != rd, rs1==x24, rd==x2, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.10 ; op1:x24; dest:x2; op1val:-0x100000001; immval:0x7ff +TEST_R_OP( mop.r.10, x2, x24, 0, -0x100000001, x7, 1*XLEN/8, x13) + +inst_2: +// rs1==x17, rd==x15, imm_val == 0, rs1_val == (2**(xlen-1)-1) +// opcode: mop.r.10 ; op1:x17; dest:x15; op1val:0x7fffffffffffffff; immval:0x0 +TEST_R_OP( mop.r.10, x15, x17, 0, 0x7fffffffffffffff, x7, 2*XLEN/8, x13) + +inst_3: +// rs1==x1, rd==x24, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.10 ; op1:x1; dest:x24; op1val:0x100; immval:0x1 +TEST_R_OP( mop.r.10, x24, x1, 0, 0x100, x7, 3*XLEN/8, x13) + +inst_4: +// rs1==x9, rd==x28, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.10 ; op1:x9; dest:x28; op1val:-0x2000000001; immval:-0x556 +TEST_R_OP( mop.r.10, x28, x9, 0, -0x2000000001, x7, 4*XLEN/8, x13) + +inst_5: +// rs1==x22, rd==x4, rs1_val == 0, +// opcode: mop.r.10 ; op1:x22; dest:x4; op1val:0x0; immval:0x332 +TEST_R_OP( mop.r.10, x4, x22, 0, 0x0, x7, 5*XLEN/8, x13) + +inst_6: +// rs1==x15, rd==x5, rs1_val == 1, +// opcode: mop.r.10 ; op1:x15; dest:x5; op1val:0x1; immval:0x4 +TEST_R_OP( mop.r.10, x5, x15, 0, 0x1, x7, 6*XLEN/8, x13) + +inst_7: +// rs1==x2, rd==x0, rs1_val == imm_val, +// opcode: mop.r.10 ; op1:x2; dest:x0; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.10, x0, x2, 0, 0x0, x7, 7*XLEN/8, x13) + +inst_8: +// rs1==x4, rd==x26, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.10 ; op1:x4; dest:x26; op1val:-0x8000000000000000; immval:-0x7 +TEST_R_OP( mop.r.10, x26, x4, 0, -0x8000000000000000, x7, 8*XLEN/8, x13) + +inst_9: +// rs1==x21, rd==x25, +// opcode: mop.r.10 ; op1:x21; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x25, x21, 0, 0x0, x7, 9*XLEN/8, x13) + +inst_10: +// rs1==x27, rd==x23, +// opcode: mop.r.10 ; op1:x27; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x23, x27, 0, 0x0, x7, 10*XLEN/8, x13) + +inst_11: +// rs1==x6, rd==x11, +// opcode: mop.r.10 ; op1:x6; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x11, x6, 0, 0x0, x7, 11*XLEN/8, x13) + +inst_12: +// rs1==x26, rd==x20, +// opcode: mop.r.10 ; op1:x26; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x20, x26, 0, 0x0, x7, 12*XLEN/8, x13) + +inst_13: +// rs1==x28, rd==x1, +// opcode: mop.r.10 ; op1:x28; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x1, x28, 0, 0x0, x7, 13*XLEN/8, x13) + +inst_14: +// rs1==x19, rd==x8, +// opcode: mop.r.10 ; op1:x19; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x8, x19, 0, 0x0, x7, 14*XLEN/8, x13) + +inst_15: +// rs1==x10, rd==x3, +// opcode: mop.r.10 ; op1:x10; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x3, x10, 0, 0x0, x7, 15*XLEN/8, x13) + +inst_16: +// rs1==x20, rd==x30, +// opcode: mop.r.10 ; op1:x20; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x30, x20, 0, 0x0, x7, 16*XLEN/8, x13) + +inst_17: +// rs1==x12, rd==x27, +// opcode: mop.r.10 ; op1:x12; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x27, x12, 0, 0x0, x7, 17*XLEN/8, x13) + +inst_18: +// rs1==x25, rd==x21, +// opcode: mop.r.10 ; op1:x25; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x21, x25, 0, 0x0, x7, 18*XLEN/8, x13) + +inst_19: +// rs1==x14, rd==x6, +// opcode: mop.r.10 ; op1:x14; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x6, x14, 0, 0x0, x7, 19*XLEN/8, x13) + +inst_20: +// rs1==x16, rd==x12, +// opcode: mop.r.10 ; op1:x16; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x12, x16, 0, 0x0, x7, 20*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_21: +// rs1==x7, rd==x13, +// opcode: mop.r.10 ; op1:x7; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x13, x7, 0, 0x0, x1, 0*XLEN/8, x2) + +inst_22: +// rs1==x13, rd==x19, +// opcode: mop.r.10 ; op1:x13; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x19, x13, 0, 0x0, x1, 1*XLEN/8, x2) + +inst_23: +// rs1==x30, rd==x31, +// opcode: mop.r.10 ; op1:x30; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x31, x30, 0, 0x0, x1, 2*XLEN/8, x2) + +inst_24: +// rs1==x31, rd==x17, +// opcode: mop.r.10 ; op1:x31; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x17, x31, 0, 0x0, x1, 3*XLEN/8, x2) + +inst_25: +// rs1==x23, rd==x14, +// opcode: mop.r.10 ; op1:x23; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x14, x23, 0, 0x0, x1, 4*XLEN/8, x2) + +inst_26: +// rs1==x11, rd==x9, +// opcode: mop.r.10 ; op1:x11; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x9, x11, 0, 0x0, x1, 5*XLEN/8, x2) + +inst_27: +// rs1==x5, rd==x18, +// opcode: mop.r.10 ; op1:x5; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x18, x5, 0, 0x0, x1, 6*XLEN/8, x2) + +inst_28: +// rs1==x0, rd==x16, +// opcode: mop.r.10 ; op1:x0; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x16, x0, 0, 0x0, x1, 7*XLEN/8, x2) + +inst_29: +// rs1==x18, rd==x7, +// opcode: mop.r.10 ; op1:x18; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x7, x18, 0, 0x0, x1, 8*XLEN/8, x2) + +inst_30: +// rs1==x8, rd==x10, +// opcode: mop.r.10 ; op1:x8; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x10, x8, 0, 0x0, x1, 9*XLEN/8, x2) + +inst_31: +// rs1==x3, rd==x22, +// opcode: mop.r.10 ; op1:x3; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.10, x22, x3, 0, 0x0, x1, 10*XLEN/8, x2) + +inst_32: +// rs1_val == imm_val, +// opcode: mop.r.10 ; op1:x30; dest:x31; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.10, x31, x30, 0, 0x0, x1, 11*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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 12*((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/Zimop/src/mop.r.11-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.11-01.S new file mode 100644 index 000000000..cb7aa4ec3 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.11-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.11 instruction of the RISC-V RV64Zimop extension for the mop.r.11 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.11) + +RVTEST_SIGBASE(x11,signature_x11_1) + +inst_0: +// rs1 == rd, rs1==x23, rd==x23, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.11 ; op1:x23; dest:x23; op1val:0x80000000000000; immval:-0x800 +TEST_R_OP( mop.r.11, x23, x23, 0, 0x80000000000000, x11, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x28, rd==x14, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.11 ; op1:x28; dest:x14; op1val:0x400000000000; immval:0x7ff +TEST_R_OP( mop.r.11, x14, x28, 0, 0x400000000000, x11, 1*XLEN/8, x9) + +inst_2: +// rs1==x22, rd==x0, imm_val == 0, rs1_val == 0, rs1_val == imm_val +// opcode: mop.r.11 ; op1:x22; dest:x0; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.11, x0, x22, 0, 0x0, x11, 2*XLEN/8, x9) + +inst_3: +// rs1==x30, rd==x6, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.11 ; op1:x30; dest:x6; op1val:-0x800000000001; immval:0x1 +TEST_R_OP( mop.r.11, x6, x30, 0, -0x800000000001, x11, 3*XLEN/8, x9) + +inst_4: +// rs1==x7, rd==x27, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.11 ; op1:x7; dest:x27; op1val:0x7fffffffffffffff; immval:-0x11 +TEST_R_OP( mop.r.11, x27, x7, 0, 0x7fffffffffffffff, x11, 4*XLEN/8, x9) + +inst_5: +// rs1==x1, rd==x29, rs1_val == 1, +// opcode: mop.r.11 ; op1:x1; dest:x29; op1val:0x1; immval:0x0 +TEST_R_OP( mop.r.11, x29, x1, 0, 0x1, x11, 5*XLEN/8, x9) + +inst_6: +// rs1==x3, rd==x7, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.11 ; op1:x3; dest:x7; op1val:-0x80000000001; immval:-0x101 +TEST_R_OP( mop.r.11, x7, x3, 0, -0x80000000001, x11, 6*XLEN/8, x9) + +inst_7: +// rs1==x31, rd==x22, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.11 ; op1:x31; dest:x22; op1val:-0x8000000000000000; immval:0x7 +TEST_R_OP( mop.r.11, x22, x31, 0, -0x8000000000000000, x11, 7*XLEN/8, x9) + +inst_8: +// rs1==x0, rd==x21, +// opcode: mop.r.11 ; op1:x0; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x21, x0, 0, 0x0, x11, 8*XLEN/8, x9) + +inst_9: +// rs1==x2, rd==x18, +// opcode: mop.r.11 ; op1:x2; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x18, x2, 0, 0x0, x11, 9*XLEN/8, x9) + +inst_10: +// rs1==x10, rd==x13, +// opcode: mop.r.11 ; op1:x10; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x13, x10, 0, 0x0, x11, 10*XLEN/8, x9) + +inst_11: +// rs1==x15, rd==x26, +// opcode: mop.r.11 ; op1:x15; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x26, x15, 0, 0x0, x11, 11*XLEN/8, x9) + +inst_12: +// rs1==x26, rd==x24, +// opcode: mop.r.11 ; op1:x26; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x24, x26, 0, 0x0, x11, 12*XLEN/8, x9) + +inst_13: +// rs1==x20, rd==x4, +// opcode: mop.r.11 ; op1:x20; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x4, x20, 0, 0x0, x11, 13*XLEN/8, x9) + +inst_14: +// rs1==x16, rd==x12, +// opcode: mop.r.11 ; op1:x16; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x12, x16, 0, 0x0, x11, 14*XLEN/8, x9) + +inst_15: +// rs1==x24, rd==x5, +// opcode: mop.r.11 ; op1:x24; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x5, x24, 0, 0x0, x11, 15*XLEN/8, x9) + +inst_16: +// rs1==x8, rd==x10, +// opcode: mop.r.11 ; op1:x8; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x10, x8, 0, 0x0, x11, 16*XLEN/8, x9) + +inst_17: +// rs1==x12, rd==x30, +// opcode: mop.r.11 ; op1:x12; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x30, x12, 0, 0x0, x11, 17*XLEN/8, x7) + +inst_18: +// rs1==x13, rd==x3, +// opcode: mop.r.11 ; op1:x13; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x3, x13, 0, 0x0, x11, 18*XLEN/8, x7) + +inst_19: +// rs1==x9, rd==x17, +// opcode: mop.r.11 ; op1:x9; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x17, x9, 0, 0x0, x11, 19*XLEN/8, x7) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_20: +// rs1==x14, rd==x15, +// opcode: mop.r.11 ; op1:x14; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x15, x14, 0, 0x0, x3, 0*XLEN/8, x7) + +inst_21: +// rs1==x5, rd==x9, +// opcode: mop.r.11 ; op1:x5; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x9, x5, 0, 0x0, x3, 1*XLEN/8, x7) + +inst_22: +// rs1==x17, rd==x31, +// opcode: mop.r.11 ; op1:x17; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x31, x17, 0, 0x0, x3, 2*XLEN/8, x7) + +inst_23: +// rs1==x19, rd==x1, +// opcode: mop.r.11 ; op1:x19; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x1, x19, 0, 0x0, x3, 3*XLEN/8, x7) + +inst_24: +// rs1==x4, rd==x19, +// opcode: mop.r.11 ; op1:x4; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x19, x4, 0, 0x0, x3, 4*XLEN/8, x7) + +inst_25: +// rs1==x6, rd==x25, +// opcode: mop.r.11 ; op1:x6; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x25, x6, 0, 0x0, x3, 5*XLEN/8, x7) + +inst_26: +// rs1==x27, rd==x11, +// opcode: mop.r.11 ; op1:x27; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x11, x27, 0, 0x0, x3, 6*XLEN/8, x7) + +inst_27: +// rs1==x25, rd==x28, +// opcode: mop.r.11 ; op1:x25; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x28, x25, 0, 0x0, x3, 7*XLEN/8, x7) + +inst_28: +// rs1==x18, rd==x20, +// opcode: mop.r.11 ; op1:x18; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x20, x18, 0, 0x0, x3, 8*XLEN/8, x7) + +inst_29: +// rs1==x21, rd==x16, +// opcode: mop.r.11 ; op1:x21; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x16, x21, 0, 0x0, x3, 9*XLEN/8, x7) + +inst_30: +// rs1==x11, rd==x8, +// opcode: mop.r.11 ; op1:x11; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x8, x11, 0, 0x0, x3, 10*XLEN/8, x7) + +inst_31: +// rs1==x29, rd==x2, +// opcode: mop.r.11 ; op1:x29; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.11, x2, x29, 0, 0x0, x3, 11*XLEN/8, x7) + +inst_32: +// imm_val == 0, rs1_val == 0, rs1_val == imm_val +// opcode: mop.r.11 ; op1:x30; dest:x31; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.11, x31, x30, 0, 0x0, x3, 12*XLEN/8, x7) +#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_x11_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x11_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 13*((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/Zimop/src/mop.r.12-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.12-01.S new file mode 100644 index 000000000..0fd5e5e9c --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.12-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.12 instruction of the RISC-V RV64Zimop extension for the mop.r.12 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.12) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x11, rd==x11, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.12 ; op1:x11; dest:x11; op1val:0x1000000000; immval:-0x800 +TEST_R_OP( mop.r.12, x11, x11, 0, 0x1000000000, x2, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x28, rd==x3, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.12 ; op1:x28; dest:x3; op1val:-0x200000001; immval:0x7ff +TEST_R_OP( mop.r.12, x3, x28, 0, -0x200000001, x2, 1*XLEN/8, x9) + +inst_2: +// rs1==x8, rd==x31, imm_val == 0, +// opcode: mop.r.12 ; op1:x8; dest:x31; op1val:0x40; immval:0x0 +TEST_R_OP( mop.r.12, x31, x8, 0, 0x40, x2, 2*XLEN/8, x9) + +inst_3: +// rs1==x4, rd==x24, imm_val == 1, +// opcode: mop.r.12 ; op1:x4; dest:x24; op1val:-0x1; immval:0x1 +TEST_R_OP( mop.r.12, x24, x4, 0, -0x1, x2, 3*XLEN/8, x9) + +inst_4: +// rs1==x24, rd==x13, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.12 ; op1:x24; dest:x13; op1val:-0x201; immval:-0x11 +TEST_R_OP( mop.r.12, x13, x24, 0, -0x201, x2, 4*XLEN/8, x9) + +inst_5: +// rs1==x23, rd==x22, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.12 ; op1:x23; dest:x22; op1val:-0x8000000000000000; immval:0x4 +TEST_R_OP( mop.r.12, x22, x23, 0, -0x8000000000000000, x2, 5*XLEN/8, x9) + +inst_6: +// rs1==x16, rd==x29, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.12 ; op1:x16; dest:x29; op1val:0x7fffffffffffffff; immval:0x666 +TEST_R_OP( mop.r.12, x29, x16, 0, 0x7fffffffffffffff, x2, 6*XLEN/8, x9) + +inst_7: +// rs1==x5, rd==x26, rs1_val == 0, +// opcode: mop.r.12 ; op1:x5; dest:x26; op1val:0x0; immval:0x666 +TEST_R_OP( mop.r.12, x26, x5, 0, 0x0, x2, 7*XLEN/8, x9) + +inst_8: +// rs1==x6, rd==x21, rs1_val == 1, +// opcode: mop.r.12 ; op1:x6; dest:x21; op1val:0x1; immval:0x6 +TEST_R_OP( mop.r.12, x21, x6, 0, 0x1, x2, 8*XLEN/8, x9) + +inst_9: +// rs1==x18, rd==x28, rs1_val == imm_val, +// opcode: mop.r.12 ; op1:x18; dest:x28; op1val:-0x5; immval:-0x5 +TEST_R_OP( mop.r.12, x28, x18, 0, -0x5, x2, 9*XLEN/8, x9) + +inst_10: +// rs1==x10, rd==x8, +// opcode: mop.r.12 ; op1:x10; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x8, x10, 0, 0x0, x2, 10*XLEN/8, x9) + +inst_11: +// rs1==x15, rd==x5, +// opcode: mop.r.12 ; op1:x15; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x5, x15, 0, 0x0, x2, 11*XLEN/8, x9) + +inst_12: +// rs1==x20, rd==x23, +// opcode: mop.r.12 ; op1:x20; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x23, x20, 0, 0x0, x2, 12*XLEN/8, x9) + +inst_13: +// rs1==x25, rd==x0, +// opcode: mop.r.12 ; op1:x25; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x0, x25, 0, 0x0, x2, 13*XLEN/8, x9) + +inst_14: +// rs1==x7, rd==x1, +// opcode: mop.r.12 ; op1:x7; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x1, x7, 0, 0x0, x2, 14*XLEN/8, x9) + +inst_15: +// rs1==x17, rd==x30, +// opcode: mop.r.12 ; op1:x17; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x30, x17, 0, 0x0, x2, 15*XLEN/8, x9) + +inst_16: +// rs1==x21, rd==x14, +// opcode: mop.r.12 ; op1:x21; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x14, x21, 0, 0x0, x2, 16*XLEN/8, x9) + +inst_17: +// rs1==x9, rd==x15, +// opcode: mop.r.12 ; op1:x9; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x15, x9, 0, 0x0, x2, 17*XLEN/8, x8) +RVTEST_SIGBASE(x5,signature_x5_0) + +inst_18: +// rs1==x26, rd==x10, +// opcode: mop.r.12 ; op1:x26; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x10, x26, 0, 0x0, x5, 0*XLEN/8, x8) + +inst_19: +// rs1==x13, rd==x20, +// opcode: mop.r.12 ; op1:x13; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x20, x13, 0, 0x0, x5, 1*XLEN/8, x8) + +inst_20: +// rs1==x14, rd==x7, +// opcode: mop.r.12 ; op1:x14; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x7, x14, 0, 0x0, x5, 2*XLEN/8, x8) + +inst_21: +// rs1==x30, rd==x16, +// opcode: mop.r.12 ; op1:x30; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x16, x30, 0, 0x0, x5, 3*XLEN/8, x8) + +inst_22: +// rs1==x1, rd==x25, +// opcode: mop.r.12 ; op1:x1; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x25, x1, 0, 0x0, x5, 4*XLEN/8, x8) + +inst_23: +// rs1==x19, rd==x18, +// opcode: mop.r.12 ; op1:x19; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x18, x19, 0, 0x0, x5, 5*XLEN/8, x8) + +inst_24: +// rs1==x27, rd==x4, +// opcode: mop.r.12 ; op1:x27; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x4, x27, 0, 0x0, x5, 6*XLEN/8, x8) + +inst_25: +// rs1==x22, rd==x19, +// opcode: mop.r.12 ; op1:x22; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x19, x22, 0, 0x0, x5, 7*XLEN/8, x8) + +inst_26: +// rs1==x12, rd==x9, +// opcode: mop.r.12 ; op1:x12; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x9, x12, 0, 0x0, x5, 8*XLEN/8, x8) + +inst_27: +// rs1==x31, rd==x17, +// opcode: mop.r.12 ; op1:x31; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x17, x31, 0, 0x0, x5, 9*XLEN/8, x8) + +inst_28: +// rs1==x3, rd==x2, +// opcode: mop.r.12 ; op1:x3; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x2, x3, 0, 0x0, x5, 10*XLEN/8, x8) + +inst_29: +// rs1==x0, rd==x27, +// opcode: mop.r.12 ; op1:x0; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x27, x0, 0, 0x0, x5, 11*XLEN/8, x8) + +inst_30: +// rs1==x29, rd==x12, +// opcode: mop.r.12 ; op1:x29; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x12, x29, 0, 0x0, x5, 12*XLEN/8, x8) + +inst_31: +// rs1==x2, rd==x6, +// opcode: mop.r.12 ; op1:x2; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.12, x6, x2, 0, 0x0, x5, 13*XLEN/8, x8) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x5_0: + .fill 14*((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/Zimop/src/mop.r.13-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.13-01.S new file mode 100644 index 000000000..5c2466362 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.13-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.13 instruction of the RISC-V RV64Zimop extension for the mop.r.13 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.13) + +RVTEST_SIGBASE(x8,signature_x8_1) + +inst_0: +// rs1 == rd, rs1==x20, rd==x20, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.13 ; op1:x20; dest:x20; op1val:-0x10000001; immval:-0x800 +TEST_R_OP( mop.r.13, x20, x20, 0, -0x10000001, x8, 0*XLEN/8, x21) + +inst_1: +// rs1 != rd, rs1==x0, rd==x16, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.13 ; op1:x0; dest:x16; op1val:0x0; immval:0x7ff +TEST_R_OP( mop.r.13, x16, x0, 0, 0x0, x8, 1*XLEN/8, x21) + +inst_2: +// rs1==x18, rd==x23, imm_val == 0, +// opcode: mop.r.13 ; op1:x18; dest:x23; op1val:-0x400000001; immval:0x0 +TEST_R_OP( mop.r.13, x23, x18, 0, -0x400000001, x8, 2*XLEN/8, x21) + +inst_3: +// rs1==x7, rd==x28, imm_val == 1, +// opcode: mop.r.13 ; op1:x7; dest:x28; op1val:0x400000000000000; immval:0x1 +TEST_R_OP( mop.r.13, x28, x7, 0, 0x400000000000000, x8, 3*XLEN/8, x21) + +inst_4: +// rs1==x9, rd==x27, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.13 ; op1:x9; dest:x27; op1val:-0x10000000000001; immval:0x556 +TEST_R_OP( mop.r.13, x27, x9, 0, -0x10000000000001, x8, 4*XLEN/8, x21) + +inst_5: +// rs1==x2, rd==x18, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.13 ; op1:x2; dest:x18; op1val:-0x8000000000000000; immval:-0x400 +TEST_R_OP( mop.r.13, x18, x2, 0, -0x8000000000000000, x8, 5*XLEN/8, x21) + +inst_6: +// rs1==x10, rd==x2, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.13 ; op1:x10; dest:x2; op1val:0x7fffffffffffffff; immval:0x400 +TEST_R_OP( mop.r.13, x2, x10, 0, 0x7fffffffffffffff, x8, 6*XLEN/8, x21) + +inst_7: +// rs1==x1, rd==x9, rs1_val == 0, +// opcode: mop.r.13 ; op1:x1; dest:x9; op1val:0x0; immval:-0x41 +TEST_R_OP( mop.r.13, x9, x1, 0, 0x0, x8, 7*XLEN/8, x21) + +inst_8: +// rs1==x26, rd==x24, rs1_val == 1, +// opcode: mop.r.13 ; op1:x26; dest:x24; op1val:0x1; immval:0x666 +TEST_R_OP( mop.r.13, x24, x26, 0, 0x1, x8, 8*XLEN/8, x21) + +inst_9: +// rs1==x4, rd==x14, rs1_val == imm_val, +// opcode: mop.r.13 ; op1:x4; dest:x14; op1val:0x2; immval:0x2 +TEST_R_OP( mop.r.13, x14, x4, 0, 0x2, x8, 9*XLEN/8, x21) + +inst_10: +// rs1==x11, rd==x1, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.13 ; op1:x11; dest:x1; op1val:0x200000000000000; immval:-0x7 +TEST_R_OP( mop.r.13, x1, x11, 0, 0x200000000000000, x8, 10*XLEN/8, x21) + +inst_11: +// rs1==x13, rd==x29, +// opcode: mop.r.13 ; op1:x13; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x29, x13, 0, 0x0, x8, 11*XLEN/8, x21) + +inst_12: +// rs1==x3, rd==x10, +// opcode: mop.r.13 ; op1:x3; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x10, x3, 0, 0x0, x8, 12*XLEN/8, x21) + +inst_13: +// rs1==x6, rd==x15, +// opcode: mop.r.13 ; op1:x6; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x15, x6, 0, 0x0, x8, 13*XLEN/8, x21) + +inst_14: +// rs1==x12, rd==x0, +// opcode: mop.r.13 ; op1:x12; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x0, x12, 0, 0x0, x8, 14*XLEN/8, x21) + +inst_15: +// rs1==x15, rd==x25, +// opcode: mop.r.13 ; op1:x15; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x25, x15, 0, 0x0, x8, 15*XLEN/8, x21) + +inst_16: +// rs1==x16, rd==x19, +// opcode: mop.r.13 ; op1:x16; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x19, x16, 0, 0x0, x8, 16*XLEN/8, x21) + +inst_17: +// rs1==x29, rd==x22, +// opcode: mop.r.13 ; op1:x29; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x22, x29, 0, 0x0, x8, 17*XLEN/8, x21) + +inst_18: +// rs1==x17, rd==x5, +// opcode: mop.r.13 ; op1:x17; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x5, x17, 0, 0x0, x8, 18*XLEN/8, x21) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_19: +// rs1==x28, rd==x26, +// opcode: mop.r.13 ; op1:x28; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x26, x28, 0, 0x0, x1, 0*XLEN/8, x2) + +inst_20: +// rs1==x8, rd==x13, +// opcode: mop.r.13 ; op1:x8; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x13, x8, 0, 0x0, x1, 1*XLEN/8, x2) + +inst_21: +// rs1==x21, rd==x11, +// opcode: mop.r.13 ; op1:x21; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x11, x21, 0, 0x0, x1, 2*XLEN/8, x2) + +inst_22: +// rs1==x14, rd==x31, +// opcode: mop.r.13 ; op1:x14; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x31, x14, 0, 0x0, x1, 3*XLEN/8, x2) + +inst_23: +// rs1==x24, rd==x30, +// opcode: mop.r.13 ; op1:x24; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x30, x24, 0, 0x0, x1, 4*XLEN/8, x2) + +inst_24: +// rs1==x27, rd==x6, +// opcode: mop.r.13 ; op1:x27; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x6, x27, 0, 0x0, x1, 5*XLEN/8, x2) + +inst_25: +// rs1==x31, rd==x3, +// opcode: mop.r.13 ; op1:x31; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x3, x31, 0, 0x0, x1, 6*XLEN/8, x2) + +inst_26: +// rs1==x25, rd==x7, +// opcode: mop.r.13 ; op1:x25; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x7, x25, 0, 0x0, x1, 7*XLEN/8, x2) + +inst_27: +// rs1==x30, rd==x4, +// opcode: mop.r.13 ; op1:x30; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x4, x30, 0, 0x0, x1, 8*XLEN/8, x2) + +inst_28: +// rs1==x5, rd==x21, +// opcode: mop.r.13 ; op1:x5; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x21, x5, 0, 0x0, x1, 9*XLEN/8, x2) + +inst_29: +// rs1==x22, rd==x12, +// opcode: mop.r.13 ; op1:x22; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x12, x22, 0, 0x0, x1, 10*XLEN/8, x2) + +inst_30: +// rs1==x23, rd==x17, +// opcode: mop.r.13 ; op1:x23; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x17, x23, 0, 0x0, x1, 11*XLEN/8, x2) + +inst_31: +// rs1==x19, rd==x8, +// opcode: mop.r.13 ; op1:x19; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.13, x8, x19, 0, 0x0, x1, 12*XLEN/8, x2) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.13 ; op1:x30; dest:x31; op1val:0x20; immval:0x7ff +TEST_R_OP( mop.r.13, x31, x30, 0, 0x20, x1, 13*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_x8_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x8_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 14*((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/Zimop/src/mop.r.14-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.14-01.S new file mode 100644 index 000000000..b8b1c63ff --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.14-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.14 instruction of the RISC-V RV64Zimop extension for the mop.r.14 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.14) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x8, rd==x8, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.14 ; op1:x8; dest:x8; op1val:0x8000000000; immval:-0x800 +TEST_R_OP( mop.r.14, x8, x8, 0, 0x8000000000, x7, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x5, rd==x0, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.14 ; op1:x5; dest:x0; op1val:0x200; immval:0x7ff +TEST_R_OP( mop.r.14, x0, x5, 0, 0x200, x7, 1*XLEN/8, x9) + +inst_2: +// rs1==x12, rd==x19, imm_val == 0, +// opcode: mop.r.14 ; op1:x12; dest:x19; op1val:0x4000; immval:0x0 +TEST_R_OP( mop.r.14, x19, x12, 0, 0x4000, x7, 2*XLEN/8, x9) + +inst_3: +// rs1==x21, rd==x3, imm_val == 1, +// opcode: mop.r.14 ; op1:x21; dest:x3; op1val:0x10000000000; immval:0x1 +TEST_R_OP( mop.r.14, x3, x21, 0, 0x10000000000, x7, 3*XLEN/8, x9) + +inst_4: +// rs1==x25, rd==x5, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.14 ; op1:x25; dest:x5; op1val:-0x2000001; immval:-0x2d +TEST_R_OP( mop.r.14, x5, x25, 0, -0x2000001, x7, 4*XLEN/8, x9) + +inst_5: +// rs1==x10, rd==x26, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.14 ; op1:x10; dest:x26; op1val:-0x20000001; immval:0x4 +TEST_R_OP( mop.r.14, x26, x10, 0, -0x20000001, x7, 5*XLEN/8, x9) + +inst_6: +// rs1==x23, rd==x16, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.14 ; op1:x23; dest:x16; op1val:-0x8000000000000000; immval:0x6 +TEST_R_OP( mop.r.14, x16, x23, 0, -0x8000000000000000, x7, 6*XLEN/8, x9) + +inst_7: +// rs1==x20, rd==x21, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.14 ; op1:x20; dest:x21; op1val:0x7fffffffffffffff; immval:0x200 +TEST_R_OP( mop.r.14, x21, x20, 0, 0x7fffffffffffffff, x7, 7*XLEN/8, x9) + +inst_8: +// rs1==x14, rd==x1, rs1_val == 0, +// opcode: mop.r.14 ; op1:x14; dest:x1; op1val:0x0; immval:-0x2 +TEST_R_OP( mop.r.14, x1, x14, 0, 0x0, x7, 8*XLEN/8, x9) + +inst_9: +// rs1==x18, rd==x12, rs1_val == 1, +// opcode: mop.r.14 ; op1:x18; dest:x12; op1val:0x1; immval:0x400 +TEST_R_OP( mop.r.14, x12, x18, 0, 0x1, x7, 9*XLEN/8, x9) + +inst_10: +// rs1==x15, rd==x2, rs1_val == imm_val, +// opcode: mop.r.14 ; op1:x15; dest:x2; op1val:0x2; immval:0x2 +TEST_R_OP( mop.r.14, x2, x15, 0, 0x2, x7, 10*XLEN/8, x9) + +inst_11: +// rs1==x22, rd==x31, +// opcode: mop.r.14 ; op1:x22; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x31, x22, 0, 0x0, x7, 11*XLEN/8, x9) + +inst_12: +// rs1==x2, rd==x20, +// opcode: mop.r.14 ; op1:x2; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x20, x2, 0, 0x0, x7, 12*XLEN/8, x9) + +inst_13: +// rs1==x28, rd==x13, +// opcode: mop.r.14 ; op1:x28; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x13, x28, 0, 0x0, x7, 13*XLEN/8, x9) + +inst_14: +// rs1==x3, rd==x25, +// opcode: mop.r.14 ; op1:x3; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x25, x3, 0, 0x0, x7, 14*XLEN/8, x9) + +inst_15: +// rs1==x13, rd==x14, +// opcode: mop.r.14 ; op1:x13; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x14, x13, 0, 0x0, x7, 15*XLEN/8, x9) + +inst_16: +// rs1==x4, rd==x15, +// opcode: mop.r.14 ; op1:x4; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x15, x4, 0, 0x0, x7, 16*XLEN/8, x9) + +inst_17: +// rs1==x27, rd==x11, +// opcode: mop.r.14 ; op1:x27; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x11, x27, 0, 0x0, x7, 17*XLEN/8, x9) + +inst_18: +// rs1==x6, rd==x10, +// opcode: mop.r.14 ; op1:x6; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x10, x6, 0, 0x0, x7, 18*XLEN/8, x9) + +inst_19: +// rs1==x17, rd==x6, +// opcode: mop.r.14 ; op1:x17; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x6, x17, 0, 0x0, x7, 19*XLEN/8, x9) + +inst_20: +// rs1==x31, rd==x17, +// opcode: mop.r.14 ; op1:x31; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x17, x31, 0, 0x0, x7, 20*XLEN/8, x3) + +inst_21: +// rs1==x9, rd==x30, +// opcode: mop.r.14 ; op1:x9; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x30, x9, 0, 0x0, x7, 21*XLEN/8, x3) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_22: +// rs1==x11, rd==x23, +// opcode: mop.r.14 ; op1:x11; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x23, x11, 0, 0x0, x2, 0*XLEN/8, x3) + +inst_23: +// rs1==x1, rd==x7, +// opcode: mop.r.14 ; op1:x1; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x7, x1, 0, 0x0, x2, 1*XLEN/8, x3) + +inst_24: +// rs1==x16, rd==x24, +// opcode: mop.r.14 ; op1:x16; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x24, x16, 0, 0x0, x2, 2*XLEN/8, x3) + +inst_25: +// rs1==x29, rd==x18, +// opcode: mop.r.14 ; op1:x29; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x18, x29, 0, 0x0, x2, 3*XLEN/8, x3) + +inst_26: +// rs1==x30, rd==x9, +// opcode: mop.r.14 ; op1:x30; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x9, x30, 0, 0x0, x2, 4*XLEN/8, x3) + +inst_27: +// rs1==x19, rd==x29, +// opcode: mop.r.14 ; op1:x19; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x29, x19, 0, 0x0, x2, 5*XLEN/8, x3) + +inst_28: +// rs1==x24, rd==x27, +// opcode: mop.r.14 ; op1:x24; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x27, x24, 0, 0x0, x2, 6*XLEN/8, x3) + +inst_29: +// rs1==x7, rd==x4, +// opcode: mop.r.14 ; op1:x7; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x4, x7, 0, 0x0, x2, 7*XLEN/8, x3) + +inst_30: +// rs1==x0, rd==x22, +// opcode: mop.r.14 ; op1:x0; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x22, x0, 0, 0x0, x2, 8*XLEN/8, x3) + +inst_31: +// rs1==x26, rd==x28, +// opcode: mop.r.14 ; op1:x26; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.14, x28, x26, 0, 0x0, x2, 9*XLEN/8, x3) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.14 ; op1:x30; dest:x31; op1val:0x200; immval:0x7ff +TEST_R_OP( mop.r.14, x31, x30, 0, 0x200, x2, 10*XLEN/8, x3) +#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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 11*((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/Zimop/src/mop.r.15-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.15-01.S new file mode 100644 index 000000000..73598dda4 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.15-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.15 instruction of the RISC-V RV64Zimop extension for the mop.r.15 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.15) + +RVTEST_SIGBASE(x19,signature_x19_1) + +inst_0: +// rs1 == rd, rs1==x17, rd==x17, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.15 ; op1:x17; dest:x17; op1val:0x6666666666666667; immval:-0x800 +TEST_R_OP( mop.r.15, x17, x17, 0, 0x6666666666666667, x19, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x6, rd==x26, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.15 ; op1:x6; dest:x26; op1val:-0xb504f332; immval:0x7ff +TEST_R_OP( mop.r.15, x26, x6, 0, -0xb504f332, x19, 1*XLEN/8, x9) + +inst_2: +// rs1==x29, rd==x4, imm_val == 0, +// opcode: mop.r.15 ; op1:x29; dest:x4; op1val:-0x201; immval:0x0 +TEST_R_OP( mop.r.15, x4, x29, 0, -0x201, x19, 2*XLEN/8, x9) + +inst_3: +// rs1==x28, rd==x2, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.15 ; op1:x28; dest:x2; op1val:0x3333333333333334; immval:0x1 +TEST_R_OP( mop.r.15, x2, x28, 0, 0x3333333333333334, x19, 3*XLEN/8, x9) + +inst_4: +// rs1==x3, rd==x15, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.15 ; op1:x3; dest:x15; op1val:-0x1001; immval:-0x4 +TEST_R_OP( mop.r.15, x15, x3, 0, -0x1001, x19, 4*XLEN/8, x9) + +inst_5: +// rs1==x2, rd==x30, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.15 ; op1:x2; dest:x30; op1val:-0x8000000000000000; immval:-0x21 +TEST_R_OP( mop.r.15, x30, x2, 0, -0x8000000000000000, x19, 5*XLEN/8, x9) + +inst_6: +// rs1==x26, rd==x11, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.15 ; op1:x26; dest:x11; op1val:0x7fffffffffffffff; immval:0x0 +TEST_R_OP( mop.r.15, x11, x26, 0, 0x7fffffffffffffff, x19, 6*XLEN/8, x9) + +inst_7: +// rs1==x18, rd==x14, rs1_val == 0, +// opcode: mop.r.15 ; op1:x18; dest:x14; op1val:0x0; immval:-0x9 +TEST_R_OP( mop.r.15, x14, x18, 0, 0x0, x19, 7*XLEN/8, x9) + +inst_8: +// rs1==x24, rd==x27, rs1_val == 1, +// opcode: mop.r.15 ; op1:x24; dest:x27; op1val:0x1; immval:0x20 +TEST_R_OP( mop.r.15, x27, x24, 0, 0x1, x19, 8*XLEN/8, x9) + +inst_9: +// rs1==x25, rd==x7, rs1_val == imm_val, +// opcode: mop.r.15 ; op1:x25; dest:x7; op1val:0x5; immval:0x5 +TEST_R_OP( mop.r.15, x7, x25, 0, 0x5, x19, 9*XLEN/8, x9) + +inst_10: +// rs1==x8, rd==x18, +// opcode: mop.r.15 ; op1:x8; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x18, x8, 0, 0x0, x19, 10*XLEN/8, x9) + +inst_11: +// rs1==x13, rd==x5, +// opcode: mop.r.15 ; op1:x13; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x5, x13, 0, 0x0, x19, 11*XLEN/8, x9) + +inst_12: +// rs1==x20, rd==x8, +// opcode: mop.r.15 ; op1:x20; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x8, x20, 0, 0x0, x19, 12*XLEN/8, x9) + +inst_13: +// rs1==x31, rd==x21, +// opcode: mop.r.15 ; op1:x31; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x21, x31, 0, 0x0, x19, 13*XLEN/8, x9) + +inst_14: +// rs1==x4, rd==x16, +// opcode: mop.r.15 ; op1:x4; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x16, x4, 0, 0x0, x19, 14*XLEN/8, x9) + +inst_15: +// rs1==x12, rd==x1, +// opcode: mop.r.15 ; op1:x12; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x1, x12, 0, 0x0, x19, 15*XLEN/8, x9) + +inst_16: +// rs1==x10, rd==x9, +// opcode: mop.r.15 ; op1:x10; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x9, x10, 0, 0x0, x19, 16*XLEN/8, x4) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_17: +// rs1==x15, rd==x0, +// opcode: mop.r.15 ; op1:x15; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x0, x15, 0, 0x0, x2, 0*XLEN/8, x4) + +inst_18: +// rs1==x9, rd==x3, +// opcode: mop.r.15 ; op1:x9; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x3, x9, 0, 0x0, x2, 1*XLEN/8, x4) + +inst_19: +// rs1==x30, rd==x22, +// opcode: mop.r.15 ; op1:x30; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x22, x30, 0, 0x0, x2, 2*XLEN/8, x4) + +inst_20: +// rs1==x5, rd==x20, +// opcode: mop.r.15 ; op1:x5; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x20, x5, 0, 0x0, x2, 3*XLEN/8, x4) + +inst_21: +// rs1==x23, rd==x13, +// opcode: mop.r.15 ; op1:x23; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x13, x23, 0, 0x0, x2, 4*XLEN/8, x4) + +inst_22: +// rs1==x27, rd==x24, +// opcode: mop.r.15 ; op1:x27; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x24, x27, 0, 0x0, x2, 5*XLEN/8, x4) + +inst_23: +// rs1==x14, rd==x6, +// opcode: mop.r.15 ; op1:x14; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x6, x14, 0, 0x0, x2, 6*XLEN/8, x4) + +inst_24: +// rs1==x21, rd==x29, +// opcode: mop.r.15 ; op1:x21; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x29, x21, 0, 0x0, x2, 7*XLEN/8, x4) + +inst_25: +// rs1==x22, rd==x28, +// opcode: mop.r.15 ; op1:x22; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x28, x22, 0, 0x0, x2, 8*XLEN/8, x4) + +inst_26: +// rs1==x7, rd==x31, +// opcode: mop.r.15 ; op1:x7; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x31, x7, 0, 0x0, x2, 9*XLEN/8, x4) + +inst_27: +// rs1==x19, rd==x12, +// opcode: mop.r.15 ; op1:x19; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x12, x19, 0, 0x0, x2, 10*XLEN/8, x4) + +inst_28: +// rs1==x11, rd==x19, +// opcode: mop.r.15 ; op1:x11; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x19, x11, 0, 0x0, x2, 11*XLEN/8, x4) + +inst_29: +// rs1==x16, rd==x23, +// opcode: mop.r.15 ; op1:x16; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x23, x16, 0, 0x0, x2, 12*XLEN/8, x4) + +inst_30: +// rs1==x1, rd==x25, +// opcode: mop.r.15 ; op1:x1; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x25, x1, 0, 0x0, x2, 13*XLEN/8, x4) + +inst_31: +// rs1==x0, rd==x10, +// opcode: mop.r.15 ; op1:x0; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.15, x10, x0, 0, 0x0, x2, 14*XLEN/8, x4) +#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_x19_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x19_1: + .fill 17*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 15*((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/Zimop/src/mop.r.16-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.16-01.S new file mode 100644 index 000000000..28853e47b --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.16-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.16 instruction of the RISC-V RV64Zimop extension for the mop.r.16 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.16) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x9, rd==x9, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.16 ; op1:x9; dest:x9; op1val:0x8000000000000; immval:-0x800 +TEST_R_OP( mop.r.16, x9, x9, 0, 0x8000000000000, x7, 0*XLEN/8, x8) + +inst_1: +// rs1 != rd, rs1==x16, rd==x13, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.16 ; op1:x16; dest:x13; op1val:0x2; immval:0x7ff +TEST_R_OP( mop.r.16, x13, x16, 0, 0x2, x7, 1*XLEN/8, x8) + +inst_2: +// rs1==x11, rd==x17, imm_val == 0, +// opcode: mop.r.16 ; op1:x11; dest:x17; op1val:-0x11; immval:0x0 +TEST_R_OP( mop.r.16, x17, x11, 0, -0x11, x7, 2*XLEN/8, x8) + +inst_3: +// rs1==x19, rd==x21, imm_val == 1, +// opcode: mop.r.16 ; op1:x19; dest:x21; op1val:0x2000000000000; immval:0x1 +TEST_R_OP( mop.r.16, x21, x19, 0, 0x2000000000000, x7, 3*XLEN/8, x8) + +inst_4: +// rs1==x20, rd==x18, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.16 ; op1:x20; dest:x18; op1val:-0x4; immval:-0x2d +TEST_R_OP( mop.r.16, x18, x20, 0, -0x4, x7, 4*XLEN/8, x8) + +inst_5: +// rs1==x1, rd==x6, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.16 ; op1:x1; dest:x6; op1val:-0x20000001; immval:0x333 +TEST_R_OP( mop.r.16, x6, x1, 0, -0x20000001, x7, 5*XLEN/8, x8) + +inst_6: +// rs1==x27, rd==x24, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.16 ; op1:x27; dest:x24; op1val:-0x8000000000000000; immval:-0x400 +TEST_R_OP( mop.r.16, x24, x27, 0, -0x8000000000000000, x7, 6*XLEN/8, x8) + +inst_7: +// rs1==x4, rd==x11, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.16 ; op1:x4; dest:x11; op1val:0x7fffffffffffffff; immval:0x0 +TEST_R_OP( mop.r.16, x11, x4, 0, 0x7fffffffffffffff, x7, 7*XLEN/8, x8) + +inst_8: +// rs1==x25, rd==x16, rs1_val == 0, +// opcode: mop.r.16 ; op1:x25; dest:x16; op1val:0x0; immval:-0x101 +TEST_R_OP( mop.r.16, x16, x25, 0, 0x0, x7, 8*XLEN/8, x8) + +inst_9: +// rs1==x10, rd==x5, rs1_val == 1, +// opcode: mop.r.16 ; op1:x10; dest:x5; op1val:0x1; immval:-0x4 +TEST_R_OP( mop.r.16, x5, x10, 0, 0x1, x7, 9*XLEN/8, x8) + +inst_10: +// rs1==x3, rd==x14, rs1_val == imm_val, +// opcode: mop.r.16 ; op1:x3; dest:x14; op1val:-0x11; immval:-0x11 +TEST_R_OP( mop.r.16, x14, x3, 0, -0x11, x7, 10*XLEN/8, x8) + +inst_11: +// rs1==x5, rd==x20, +// opcode: mop.r.16 ; op1:x5; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x20, x5, 0, 0x0, x7, 11*XLEN/8, x8) + +inst_12: +// rs1==x28, rd==x22, +// opcode: mop.r.16 ; op1:x28; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x22, x28, 0, 0x0, x7, 12*XLEN/8, x8) + +inst_13: +// rs1==x29, rd==x27, +// opcode: mop.r.16 ; op1:x29; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x27, x29, 0, 0x0, x7, 13*XLEN/8, x8) + +inst_14: +// rs1==x26, rd==x1, +// opcode: mop.r.16 ; op1:x26; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x1, x26, 0, 0x0, x7, 14*XLEN/8, x8) + +inst_15: +// rs1==x21, rd==x25, +// opcode: mop.r.16 ; op1:x21; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x25, x21, 0, 0x0, x7, 15*XLEN/8, x8) + +inst_16: +// rs1==x15, rd==x26, +// opcode: mop.r.16 ; op1:x15; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x26, x15, 0, 0x0, x7, 16*XLEN/8, x8) + +inst_17: +// rs1==x22, rd==x4, +// opcode: mop.r.16 ; op1:x22; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x4, x22, 0, 0x0, x7, 17*XLEN/8, x8) + +inst_18: +// rs1==x2, rd==x19, +// opcode: mop.r.16 ; op1:x2; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x19, x2, 0, 0x0, x7, 18*XLEN/8, x8) + +inst_19: +// rs1==x24, rd==x30, +// opcode: mop.r.16 ; op1:x24; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x30, x24, 0, 0x0, x7, 19*XLEN/8, x8) + +inst_20: +// rs1==x23, rd==x29, +// opcode: mop.r.16 ; op1:x23; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x29, x23, 0, 0x0, x7, 20*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_21: +// rs1==x12, rd==x31, +// opcode: mop.r.16 ; op1:x12; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x31, x12, 0, 0x0, x1, 0*XLEN/8, x4) + +inst_22: +// rs1==x18, rd==x23, +// opcode: mop.r.16 ; op1:x18; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x23, x18, 0, 0x0, x1, 1*XLEN/8, x4) + +inst_23: +// rs1==x17, rd==x12, +// opcode: mop.r.16 ; op1:x17; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x12, x17, 0, 0x0, x1, 2*XLEN/8, x4) + +inst_24: +// rs1==x13, rd==x3, +// opcode: mop.r.16 ; op1:x13; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x3, x13, 0, 0x0, x1, 3*XLEN/8, x4) + +inst_25: +// rs1==x8, rd==x2, +// opcode: mop.r.16 ; op1:x8; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x2, x8, 0, 0x0, x1, 4*XLEN/8, x4) + +inst_26: +// rs1==x30, rd==x8, +// opcode: mop.r.16 ; op1:x30; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x8, x30, 0, 0x0, x1, 5*XLEN/8, x4) + +inst_27: +// rs1==x7, rd==x28, +// opcode: mop.r.16 ; op1:x7; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x28, x7, 0, 0x0, x1, 6*XLEN/8, x4) + +inst_28: +// rs1==x14, rd==x15, +// opcode: mop.r.16 ; op1:x14; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x15, x14, 0, 0x0, x1, 7*XLEN/8, x4) + +inst_29: +// rs1==x6, rd==x10, +// opcode: mop.r.16 ; op1:x6; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x10, x6, 0, 0x0, x1, 8*XLEN/8, x4) + +inst_30: +// rs1==x31, rd==x0, +// opcode: mop.r.16 ; op1:x31; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x0, x31, 0, 0x0, x1, 9*XLEN/8, x4) + +inst_31: +// rs1==x0, rd==x7, +// opcode: mop.r.16 ; op1:x0; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.16, x7, x0, 0, 0x0, x1, 10*XLEN/8, x4) +#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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 11*((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/Zimop/src/mop.r.17-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.17-01.S new file mode 100644 index 000000000..d85a41148 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.17-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.17 instruction of the RISC-V RV64Zimop extension for the mop.r.17 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.17) + +RVTEST_SIGBASE(x8,signature_x8_1) + +inst_0: +// rs1 == rd, rs1==x26, rd==x26, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.17 ; op1:x26; dest:x26; op1val:-0x8000000001; immval:-0x800 +TEST_R_OP( mop.r.17, x26, x26, 0, -0x8000000001, x8, 0*XLEN/8, x13) + +inst_1: +// rs1 != rd, rs1==x11, rd==x9, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.17 ; op1:x11; dest:x9; op1val:0x80000000000000; immval:0x7ff +TEST_R_OP( mop.r.17, x9, x11, 0, 0x80000000000000, x8, 1*XLEN/8, x13) + +inst_2: +// rs1==x31, rd==x10, imm_val == 0, +// opcode: mop.r.17 ; op1:x31; dest:x10; op1val:0x4000000000000000; immval:0x0 +TEST_R_OP( mop.r.17, x10, x31, 0, 0x4000000000000000, x8, 2*XLEN/8, x13) + +inst_3: +// rs1==x19, rd==x17, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.17 ; op1:x19; dest:x17; op1val:-0x100000000000001; immval:0x1 +TEST_R_OP( mop.r.17, x17, x19, 0, -0x100000000000001, x8, 3*XLEN/8, x13) + +inst_4: +// rs1==x27, rd==x12, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.17 ; op1:x27; dest:x12; op1val:-0x8000000000000000; immval:-0x556 +TEST_R_OP( mop.r.17, x12, x27, 0, -0x8000000000000000, x8, 4*XLEN/8, x13) + +inst_5: +// rs1==x0, rd==x28, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.17 ; op1:x0; dest:x28; op1val:0x0; immval:0x4 +TEST_R_OP( mop.r.17, x28, x0, 0, 0x0, x8, 5*XLEN/8, x13) + +inst_6: +// rs1==x25, rd==x1, rs1_val == 0, +// opcode: mop.r.17 ; op1:x25; dest:x1; op1val:0x0; immval:-0x41 +TEST_R_OP( mop.r.17, x1, x25, 0, 0x0, x8, 6*XLEN/8, x13) + +inst_7: +// rs1==x9, rd==x30, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.17 ; op1:x9; dest:x30; op1val:0x1; immval:-0x81 +TEST_R_OP( mop.r.17, x30, x9, 0, 0x1, x8, 7*XLEN/8, x13) + +inst_8: +// rs1==x28, rd==x3, rs1_val == imm_val, +// opcode: mop.r.17 ; op1:x28; dest:x3; op1val:0x8; immval:0x8 +TEST_R_OP( mop.r.17, x3, x28, 0, 0x8, x8, 8*XLEN/8, x13) + +inst_9: +// rs1==x14, rd==x19, +// opcode: mop.r.17 ; op1:x14; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x19, x14, 0, 0x0, x8, 9*XLEN/8, x13) + +inst_10: +// rs1==x2, rd==x25, +// opcode: mop.r.17 ; op1:x2; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x25, x2, 0, 0x0, x8, 10*XLEN/8, x13) + +inst_11: +// rs1==x6, rd==x15, +// opcode: mop.r.17 ; op1:x6; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x15, x6, 0, 0x0, x8, 11*XLEN/8, x13) + +inst_12: +// rs1==x1, rd==x0, +// opcode: mop.r.17 ; op1:x1; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x0, x1, 0, 0x0, x8, 12*XLEN/8, x13) + +inst_13: +// rs1==x18, rd==x5, +// opcode: mop.r.17 ; op1:x18; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x5, x18, 0, 0x0, x8, 13*XLEN/8, x13) + +inst_14: +// rs1==x29, rd==x4, +// opcode: mop.r.17 ; op1:x29; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x4, x29, 0, 0x0, x8, 14*XLEN/8, x13) + +inst_15: +// rs1==x17, rd==x16, +// opcode: mop.r.17 ; op1:x17; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x16, x17, 0, 0x0, x8, 15*XLEN/8, x13) + +inst_16: +// rs1==x20, rd==x7, +// opcode: mop.r.17 ; op1:x20; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x7, x20, 0, 0x0, x8, 16*XLEN/8, x13) + +inst_17: +// rs1==x21, rd==x11, +// opcode: mop.r.17 ; op1:x21; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x11, x21, 0, 0x0, x8, 17*XLEN/8, x13) + +inst_18: +// rs1==x13, rd==x14, +// opcode: mop.r.17 ; op1:x13; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x14, x13, 0, 0x0, x8, 18*XLEN/8, x9) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_19: +// rs1==x4, rd==x6, +// opcode: mop.r.17 ; op1:x4; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x6, x4, 0, 0x0, x1, 0*XLEN/8, x9) + +inst_20: +// rs1==x7, rd==x23, +// opcode: mop.r.17 ; op1:x7; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x23, x7, 0, 0x0, x1, 1*XLEN/8, x9) + +inst_21: +// rs1==x3, rd==x31, +// opcode: mop.r.17 ; op1:x3; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x31, x3, 0, 0x0, x1, 2*XLEN/8, x9) + +inst_22: +// rs1==x5, rd==x2, +// opcode: mop.r.17 ; op1:x5; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x2, x5, 0, 0x0, x1, 3*XLEN/8, x9) + +inst_23: +// rs1==x24, rd==x22, +// opcode: mop.r.17 ; op1:x24; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x22, x24, 0, 0x0, x1, 4*XLEN/8, x9) + +inst_24: +// rs1==x12, rd==x8, +// opcode: mop.r.17 ; op1:x12; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x8, x12, 0, 0x0, x1, 5*XLEN/8, x9) + +inst_25: +// rs1==x15, rd==x13, +// opcode: mop.r.17 ; op1:x15; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x13, x15, 0, 0x0, x1, 6*XLEN/8, x9) + +inst_26: +// rs1==x22, rd==x20, +// opcode: mop.r.17 ; op1:x22; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x20, x22, 0, 0x0, x1, 7*XLEN/8, x9) + +inst_27: +// rs1==x30, rd==x18, +// opcode: mop.r.17 ; op1:x30; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x18, x30, 0, 0x0, x1, 8*XLEN/8, x9) + +inst_28: +// rs1==x10, rd==x24, +// opcode: mop.r.17 ; op1:x10; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x24, x10, 0, 0x0, x1, 9*XLEN/8, x9) + +inst_29: +// rs1==x16, rd==x29, +// opcode: mop.r.17 ; op1:x16; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x29, x16, 0, 0x0, x1, 10*XLEN/8, x9) + +inst_30: +// rs1==x23, rd==x21, +// opcode: mop.r.17 ; op1:x23; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x21, x23, 0, 0x0, x1, 11*XLEN/8, x9) + +inst_31: +// rs1==x8, rd==x27, +// opcode: mop.r.17 ; op1:x8; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.17, x27, x8, 0, 0x0, x1, 12*XLEN/8, x9) + +inst_32: +// rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.17 ; op1:x30; dest:x31; op1val:0x7fffffffffffffff; immval:0x4 +TEST_R_OP( mop.r.17, x31, x30, 0, 0x7fffffffffffffff, x1, 13*XLEN/8, x9) +#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_x8_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x8_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 14*((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/Zimop/src/mop.r.18-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.18-01.S new file mode 100644 index 000000000..f7739eb69 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.18-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.18 instruction of the RISC-V RV64Zimop extension for the mop.r.18 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.18) + +RVTEST_SIGBASE(x4,signature_x4_1) + +inst_0: +// rs1 == rd, rs1==x27, rd==x27, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.18 ; op1:x27; dest:x27; op1val:0x4000000000000; immval:-0x800 +TEST_R_OP( mop.r.18, x27, x27, 0, 0x4000000000000, x4, 0*XLEN/8, x6) + +inst_1: +// rs1 != rd, rs1==x16, rd==x19, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.18 ; op1:x16; dest:x19; op1val:-0x8000001; immval:0x7ff +TEST_R_OP( mop.r.18, x19, x16, 0, -0x8000001, x4, 1*XLEN/8, x6) + +inst_2: +// rs1==x21, rd==x28, imm_val == 0, +// opcode: mop.r.18 ; op1:x21; dest:x28; op1val:0x1000000000000000; immval:0x0 +TEST_R_OP( mop.r.18, x28, x21, 0, 0x1000000000000000, x4, 2*XLEN/8, x6) + +inst_3: +// rs1==x11, rd==x5, imm_val == 1, rs1_val == (-2**(xlen-1)) +// opcode: mop.r.18 ; op1:x11; dest:x5; op1val:-0x8000000000000000; immval:0x1 +TEST_R_OP( mop.r.18, x5, x11, 0, -0x8000000000000000, x4, 3*XLEN/8, x6) + +inst_4: +// rs1==x22, rd==x21, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.18 ; op1:x22; dest:x21; op1val:-0x10001; immval:-0x556 +TEST_R_OP( mop.r.18, x21, x22, 0, -0x10001, x4, 4*XLEN/8, x6) + +inst_5: +// rs1==x15, rd==x13, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.18 ; op1:x15; dest:x13; op1val:0x7fffffffffffffff; immval:-0x9 +TEST_R_OP( mop.r.18, x13, x15, 0, 0x7fffffffffffffff, x4, 5*XLEN/8, x6) + +inst_6: +// rs1==x2, rd==x30, rs1_val == 0, +// opcode: mop.r.18 ; op1:x2; dest:x30; op1val:0x0; immval:0x200 +TEST_R_OP( mop.r.18, x30, x2, 0, 0x0, x4, 6*XLEN/8, x6) + +inst_7: +// rs1==x28, rd==x7, rs1_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.18 ; op1:x28; dest:x7; op1val:0x1; immval:0x40 +TEST_R_OP( mop.r.18, x7, x28, 0, 0x1, x4, 7*XLEN/8, x6) + +inst_8: +// rs1==x12, rd==x9, rs1_val == imm_val, +// opcode: mop.r.18 ; op1:x12; dest:x9; op1val:0x40; immval:0x40 +TEST_R_OP( mop.r.18, x9, x12, 0, 0x40, x4, 8*XLEN/8, x6) + +inst_9: +// rs1==x1, rd==x18, +// opcode: mop.r.18 ; op1:x1; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x18, x1, 0, 0x0, x4, 9*XLEN/8, x6) + +inst_10: +// rs1==x18, rd==x11, +// opcode: mop.r.18 ; op1:x18; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x11, x18, 0, 0x0, x4, 10*XLEN/8, x6) + +inst_11: +// rs1==x26, rd==x16, +// opcode: mop.r.18 ; op1:x26; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x16, x26, 0, 0x0, x4, 11*XLEN/8, x6) + +inst_12: +// rs1==x3, rd==x10, +// opcode: mop.r.18 ; op1:x3; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x10, x3, 0, 0x0, x4, 12*XLEN/8, x6) + +inst_13: +// rs1==x20, rd==x8, +// opcode: mop.r.18 ; op1:x20; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x8, x20, 0, 0x0, x4, 13*XLEN/8, x6) + +inst_14: +// rs1==x17, rd==x0, +// opcode: mop.r.18 ; op1:x17; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x0, x17, 0, 0x0, x4, 14*XLEN/8, x6) + +inst_15: +// rs1==x23, rd==x29, +// opcode: mop.r.18 ; op1:x23; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x29, x23, 0, 0x0, x4, 15*XLEN/8, x6) + +inst_16: +// rs1==x13, rd==x24, +// opcode: mop.r.18 ; op1:x13; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x24, x13, 0, 0x0, x4, 16*XLEN/8, x6) + +inst_17: +// rs1==x5, rd==x23, +// opcode: mop.r.18 ; op1:x5; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x23, x5, 0, 0x0, x4, 17*XLEN/8, x11) + +inst_18: +// rs1==x19, rd==x2, +// opcode: mop.r.18 ; op1:x19; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x2, x19, 0, 0x0, x4, 18*XLEN/8, x11) + +inst_19: +// rs1==x24, rd==x14, +// opcode: mop.r.18 ; op1:x24; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x14, x24, 0, 0x0, x4, 19*XLEN/8, x11) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_20: +// rs1==x30, rd==x15, +// opcode: mop.r.18 ; op1:x30; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x15, x30, 0, 0x0, x2, 0*XLEN/8, x11) + +inst_21: +// rs1==x7, rd==x1, +// opcode: mop.r.18 ; op1:x7; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x1, x7, 0, 0x0, x2, 1*XLEN/8, x11) + +inst_22: +// rs1==x0, rd==x4, +// opcode: mop.r.18 ; op1:x0; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x4, x0, 0, 0x0, x2, 2*XLEN/8, x11) + +inst_23: +// rs1==x14, rd==x25, +// opcode: mop.r.18 ; op1:x14; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x25, x14, 0, 0x0, x2, 3*XLEN/8, x11) + +inst_24: +// rs1==x10, rd==x3, +// opcode: mop.r.18 ; op1:x10; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x3, x10, 0, 0x0, x2, 4*XLEN/8, x11) + +inst_25: +// rs1==x29, rd==x31, +// opcode: mop.r.18 ; op1:x29; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x31, x29, 0, 0x0, x2, 5*XLEN/8, x11) + +inst_26: +// rs1==x6, rd==x17, +// opcode: mop.r.18 ; op1:x6; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x17, x6, 0, 0x0, x2, 6*XLEN/8, x11) + +inst_27: +// rs1==x4, rd==x12, +// opcode: mop.r.18 ; op1:x4; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x12, x4, 0, 0x0, x2, 7*XLEN/8, x11) + +inst_28: +// rs1==x25, rd==x20, +// opcode: mop.r.18 ; op1:x25; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x20, x25, 0, 0x0, x2, 8*XLEN/8, x11) + +inst_29: +// rs1==x9, rd==x6, +// opcode: mop.r.18 ; op1:x9; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x6, x9, 0, 0x0, x2, 9*XLEN/8, x11) + +inst_30: +// rs1==x31, rd==x26, +// opcode: mop.r.18 ; op1:x31; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x26, x31, 0, 0x0, x2, 10*XLEN/8, x11) + +inst_31: +// rs1==x8, rd==x22, +// opcode: mop.r.18 ; op1:x8; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.18, x22, x8, 0, 0x0, x2, 11*XLEN/8, x11) +#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_x4_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 12*((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/Zimop/src/mop.r.19-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.19-01.S new file mode 100644 index 000000000..c82d5ba9d --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.19-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.19 instruction of the RISC-V RV64Zimop extension for the mop.r.19 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.19) + +RVTEST_SIGBASE(x14,signature_x14_1) + +inst_0: +// rs1 == rd, rs1==x17, rd==x17, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.19 ; op1:x17; dest:x17; op1val:0x10000000000; immval:-0x800 +TEST_R_OP( mop.r.19, x17, x17, 0, 0x10000000000, x14, 0*XLEN/8, x12) + +inst_1: +// rs1 != rd, rs1==x8, rd==x4, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.19 ; op1:x8; dest:x4; op1val:-0x400001; immval:0x7ff +TEST_R_OP( mop.r.19, x4, x8, 0, -0x400001, x14, 1*XLEN/8, x12) + +inst_2: +// rs1==x22, rd==x15, imm_val == 0, +// opcode: mop.r.19 ; op1:x22; dest:x15; op1val:-0x4000000000001; immval:0x0 +TEST_R_OP( mop.r.19, x15, x22, 0, -0x4000000000001, x14, 2*XLEN/8, x12) + +inst_3: +// rs1==x10, rd==x20, imm_val == 1, +// opcode: mop.r.19 ; op1:x10; dest:x20; op1val:-0x41; immval:0x1 +TEST_R_OP( mop.r.19, x20, x10, 0, -0x41, x14, 3*XLEN/8, x12) + +inst_4: +// rs1==x27, rd==x13, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.19 ; op1:x27; dest:x13; op1val:-0x4000000000001; immval:-0x41 +TEST_R_OP( mop.r.19, x13, x27, 0, -0x4000000000001, x14, 4*XLEN/8, x12) + +inst_5: +// rs1==x6, rd==x2, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.19 ; op1:x6; dest:x2; op1val:-0x8000000000000000; immval:-0x2d +TEST_R_OP( mop.r.19, x2, x6, 0, -0x8000000000000000, x14, 5*XLEN/8, x12) + +inst_6: +// rs1==x11, rd==x22, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.19 ; op1:x11; dest:x22; op1val:0x7fffffffffffffff; immval:-0x556 +TEST_R_OP( mop.r.19, x22, x11, 0, 0x7fffffffffffffff, x14, 6*XLEN/8, x12) + +inst_7: +// rs1==x18, rd==x9, rs1_val == 0, +// opcode: mop.r.19 ; op1:x18; dest:x9; op1val:0x0; immval:-0xa +TEST_R_OP( mop.r.19, x9, x18, 0, 0x0, x14, 7*XLEN/8, x12) + +inst_8: +// rs1==x29, rd==x28, rs1_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.19 ; op1:x29; dest:x28; op1val:0x1; immval:0x332 +TEST_R_OP( mop.r.19, x28, x29, 0, 0x1, x14, 8*XLEN/8, x12) + +inst_9: +// rs1==x15, rd==x29, rs1_val == imm_val, +// opcode: mop.r.19 ; op1:x15; dest:x29; op1val:0x2; immval:0x2 +TEST_R_OP( mop.r.19, x29, x15, 0, 0x2, x14, 9*XLEN/8, x12) + +inst_10: +// rs1==x21, rd==x26, +// opcode: mop.r.19 ; op1:x21; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x26, x21, 0, 0x0, x14, 10*XLEN/8, x12) + +inst_11: +// rs1==x26, rd==x19, +// opcode: mop.r.19 ; op1:x26; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x19, x26, 0, 0x0, x14, 11*XLEN/8, x12) + +inst_12: +// rs1==x24, rd==x30, +// opcode: mop.r.19 ; op1:x24; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x30, x24, 0, 0x0, x14, 12*XLEN/8, x12) + +inst_13: +// rs1==x5, rd==x11, +// opcode: mop.r.19 ; op1:x5; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x11, x5, 0, 0x0, x14, 13*XLEN/8, x12) + +inst_14: +// rs1==x3, rd==x7, +// opcode: mop.r.19 ; op1:x3; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x7, x3, 0, 0x0, x14, 14*XLEN/8, x12) + +inst_15: +// rs1==x13, rd==x24, +// opcode: mop.r.19 ; op1:x13; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x24, x13, 0, 0x0, x14, 15*XLEN/8, x12) + +inst_16: +// rs1==x1, rd==x6, +// opcode: mop.r.19 ; op1:x1; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x6, x1, 0, 0x0, x14, 16*XLEN/8, x12) + +inst_17: +// rs1==x16, rd==x10, +// opcode: mop.r.19 ; op1:x16; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x10, x16, 0, 0x0, x14, 17*XLEN/8, x12) + +inst_18: +// rs1==x9, rd==x12, +// opcode: mop.r.19 ; op1:x9; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x12, x9, 0, 0x0, x14, 18*XLEN/8, x10) +RVTEST_SIGBASE(x6,signature_x6_0) + +inst_19: +// rs1==x25, rd==x0, +// opcode: mop.r.19 ; op1:x25; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x0, x25, 0, 0x0, x6, 0*XLEN/8, x10) + +inst_20: +// rs1==x14, rd==x8, +// opcode: mop.r.19 ; op1:x14; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x8, x14, 0, 0x0, x6, 1*XLEN/8, x10) + +inst_21: +// rs1==x20, rd==x14, +// opcode: mop.r.19 ; op1:x20; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x14, x20, 0, 0x0, x6, 2*XLEN/8, x10) + +inst_22: +// rs1==x28, rd==x25, +// opcode: mop.r.19 ; op1:x28; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x25, x28, 0, 0x0, x6, 3*XLEN/8, x10) + +inst_23: +// rs1==x0, rd==x23, +// opcode: mop.r.19 ; op1:x0; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x23, x0, 0, 0x0, x6, 4*XLEN/8, x10) + +inst_24: +// rs1==x7, rd==x27, +// opcode: mop.r.19 ; op1:x7; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x27, x7, 0, 0x0, x6, 5*XLEN/8, x10) + +inst_25: +// rs1==x19, rd==x1, +// opcode: mop.r.19 ; op1:x19; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x1, x19, 0, 0x0, x6, 6*XLEN/8, x10) + +inst_26: +// rs1==x31, rd==x5, +// opcode: mop.r.19 ; op1:x31; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x5, x31, 0, 0x0, x6, 7*XLEN/8, x10) + +inst_27: +// rs1==x23, rd==x31, +// opcode: mop.r.19 ; op1:x23; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x31, x23, 0, 0x0, x6, 8*XLEN/8, x10) + +inst_28: +// rs1==x2, rd==x16, +// opcode: mop.r.19 ; op1:x2; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x16, x2, 0, 0x0, x6, 9*XLEN/8, x10) + +inst_29: +// rs1==x12, rd==x3, +// opcode: mop.r.19 ; op1:x12; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x3, x12, 0, 0x0, x6, 10*XLEN/8, x10) + +inst_30: +// rs1==x30, rd==x18, +// opcode: mop.r.19 ; op1:x30; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x18, x30, 0, 0x0, x6, 11*XLEN/8, x10) + +inst_31: +// rs1==x4, rd==x21, +// opcode: mop.r.19 ; op1:x4; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.19, x21, x4, 0, 0x0, x6, 12*XLEN/8, x10) +#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_x14_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x14_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_0: + .fill 13*((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/Zimop/src/mop.r.2-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.2-01.S new file mode 100644 index 000000000..ee591b0e4 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.2-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.2 instruction of the RISC-V RV64Zimop extension for the mop.r.2 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.2) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x0, rd==x0, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.2 ; op1:x0; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x0, x0, 0, 0x0, x3, 0*XLEN/8, x12) + +inst_1: +// rs1 != rd, rs1==x15, rd==x31, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.2 ; op1:x15; dest:x31; op1val:0x5555555555555555; immval:0x7ff +TEST_R_OP( mop.r.2, x31, x15, 0, 0x5555555555555555, x3, 1*XLEN/8, x12) + +inst_2: +// rs1==x24, rd==x23, imm_val == 0, +// opcode: mop.r.2 ; op1:x24; dest:x23; op1val:-0x4000000000000000; immval:0x0 +TEST_R_OP( mop.r.2, x23, x24, 0, -0x4000000000000000, x3, 2*XLEN/8, x12) + +inst_3: +// rs1==x22, rd==x16, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.2 ; op1:x22; dest:x16; op1val:-0x41; immval:0x1 +TEST_R_OP( mop.r.2, x16, x22, 0, -0x41, x3, 3*XLEN/8, x12) + +inst_4: +// rs1==x16, rd==x10, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.2 ; op1:x16; dest:x10; op1val:-0x8000000000000000; immval:-0x2d +TEST_R_OP( mop.r.2, x10, x16, 0, -0x8000000000000000, x3, 4*XLEN/8, x12) + +inst_5: +// rs1==x18, rd==x28, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.2 ; op1:x18; dest:x28; op1val:0x7fffffffffffffff; immval:0x3 +TEST_R_OP( mop.r.2, x28, x18, 0, 0x7fffffffffffffff, x3, 5*XLEN/8, x12) + +inst_6: +// rs1==x10, rd==x29, rs1_val == 0, +// opcode: mop.r.2 ; op1:x10; dest:x29; op1val:0x0; immval:0x4 +TEST_R_OP( mop.r.2, x29, x10, 0, 0x0, x3, 6*XLEN/8, x12) + +inst_7: +// rs1==x30, rd==x17, rs1_val == 1, +// opcode: mop.r.2 ; op1:x30; dest:x17; op1val:0x1; immval:0x6 +TEST_R_OP( mop.r.2, x17, x30, 0, 0x1, x3, 7*XLEN/8, x12) + +inst_8: +// rs1==x27, rd==x2, rs1_val == imm_val, +// opcode: mop.r.2 ; op1:x27; dest:x2; op1val:0x200; immval:0x200 +TEST_R_OP( mop.r.2, x2, x27, 0, 0x200, x3, 8*XLEN/8, x12) + +inst_9: +// rs1==x4, rd==x6, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.2 ; op1:x4; dest:x6; op1val:0x100000000000000; immval:-0x555 +TEST_R_OP( mop.r.2, x6, x4, 0, 0x100000000000000, x3, 9*XLEN/8, x12) + +inst_10: +// rs1==x1, rd==x15, +// opcode: mop.r.2 ; op1:x1; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x15, x1, 0, 0x0, x3, 10*XLEN/8, x12) + +inst_11: +// rs1==x9, rd==x25, +// opcode: mop.r.2 ; op1:x9; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x25, x9, 0, 0x0, x3, 11*XLEN/8, x12) + +inst_12: +// rs1==x5, rd==x9, +// opcode: mop.r.2 ; op1:x5; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x9, x5, 0, 0x0, x3, 12*XLEN/8, x12) + +inst_13: +// rs1==x7, rd==x22, +// opcode: mop.r.2 ; op1:x7; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x22, x7, 0, 0x0, x3, 13*XLEN/8, x12) + +inst_14: +// rs1==x21, rd==x11, +// opcode: mop.r.2 ; op1:x21; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x11, x21, 0, 0x0, x3, 14*XLEN/8, x12) + +inst_15: +// rs1==x17, rd==x19, +// opcode: mop.r.2 ; op1:x17; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x19, x17, 0, 0x0, x3, 15*XLEN/8, x12) + +inst_16: +// rs1==x11, rd==x7, +// opcode: mop.r.2 ; op1:x11; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x7, x11, 0, 0x0, x3, 16*XLEN/8, x12) + +inst_17: +// rs1==x25, rd==x8, +// opcode: mop.r.2 ; op1:x25; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x8, x25, 0, 0x0, x3, 17*XLEN/8, x12) + +inst_18: +// rs1==x14, rd==x24, +// opcode: mop.r.2 ; op1:x14; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x24, x14, 0, 0x0, x3, 18*XLEN/8, x12) + +inst_19: +// rs1==x29, rd==x27, +// opcode: mop.r.2 ; op1:x29; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x27, x29, 0, 0x0, x3, 19*XLEN/8, x9) + +inst_20: +// rs1==x28, rd==x18, +// opcode: mop.r.2 ; op1:x28; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x18, x28, 0, 0x0, x3, 20*XLEN/8, x9) + +inst_21: +// rs1==x20, rd==x12, +// opcode: mop.r.2 ; op1:x20; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x12, x20, 0, 0x0, x3, 21*XLEN/8, x9) +RVTEST_SIGBASE(x7,signature_x7_0) + +inst_22: +// rs1==x8, rd==x14, +// opcode: mop.r.2 ; op1:x8; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x14, x8, 0, 0x0, x7, 0*XLEN/8, x9) + +inst_23: +// rs1==x12, rd==x20, +// opcode: mop.r.2 ; op1:x12; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x20, x12, 0, 0x0, x7, 1*XLEN/8, x9) + +inst_24: +// rs1==x6, rd==x3, +// opcode: mop.r.2 ; op1:x6; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x3, x6, 0, 0x0, x7, 2*XLEN/8, x9) + +inst_25: +// rs1==x26, rd==x21, +// opcode: mop.r.2 ; op1:x26; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x21, x26, 0, 0x0, x7, 3*XLEN/8, x9) + +inst_26: +// rs1==x13, rd==x4, +// opcode: mop.r.2 ; op1:x13; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x4, x13, 0, 0x0, x7, 4*XLEN/8, x9) + +inst_27: +// rs1==x3, rd==x30, +// opcode: mop.r.2 ; op1:x3; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x30, x3, 0, 0x0, x7, 5*XLEN/8, x9) + +inst_28: +// rs1==x23, rd==x13, +// opcode: mop.r.2 ; op1:x23; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x13, x23, 0, 0x0, x7, 6*XLEN/8, x9) + +inst_29: +// rs1==x2, rd==x1, +// opcode: mop.r.2 ; op1:x2; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x1, x2, 0, 0x0, x7, 7*XLEN/8, x9) + +inst_30: +// rs1==x31, rd==x5, +// opcode: mop.r.2 ; op1:x31; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x5, x31, 0, 0x0, x7, 8*XLEN/8, x9) + +inst_31: +// rs1==x19, rd==x26, +// opcode: mop.r.2 ; op1:x19; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.2, x26, x19, 0, 0x0, x7, 9*XLEN/8, x9) +#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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_0: + .fill 10*((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/Zimop/src/mop.r.20-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.20-01.S new file mode 100644 index 000000000..1e85df06c --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.20-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.20 instruction of the RISC-V RV64Zimop extension for the mop.r.20 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.20) + +RVTEST_SIGBASE(x3,signature_x3_1) + +inst_0: +// rs1 == rd, rs1==x5, rd==x5, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.20 ; op1:x5; dest:x5; op1val:0x3333333333333333; immval:-0x800 +TEST_R_OP( mop.r.20, x5, x5, 0, 0x3333333333333333, x3, 0*XLEN/8, x11) + +inst_1: +// rs1 != rd, rs1==x10, rd==x7, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.20 ; op1:x10; dest:x7; op1val:0x200000000000000; immval:0x7ff +TEST_R_OP( mop.r.20, x7, x10, 0, 0x200000000000000, x3, 1*XLEN/8, x11) + +inst_2: +// rs1==x23, rd==x21, imm_val == 0, +// opcode: mop.r.20 ; op1:x23; dest:x21; op1val:0x1000000000; immval:0x0 +TEST_R_OP( mop.r.20, x21, x23, 0, 0x1000000000, x3, 2*XLEN/8, x11) + +inst_3: +// rs1==x31, rd==x25, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.20 ; op1:x31; dest:x25; op1val:-0x1000000000000001; immval:0x1 +TEST_R_OP( mop.r.20, x25, x31, 0, -0x1000000000000001, x3, 3*XLEN/8, x11) + +inst_4: +// rs1==x17, rd==x27, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.20 ; op1:x17; dest:x27; op1val:-0x10001; immval:-0x3 +TEST_R_OP( mop.r.20, x27, x17, 0, -0x10001, x3, 4*XLEN/8, x11) + +inst_5: +// rs1==x28, rd==x10, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.20 ; op1:x28; dest:x10; op1val:-0x8000000000000000; immval:0x665 +TEST_R_OP( mop.r.20, x10, x28, 0, -0x8000000000000000, x3, 5*XLEN/8, x11) + +inst_6: +// rs1==x25, rd==x30, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.20 ; op1:x25; dest:x30; op1val:0x7fffffffffffffff; immval:0x3 +TEST_R_OP( mop.r.20, x30, x25, 0, 0x7fffffffffffffff, x3, 6*XLEN/8, x11) + +inst_7: +// rs1==x0, rd==x1, rs1_val == 0, +// opcode: mop.r.20 ; op1:x0; dest:x1; op1val:0x0; immval:-0x4 +TEST_R_OP( mop.r.20, x1, x0, 0, 0x0, x3, 7*XLEN/8, x11) + +inst_8: +// rs1==x18, rd==x14, rs1_val == 1, +// opcode: mop.r.20 ; op1:x18; dest:x14; op1val:0x1; immval:-0x7 +TEST_R_OP( mop.r.20, x14, x18, 0, 0x1, x3, 8*XLEN/8, x11) + +inst_9: +// rs1==x1, rd==x0, rs1_val == imm_val, +// opcode: mop.r.20 ; op1:x1; dest:x0; op1val:-0x6; immval:-0x6 +TEST_R_OP( mop.r.20, x0, x1, 0, -0x6, x3, 9*XLEN/8, x11) + +inst_10: +// rs1==x21, rd==x6, +// opcode: mop.r.20 ; op1:x21; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x6, x21, 0, 0x0, x3, 10*XLEN/8, x11) + +inst_11: +// rs1==x9, rd==x18, +// opcode: mop.r.20 ; op1:x9; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x18, x9, 0, 0x0, x3, 11*XLEN/8, x11) + +inst_12: +// rs1==x26, rd==x15, +// opcode: mop.r.20 ; op1:x26; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x15, x26, 0, 0x0, x3, 12*XLEN/8, x11) + +inst_13: +// rs1==x15, rd==x19, +// opcode: mop.r.20 ; op1:x15; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x19, x15, 0, 0x0, x3, 13*XLEN/8, x11) + +inst_14: +// rs1==x8, rd==x2, +// opcode: mop.r.20 ; op1:x8; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x2, x8, 0, 0x0, x3, 14*XLEN/8, x11) + +inst_15: +// rs1==x2, rd==x20, +// opcode: mop.r.20 ; op1:x2; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x20, x2, 0, 0x0, x3, 15*XLEN/8, x11) + +inst_16: +// rs1==x4, rd==x12, +// opcode: mop.r.20 ; op1:x4; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x12, x4, 0, 0x0, x3, 16*XLEN/8, x11) + +inst_17: +// rs1==x19, rd==x29, +// opcode: mop.r.20 ; op1:x19; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x29, x19, 0, 0x0, x3, 17*XLEN/8, x11) + +inst_18: +// rs1==x16, rd==x4, +// opcode: mop.r.20 ; op1:x16; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x4, x16, 0, 0x0, x3, 18*XLEN/8, x11) + +inst_19: +// rs1==x29, rd==x8, +// opcode: mop.r.20 ; op1:x29; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x8, x29, 0, 0x0, x3, 19*XLEN/8, x2) + +inst_20: +// rs1==x11, rd==x9, +// opcode: mop.r.20 ; op1:x11; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x9, x11, 0, 0x0, x3, 20*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_21: +// rs1==x30, rd==x3, +// opcode: mop.r.20 ; op1:x30; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x3, x30, 0, 0x0, x1, 0*XLEN/8, x2) + +inst_22: +// rs1==x3, rd==x24, +// opcode: mop.r.20 ; op1:x3; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x24, x3, 0, 0x0, x1, 1*XLEN/8, x2) + +inst_23: +// rs1==x27, rd==x13, +// opcode: mop.r.20 ; op1:x27; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x13, x27, 0, 0x0, x1, 2*XLEN/8, x2) + +inst_24: +// rs1==x13, rd==x22, +// opcode: mop.r.20 ; op1:x13; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x22, x13, 0, 0x0, x1, 3*XLEN/8, x2) + +inst_25: +// rs1==x20, rd==x11, +// opcode: mop.r.20 ; op1:x20; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x11, x20, 0, 0x0, x1, 4*XLEN/8, x2) + +inst_26: +// rs1==x7, rd==x28, +// opcode: mop.r.20 ; op1:x7; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x28, x7, 0, 0x0, x1, 5*XLEN/8, x2) + +inst_27: +// rs1==x14, rd==x31, +// opcode: mop.r.20 ; op1:x14; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x31, x14, 0, 0x0, x1, 6*XLEN/8, x2) + +inst_28: +// rs1==x24, rd==x16, +// opcode: mop.r.20 ; op1:x24; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x16, x24, 0, 0x0, x1, 7*XLEN/8, x2) + +inst_29: +// rs1==x6, rd==x23, +// opcode: mop.r.20 ; op1:x6; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x23, x6, 0, 0x0, x1, 8*XLEN/8, x2) + +inst_30: +// rs1==x22, rd==x26, +// opcode: mop.r.20 ; op1:x22; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x26, x22, 0, 0x0, x1, 9*XLEN/8, x2) + +inst_31: +// rs1==x12, rd==x17, +// opcode: mop.r.20 ; op1:x12; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.20, x17, x12, 0, 0x0, x1, 10*XLEN/8, x2) + +inst_32: +// rs1_val == imm_val, +// opcode: mop.r.20 ; op1:x30; dest:x31; op1val:-0x6; immval:-0x6 +TEST_R_OP( mop.r.20, x31, x30, 0, -0x6, x1, 11*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_x3_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 12*((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/Zimop/src/mop.r.21-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.21-01.S new file mode 100644 index 000000000..afb474535 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.21-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.21 instruction of the RISC-V RV64Zimop extension for the mop.r.21 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.21) + +RVTEST_SIGBASE(x12,signature_x12_1) + +inst_0: +// rs1 == rd, rs1==x5, rd==x5, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.21 ; op1:x5; dest:x5; op1val:-0x401; immval:-0x800 +TEST_R_OP( mop.r.21, x5, x5, 0, -0x401, x12, 0*XLEN/8, x11) + +inst_1: +// rs1 != rd, rs1==x29, rd==x8, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.21 ; op1:x29; dest:x8; op1val:0x200000000; immval:0x7ff +TEST_R_OP( mop.r.21, x8, x29, 0, 0x200000000, x12, 1*XLEN/8, x11) + +inst_2: +// rs1==x9, rd==x29, imm_val == 0, +// opcode: mop.r.21 ; op1:x9; dest:x29; op1val:-0x2000001; immval:0x0 +TEST_R_OP( mop.r.21, x29, x9, 0, -0x2000001, x12, 2*XLEN/8, x11) + +inst_3: +// rs1==x28, rd==x10, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.21 ; op1:x28; dest:x10; op1val:-0x100000000000001; immval:0x1 +TEST_R_OP( mop.r.21, x10, x28, 0, -0x100000000000001, x12, 3*XLEN/8, x11) + +inst_4: +// rs1==x25, rd==x18, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.21 ; op1:x25; dest:x18; op1val:-0x8000000000000000; immval:-0x555 +TEST_R_OP( mop.r.21, x18, x25, 0, -0x8000000000000000, x12, 4*XLEN/8, x11) + +inst_5: +// rs1==x30, rd==x17, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.21 ; op1:x30; dest:x17; op1val:0x7fffffffffffffff; immval:-0x11 +TEST_R_OP( mop.r.21, x17, x30, 0, 0x7fffffffffffffff, x12, 5*XLEN/8, x11) + +inst_6: +// rs1==x15, rd==x16, rs1_val == 0, +// opcode: mop.r.21 ; op1:x15; dest:x16; op1val:0x0; immval:0x80 +TEST_R_OP( mop.r.21, x16, x15, 0, 0x0, x12, 6*XLEN/8, x11) + +inst_7: +// rs1==x3, rd==x20, rs1_val == 1, +// opcode: mop.r.21 ; op1:x3; dest:x20; op1val:0x1; immval:-0x81 +TEST_R_OP( mop.r.21, x20, x3, 0, 0x1, x12, 7*XLEN/8, x11) + +inst_8: +// rs1==x27, rd==x4, rs1_val == imm_val, +// opcode: mop.r.21 ; op1:x27; dest:x4; op1val:-0x9; immval:-0x9 +TEST_R_OP( mop.r.21, x4, x27, 0, -0x9, x12, 8*XLEN/8, x11) + +inst_9: +// rs1==x2, rd==x3, +// opcode: mop.r.21 ; op1:x2; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x3, x2, 0, 0x0, x12, 9*XLEN/8, x11) + +inst_10: +// rs1==x31, rd==x23, +// opcode: mop.r.21 ; op1:x31; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x23, x31, 0, 0x0, x12, 10*XLEN/8, x11) + +inst_11: +// rs1==x1, rd==x30, +// opcode: mop.r.21 ; op1:x1; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x30, x1, 0, 0x0, x12, 11*XLEN/8, x11) + +inst_12: +// rs1==x14, rd==x9, +// opcode: mop.r.21 ; op1:x14; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x9, x14, 0, 0x0, x12, 12*XLEN/8, x11) + +inst_13: +// rs1==x6, rd==x25, +// opcode: mop.r.21 ; op1:x6; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x25, x6, 0, 0x0, x12, 13*XLEN/8, x11) + +inst_14: +// rs1==x24, rd==x1, +// opcode: mop.r.21 ; op1:x24; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x1, x24, 0, 0x0, x12, 14*XLEN/8, x11) + +inst_15: +// rs1==x16, rd==x14, +// opcode: mop.r.21 ; op1:x16; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x14, x16, 0, 0x0, x12, 15*XLEN/8, x11) + +inst_16: +// rs1==x21, rd==x22, +// opcode: mop.r.21 ; op1:x21; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x22, x21, 0, 0x0, x12, 16*XLEN/8, x11) + +inst_17: +// rs1==x8, rd==x7, +// opcode: mop.r.21 ; op1:x8; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x7, x8, 0, 0x0, x12, 17*XLEN/8, x11) + +inst_18: +// rs1==x22, rd==x31, +// opcode: mop.r.21 ; op1:x22; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x31, x22, 0, 0x0, x12, 18*XLEN/8, x3) + +inst_19: +// rs1==x11, rd==x26, +// opcode: mop.r.21 ; op1:x11; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x26, x11, 0, 0x0, x12, 19*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_20: +// rs1==x0, rd==x11, +// opcode: mop.r.21 ; op1:x0; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x11, x0, 0, 0x0, x1, 0*XLEN/8, x3) + +inst_21: +// rs1==x20, rd==x21, +// opcode: mop.r.21 ; op1:x20; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x21, x20, 0, 0x0, x1, 1*XLEN/8, x3) + +inst_22: +// rs1==x19, rd==x13, +// opcode: mop.r.21 ; op1:x19; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x13, x19, 0, 0x0, x1, 2*XLEN/8, x3) + +inst_23: +// rs1==x4, rd==x6, +// opcode: mop.r.21 ; op1:x4; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x6, x4, 0, 0x0, x1, 3*XLEN/8, x3) + +inst_24: +// rs1==x23, rd==x19, +// opcode: mop.r.21 ; op1:x23; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x19, x23, 0, 0x0, x1, 4*XLEN/8, x3) + +inst_25: +// rs1==x7, rd==x2, +// opcode: mop.r.21 ; op1:x7; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x2, x7, 0, 0x0, x1, 5*XLEN/8, x3) + +inst_26: +// rs1==x17, rd==x24, +// opcode: mop.r.21 ; op1:x17; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x24, x17, 0, 0x0, x1, 6*XLEN/8, x3) + +inst_27: +// rs1==x18, rd==x15, +// opcode: mop.r.21 ; op1:x18; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x15, x18, 0, 0x0, x1, 7*XLEN/8, x3) + +inst_28: +// rs1==x13, rd==x0, +// opcode: mop.r.21 ; op1:x13; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x0, x13, 0, 0x0, x1, 8*XLEN/8, x3) + +inst_29: +// rs1==x12, rd==x28, +// opcode: mop.r.21 ; op1:x12; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x28, x12, 0, 0x0, x1, 9*XLEN/8, x3) + +inst_30: +// rs1==x26, rd==x12, +// opcode: mop.r.21 ; op1:x26; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x12, x26, 0, 0x0, x1, 10*XLEN/8, x3) + +inst_31: +// rs1==x10, rd==x27, +// opcode: mop.r.21 ; op1:x10; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.21, x27, x10, 0, 0x0, x1, 11*XLEN/8, x3) +#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_x12_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x12_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 12*((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/Zimop/src/mop.r.22-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.22-01.S new file mode 100644 index 000000000..31b6fad6c --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.22-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.22 instruction of the RISC-V RV64Zimop extension for the mop.r.22 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.22) + +RVTEST_SIGBASE(x7,signature_x7_1) + +inst_0: +// rs1 == rd, rs1==x25, rd==x25, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.22 ; op1:x25; dest:x25; op1val:0x10000000; immval:-0x800 +TEST_R_OP( mop.r.22, x25, x25, 0, 0x10000000, x7, 0*XLEN/8, x15) + +inst_1: +// rs1 != rd, rs1==x31, rd==x18, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.22 ; op1:x31; dest:x18; op1val:-0x1000000001; immval:0x7ff +TEST_R_OP( mop.r.22, x18, x31, 0, -0x1000000001, x7, 1*XLEN/8, x15) + +inst_2: +// rs1==x13, rd==x3, imm_val == 0, +// opcode: mop.r.22 ; op1:x13; dest:x3; op1val:0x3333333333333333; immval:0x0 +TEST_R_OP( mop.r.22, x3, x13, 0, 0x3333333333333333, x7, 2*XLEN/8, x15) + +inst_3: +// rs1==x11, rd==x12, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.22 ; op1:x11; dest:x12; op1val:0x1000000000000; immval:0x1 +TEST_R_OP( mop.r.22, x12, x11, 0, 0x1000000000000, x7, 3*XLEN/8, x15) + +inst_4: +// rs1==x16, rd==x26, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.22 ; op1:x16; dest:x26; op1val:-0x5555555555555556; immval:-0x21 +TEST_R_OP( mop.r.22, x26, x16, 0, -0x5555555555555556, x7, 4*XLEN/8, x15) + +inst_5: +// rs1==x14, rd==x6, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.22 ; op1:x14; dest:x6; op1val:-0x8000000000000000; immval:-0x9 +TEST_R_OP( mop.r.22, x6, x14, 0, -0x8000000000000000, x7, 5*XLEN/8, x15) + +inst_6: +// rs1==x8, rd==x28, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.22 ; op1:x8; dest:x28; op1val:0x7fffffffffffffff; immval:0x10 +TEST_R_OP( mop.r.22, x28, x8, 0, 0x7fffffffffffffff, x7, 6*XLEN/8, x15) + +inst_7: +// rs1==x29, rd==x10, rs1_val == 0, +// opcode: mop.r.22 ; op1:x29; dest:x10; op1val:0x0; immval:0x667 +TEST_R_OP( mop.r.22, x10, x29, 0, 0x0, x7, 7*XLEN/8, x15) + +inst_8: +// rs1==x4, rd==x5, rs1_val == 1, +// opcode: mop.r.22 ; op1:x4; dest:x5; op1val:0x1; immval:0x4 +TEST_R_OP( mop.r.22, x5, x4, 0, 0x1, x7, 8*XLEN/8, x15) + +inst_9: +// rs1==x30, rd==x9, rs1_val == imm_val, +// opcode: mop.r.22 ; op1:x30; dest:x9; op1val:0x4; immval:0x4 +TEST_R_OP( mop.r.22, x9, x30, 0, 0x4, x7, 9*XLEN/8, x15) + +inst_10: +// rs1==x21, rd==x30, +// opcode: mop.r.22 ; op1:x21; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x30, x21, 0, 0x0, x7, 10*XLEN/8, x15) + +inst_11: +// rs1==x6, rd==x4, +// opcode: mop.r.22 ; op1:x6; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x4, x6, 0, 0x0, x7, 11*XLEN/8, x15) + +inst_12: +// rs1==x10, rd==x21, +// opcode: mop.r.22 ; op1:x10; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x21, x10, 0, 0x0, x7, 12*XLEN/8, x15) + +inst_13: +// rs1==x1, rd==x14, +// opcode: mop.r.22 ; op1:x1; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x14, x1, 0, 0x0, x7, 13*XLEN/8, x15) + +inst_14: +// rs1==x2, rd==x11, +// opcode: mop.r.22 ; op1:x2; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x11, x2, 0, 0x0, x7, 14*XLEN/8, x15) + +inst_15: +// rs1==x9, rd==x23, +// opcode: mop.r.22 ; op1:x9; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x23, x9, 0, 0x0, x7, 15*XLEN/8, x15) + +inst_16: +// rs1==x26, rd==x16, +// opcode: mop.r.22 ; op1:x26; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x16, x26, 0, 0x0, x7, 16*XLEN/8, x15) + +inst_17: +// rs1==x3, rd==x20, +// opcode: mop.r.22 ; op1:x3; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x20, x3, 0, 0x0, x7, 17*XLEN/8, x15) + +inst_18: +// rs1==x12, rd==x24, +// opcode: mop.r.22 ; op1:x12; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x24, x12, 0, 0x0, x7, 18*XLEN/8, x15) + +inst_19: +// rs1==x28, rd==x19, +// opcode: mop.r.22 ; op1:x28; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x19, x28, 0, 0x0, x7, 19*XLEN/8, x15) + +inst_20: +// rs1==x0, rd==x15, +// opcode: mop.r.22 ; op1:x0; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x15, x0, 0, 0x0, x7, 20*XLEN/8, x4) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_21: +// rs1==x23, rd==x31, +// opcode: mop.r.22 ; op1:x23; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x31, x23, 0, 0x0, x3, 0*XLEN/8, x4) + +inst_22: +// rs1==x20, rd==x22, +// opcode: mop.r.22 ; op1:x20; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x22, x20, 0, 0x0, x3, 1*XLEN/8, x4) + +inst_23: +// rs1==x17, rd==x27, +// opcode: mop.r.22 ; op1:x17; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x27, x17, 0, 0x0, x3, 2*XLEN/8, x4) + +inst_24: +// rs1==x15, rd==x2, +// opcode: mop.r.22 ; op1:x15; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x2, x15, 0, 0x0, x3, 3*XLEN/8, x4) + +inst_25: +// rs1==x27, rd==x0, +// opcode: mop.r.22 ; op1:x27; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x0, x27, 0, 0x0, x3, 4*XLEN/8, x4) + +inst_26: +// rs1==x19, rd==x13, +// opcode: mop.r.22 ; op1:x19; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x13, x19, 0, 0x0, x3, 5*XLEN/8, x4) + +inst_27: +// rs1==x18, rd==x7, +// opcode: mop.r.22 ; op1:x18; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x7, x18, 0, 0x0, x3, 6*XLEN/8, x4) + +inst_28: +// rs1==x7, rd==x29, +// opcode: mop.r.22 ; op1:x7; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x29, x7, 0, 0x0, x3, 7*XLEN/8, x4) + +inst_29: +// rs1==x5, rd==x17, +// opcode: mop.r.22 ; op1:x5; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x17, x5, 0, 0x0, x3, 8*XLEN/8, x4) + +inst_30: +// rs1==x22, rd==x8, +// opcode: mop.r.22 ; op1:x22; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x8, x22, 0, 0x0, x3, 9*XLEN/8, x4) + +inst_31: +// rs1==x24, rd==x1, +// opcode: mop.r.22 ; op1:x24; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.22, x1, x24, 0, 0x0, x3, 10*XLEN/8, x4) +#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_x7_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_1: + .fill 21*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 11*((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/Zimop/src/mop.r.23-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.23-01.S new file mode 100644 index 000000000..2d17b449d --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.23-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.23 instruction of the RISC-V RV64Zimop extension for the mop.r.23 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.23) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x4, rd==x4, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.23 ; op1:x4; dest:x4; op1val:0x800000000000000; immval:-0x800 +TEST_R_OP( mop.r.23, x4, x4, 0, 0x800000000000000, x2, 0*XLEN/8, x6) + +inst_1: +// rs1 != rd, rs1==x7, rd==x17, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.23 ; op1:x7; dest:x17; op1val:0x400000000000; immval:0x7ff +TEST_R_OP( mop.r.23, x17, x7, 0, 0x400000000000, x2, 1*XLEN/8, x6) + +inst_2: +// rs1==x9, rd==x28, imm_val == 0, +// opcode: mop.r.23 ; op1:x9; dest:x28; op1val:-0xb504f332; immval:0x0 +TEST_R_OP( mop.r.23, x28, x9, 0, -0xb504f332, x2, 2*XLEN/8, x6) + +inst_3: +// rs1==x26, rd==x1, imm_val == 1, +// opcode: mop.r.23 ; op1:x26; dest:x1; op1val:0x400000; immval:0x1 +TEST_R_OP( mop.r.23, x1, x26, 0, 0x400000, x2, 3*XLEN/8, x6) + +inst_4: +// rs1==x24, rd==x23, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.23 ; op1:x24; dest:x23; op1val:-0x80000001; immval:-0x800 +TEST_R_OP( mop.r.23, x23, x24, 0, -0x80000001, x2, 4*XLEN/8, x6) + +inst_5: +// rs1==x5, rd==x30, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.23 ; op1:x5; dest:x30; op1val:-0x41; immval:0x333 +TEST_R_OP( mop.r.23, x30, x5, 0, -0x41, x2, 5*XLEN/8, x6) + +inst_6: +// rs1==x10, rd==x5, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.23 ; op1:x10; dest:x5; op1val:-0x8000000000000000; immval:0x666 +TEST_R_OP( mop.r.23, x5, x10, 0, -0x8000000000000000, x2, 6*XLEN/8, x6) + +inst_7: +// rs1==x3, rd==x18, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.23 ; op1:x3; dest:x18; op1val:0x7fffffffffffffff; immval:-0x41 +TEST_R_OP( mop.r.23, x18, x3, 0, 0x7fffffffffffffff, x2, 7*XLEN/8, x6) + +inst_8: +// rs1==x12, rd==x0, rs1_val == 0, +// opcode: mop.r.23 ; op1:x12; dest:x0; op1val:0x0; immval:0x4 +TEST_R_OP( mop.r.23, x0, x12, 0, 0x0, x2, 8*XLEN/8, x6) + +inst_9: +// rs1==x13, rd==x20, rs1_val == 1, +// opcode: mop.r.23 ; op1:x13; dest:x20; op1val:0x1; immval:-0x400 +TEST_R_OP( mop.r.23, x20, x13, 0, 0x1, x2, 9*XLEN/8, x6) + +inst_10: +// rs1==x16, rd==x21, rs1_val == imm_val, +// opcode: mop.r.23 ; op1:x16; dest:x21; op1val:-0x201; immval:-0x201 +TEST_R_OP( mop.r.23, x21, x16, 0, -0x201, x2, 10*XLEN/8, x6) + +inst_11: +// rs1==x0, rd==x29, +// opcode: mop.r.23 ; op1:x0; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x29, x0, 0, 0x0, x2, 11*XLEN/8, x6) + +inst_12: +// rs1==x15, rd==x9, +// opcode: mop.r.23 ; op1:x15; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x9, x15, 0, 0x0, x2, 12*XLEN/8, x6) + +inst_13: +// rs1==x21, rd==x19, +// opcode: mop.r.23 ; op1:x21; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x19, x21, 0, 0x0, x2, 13*XLEN/8, x6) + +inst_14: +// rs1==x20, rd==x14, +// opcode: mop.r.23 ; op1:x20; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x14, x20, 0, 0x0, x2, 14*XLEN/8, x6) + +inst_15: +// rs1==x22, rd==x11, +// opcode: mop.r.23 ; op1:x22; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x11, x22, 0, 0x0, x2, 15*XLEN/8, x6) + +inst_16: +// rs1==x8, rd==x7, +// opcode: mop.r.23 ; op1:x8; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x7, x8, 0, 0x0, x2, 16*XLEN/8, x6) + +inst_17: +// rs1==x27, rd==x15, +// opcode: mop.r.23 ; op1:x27; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x15, x27, 0, 0x0, x2, 17*XLEN/8, x5) +RVTEST_SIGBASE(x4,signature_x4_0) + +inst_18: +// rs1==x28, rd==x3, +// opcode: mop.r.23 ; op1:x28; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x3, x28, 0, 0x0, x4, 0*XLEN/8, x5) + +inst_19: +// rs1==x14, rd==x6, +// opcode: mop.r.23 ; op1:x14; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x6, x14, 0, 0x0, x4, 1*XLEN/8, x5) + +inst_20: +// rs1==x25, rd==x13, +// opcode: mop.r.23 ; op1:x25; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x13, x25, 0, 0x0, x4, 2*XLEN/8, x5) + +inst_21: +// rs1==x29, rd==x8, +// opcode: mop.r.23 ; op1:x29; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x8, x29, 0, 0x0, x4, 3*XLEN/8, x5) + +inst_22: +// rs1==x6, rd==x27, +// opcode: mop.r.23 ; op1:x6; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x27, x6, 0, 0x0, x4, 4*XLEN/8, x5) + +inst_23: +// rs1==x18, rd==x22, +// opcode: mop.r.23 ; op1:x18; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x22, x18, 0, 0x0, x4, 5*XLEN/8, x5) + +inst_24: +// rs1==x2, rd==x24, +// opcode: mop.r.23 ; op1:x2; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x24, x2, 0, 0x0, x4, 6*XLEN/8, x5) + +inst_25: +// rs1==x19, rd==x12, +// opcode: mop.r.23 ; op1:x19; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x12, x19, 0, 0x0, x4, 7*XLEN/8, x5) + +inst_26: +// rs1==x30, rd==x26, +// opcode: mop.r.23 ; op1:x30; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x26, x30, 0, 0x0, x4, 8*XLEN/8, x5) + +inst_27: +// rs1==x17, rd==x10, +// opcode: mop.r.23 ; op1:x17; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x10, x17, 0, 0x0, x4, 9*XLEN/8, x5) + +inst_28: +// rs1==x1, rd==x25, +// opcode: mop.r.23 ; op1:x1; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x25, x1, 0, 0x0, x4, 10*XLEN/8, x5) + +inst_29: +// rs1==x11, rd==x16, +// opcode: mop.r.23 ; op1:x11; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x16, x11, 0, 0x0, x4, 11*XLEN/8, x5) + +inst_30: +// rs1==x31, rd==x2, +// opcode: mop.r.23 ; op1:x31; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x2, x31, 0, 0x0, x4, 12*XLEN/8, x5) + +inst_31: +// rs1==x23, rd==x31, +// opcode: mop.r.23 ; op1:x23; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.23, x31, x23, 0, 0x0, x4, 13*XLEN/8, x5) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_0: + .fill 14*((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/Zimop/src/mop.r.24-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.24-01.S new file mode 100644 index 000000000..49288559f --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.24-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.24 instruction of the RISC-V RV64Zimop extension for the mop.r.24 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.24) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rs1==x17, rd==x17, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.24 ; op1:x17; dest:x17; op1val:-0x200000000001; immval:-0x800 +TEST_R_OP( mop.r.24, x17, x17, 0, -0x200000000001, x1, 0*XLEN/8, x19) + +inst_1: +// rs1 != rd, rs1==x11, rd==x22, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.24 ; op1:x11; dest:x22; op1val:-0x80000000000001; immval:0x7ff +TEST_R_OP( mop.r.24, x22, x11, 0, -0x80000000000001, x1, 1*XLEN/8, x19) + +inst_2: +// rs1==x4, rd==x5, imm_val == 0, +// opcode: mop.r.24 ; op1:x4; dest:x5; op1val:0x80000000000; immval:0x0 +TEST_R_OP( mop.r.24, x5, x4, 0, 0x80000000000, x1, 2*XLEN/8, x19) + +inst_3: +// rs1==x6, rd==x13, imm_val == 1, +// opcode: mop.r.24 ; op1:x6; dest:x13; op1val:-0x80000001; immval:0x1 +TEST_R_OP( mop.r.24, x13, x6, 0, -0x80000001, x1, 3*XLEN/8, x19) + +inst_4: +// rs1==x15, rd==x25, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.24 ; op1:x15; dest:x25; op1val:-0x8000000000000000; immval:0x100 +TEST_R_OP( mop.r.24, x25, x15, 0, -0x8000000000000000, x1, 4*XLEN/8, x19) + +inst_5: +// rs1==x7, rd==x26, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.24 ; op1:x7; dest:x26; op1val:0x7fffffffffffffff; immval:0x4 +TEST_R_OP( mop.r.24, x26, x7, 0, 0x7fffffffffffffff, x1, 5*XLEN/8, x19) + +inst_6: +// rs1==x13, rd==x30, rs1_val == 0, +// opcode: mop.r.24 ; op1:x13; dest:x30; op1val:0x0; immval:0x3ff +TEST_R_OP( mop.r.24, x30, x13, 0, 0x0, x1, 6*XLEN/8, x19) + +inst_7: +// rs1==x26, rd==x3, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.24 ; op1:x26; dest:x3; op1val:0x1; immval:-0x3 +TEST_R_OP( mop.r.24, x3, x26, 0, 0x1, x1, 7*XLEN/8, x19) + +inst_8: +// rs1==x30, rd==x18, rs1_val == imm_val, +// opcode: mop.r.24 ; op1:x30; dest:x18; op1val:-0x9; immval:-0x9 +TEST_R_OP( mop.r.24, x18, x30, 0, -0x9, x1, 8*XLEN/8, x19) + +inst_9: +// rs1==x12, rd==x23, +// opcode: mop.r.24 ; op1:x12; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x23, x12, 0, 0x0, x1, 9*XLEN/8, x19) + +inst_10: +// rs1==x9, rd==x11, +// opcode: mop.r.24 ; op1:x9; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x11, x9, 0, 0x0, x1, 10*XLEN/8, x19) + +inst_11: +// rs1==x28, rd==x29, +// opcode: mop.r.24 ; op1:x28; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x29, x28, 0, 0x0, x1, 11*XLEN/8, x19) + +inst_12: +// rs1==x2, rd==x12, +// opcode: mop.r.24 ; op1:x2; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x12, x2, 0, 0x0, x1, 12*XLEN/8, x19) + +inst_13: +// rs1==x3, rd==x7, +// opcode: mop.r.24 ; op1:x3; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x7, x3, 0, 0x0, x1, 13*XLEN/8, x19) + +inst_14: +// rs1==x16, rd==x14, +// opcode: mop.r.24 ; op1:x16; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x14, x16, 0, 0x0, x1, 14*XLEN/8, x19) + +inst_15: +// rs1==x8, rd==x21, +// opcode: mop.r.24 ; op1:x8; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x21, x8, 0, 0x0, x1, 15*XLEN/8, x19) + +inst_16: +// rs1==x23, rd==x31, +// opcode: mop.r.24 ; op1:x23; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x31, x23, 0, 0x0, x1, 16*XLEN/8, x19) + +inst_17: +// rs1==x22, rd==x10, +// opcode: mop.r.24 ; op1:x22; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x10, x22, 0, 0x0, x1, 17*XLEN/8, x19) + +inst_18: +// rs1==x20, rd==x8, +// opcode: mop.r.24 ; op1:x20; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x8, x20, 0, 0x0, x1, 18*XLEN/8, x7) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_19: +// rs1==x19, rd==x15, +// opcode: mop.r.24 ; op1:x19; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x15, x19, 0, 0x0, x3, 0*XLEN/8, x7) + +inst_20: +// rs1==x14, rd==x20, +// opcode: mop.r.24 ; op1:x14; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x20, x14, 0, 0x0, x3, 1*XLEN/8, x7) + +inst_21: +// rs1==x10, rd==x19, +// opcode: mop.r.24 ; op1:x10; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x19, x10, 0, 0x0, x3, 2*XLEN/8, x7) + +inst_22: +// rs1==x24, rd==x1, +// opcode: mop.r.24 ; op1:x24; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x1, x24, 0, 0x0, x3, 3*XLEN/8, x7) + +inst_23: +// rs1==x25, rd==x0, +// opcode: mop.r.24 ; op1:x25; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x0, x25, 0, 0x0, x3, 4*XLEN/8, x7) + +inst_24: +// rs1==x27, rd==x24, +// opcode: mop.r.24 ; op1:x27; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x24, x27, 0, 0x0, x3, 5*XLEN/8, x7) + +inst_25: +// rs1==x29, rd==x27, +// opcode: mop.r.24 ; op1:x29; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x27, x29, 0, 0x0, x3, 6*XLEN/8, x7) + +inst_26: +// rs1==x0, rd==x9, +// opcode: mop.r.24 ; op1:x0; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x9, x0, 0, 0x0, x3, 7*XLEN/8, x7) + +inst_27: +// rs1==x18, rd==x4, +// opcode: mop.r.24 ; op1:x18; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x4, x18, 0, 0x0, x3, 8*XLEN/8, x7) + +inst_28: +// rs1==x5, rd==x6, +// opcode: mop.r.24 ; op1:x5; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x6, x5, 0, 0x0, x3, 9*XLEN/8, x7) + +inst_29: +// rs1==x1, rd==x28, +// opcode: mop.r.24 ; op1:x1; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x28, x1, 0, 0x0, x3, 10*XLEN/8, x7) + +inst_30: +// rs1==x21, rd==x2, +// opcode: mop.r.24 ; op1:x21; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x2, x21, 0, 0x0, x3, 11*XLEN/8, x7) + +inst_31: +// rs1==x31, rd==x16, +// opcode: mop.r.24 ; op1:x31; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.24, x16, x31, 0, 0x0, x3, 12*XLEN/8, x7) +#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 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 13*((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/Zimop/src/mop.r.25-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.25-01.S new file mode 100644 index 000000000..28fa22de2 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.25-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.25 instruction of the RISC-V RV64Zimop extension for the mop.r.25 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.25) + +RVTEST_SIGBASE(x9,signature_x9_1) + +inst_0: +// rs1 == rd, rs1==x19, rd==x19, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.25 ; op1:x19; dest:x19; op1val:-0x4001; immval:-0x800 +TEST_R_OP( mop.r.25, x19, x19, 0, -0x4001, x9, 0*XLEN/8, x11) + +inst_1: +// rs1 != rd, rs1==x12, rd==x23, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.25 ; op1:x12; dest:x23; op1val:-0x5555555555555555; immval:0x7ff +TEST_R_OP( mop.r.25, x23, x12, 0, -0x5555555555555555, x9, 1*XLEN/8, x11) + +inst_2: +// rs1==x13, rd==x29, imm_val == 0, +// opcode: mop.r.25 ; op1:x13; dest:x29; op1val:-0xa; immval:0x0 +TEST_R_OP( mop.r.25, x29, x13, 0, -0xa, x9, 2*XLEN/8, x11) + +inst_3: +// rs1==x26, rd==x30, imm_val == 1, +// opcode: mop.r.25 ; op1:x26; dest:x30; op1val:-0x40000000001; immval:0x1 +TEST_R_OP( mop.r.25, x30, x26, 0, -0x40000000001, x9, 3*XLEN/8, x11) + +inst_4: +// rs1==x10, rd==x1, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.25 ; op1:x10; dest:x1; op1val:-0x8000000000000000; immval:0x2d +TEST_R_OP( mop.r.25, x1, x10, 0, -0x8000000000000000, x9, 4*XLEN/8, x11) + +inst_5: +// rs1==x14, rd==x3, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.25 ; op1:x14; dest:x3; op1val:0x7fffffffffffffff; immval:0x5 +TEST_R_OP( mop.r.25, x3, x14, 0, 0x7fffffffffffffff, x9, 5*XLEN/8, x11) + +inst_6: +// rs1==x18, rd==x6, rs1_val == 0, +// opcode: mop.r.25 ; op1:x18; dest:x6; op1val:0x0; immval:0x667 +TEST_R_OP( mop.r.25, x6, x18, 0, 0x0, x9, 6*XLEN/8, x11) + +inst_7: +// rs1==x29, rd==x22, rs1_val == 1, +// opcode: mop.r.25 ; op1:x29; dest:x22; op1val:0x1; immval:0x556 +TEST_R_OP( mop.r.25, x22, x29, 0, 0x1, x9, 7*XLEN/8, x11) + +inst_8: +// rs1==x5, rd==x16, rs1_val == imm_val, +// opcode: mop.r.25 ; op1:x5; dest:x16; op1val:0x200; immval:0x200 +TEST_R_OP( mop.r.25, x16, x5, 0, 0x200, x9, 8*XLEN/8, x11) + +inst_9: +// rs1==x1, rd==x12, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.25 ; op1:x1; dest:x12; op1val:0x6666666666666667; immval:-0x2d +TEST_R_OP( mop.r.25, x12, x1, 0, 0x6666666666666667, x9, 9*XLEN/8, x11) + +inst_10: +// rs1==x8, rd==x25, +// opcode: mop.r.25 ; op1:x8; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x25, x8, 0, 0x0, x9, 10*XLEN/8, x11) + +inst_11: +// rs1==x21, rd==x24, +// opcode: mop.r.25 ; op1:x21; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x24, x21, 0, 0x0, x9, 11*XLEN/8, x11) + +inst_12: +// rs1==x24, rd==x31, +// opcode: mop.r.25 ; op1:x24; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x31, x24, 0, 0x0, x9, 12*XLEN/8, x11) + +inst_13: +// rs1==x17, rd==x14, +// opcode: mop.r.25 ; op1:x17; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x14, x17, 0, 0x0, x9, 13*XLEN/8, x11) + +inst_14: +// rs1==x27, rd==x26, +// opcode: mop.r.25 ; op1:x27; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x26, x27, 0, 0x0, x9, 14*XLEN/8, x11) + +inst_15: +// rs1==x2, rd==x21, +// opcode: mop.r.25 ; op1:x2; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x21, x2, 0, 0x0, x9, 15*XLEN/8, x11) + +inst_16: +// rs1==x6, rd==x15, +// opcode: mop.r.25 ; op1:x6; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x15, x6, 0, 0x0, x9, 16*XLEN/8, x11) + +inst_17: +// rs1==x4, rd==x7, +// opcode: mop.r.25 ; op1:x4; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x7, x4, 0, 0x0, x9, 17*XLEN/8, x11) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_18: +// rs1==x22, rd==x9, +// opcode: mop.r.25 ; op1:x22; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x9, x22, 0, 0x0, x1, 0*XLEN/8, x6) + +inst_19: +// rs1==x28, rd==x27, +// opcode: mop.r.25 ; op1:x28; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x27, x28, 0, 0x0, x1, 1*XLEN/8, x6) + +inst_20: +// rs1==x9, rd==x13, +// opcode: mop.r.25 ; op1:x9; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x13, x9, 0, 0x0, x1, 2*XLEN/8, x6) + +inst_21: +// rs1==x30, rd==x0, +// opcode: mop.r.25 ; op1:x30; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x0, x30, 0, 0x0, x1, 3*XLEN/8, x6) + +inst_22: +// rs1==x16, rd==x20, +// opcode: mop.r.25 ; op1:x16; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x20, x16, 0, 0x0, x1, 4*XLEN/8, x6) + +inst_23: +// rs1==x20, rd==x8, +// opcode: mop.r.25 ; op1:x20; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x8, x20, 0, 0x0, x1, 5*XLEN/8, x6) + +inst_24: +// rs1==x11, rd==x18, +// opcode: mop.r.25 ; op1:x11; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x18, x11, 0, 0x0, x1, 6*XLEN/8, x6) + +inst_25: +// rs1==x7, rd==x2, +// opcode: mop.r.25 ; op1:x7; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x2, x7, 0, 0x0, x1, 7*XLEN/8, x6) + +inst_26: +// rs1==x0, rd==x10, +// opcode: mop.r.25 ; op1:x0; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x10, x0, 0, 0x0, x1, 8*XLEN/8, x6) + +inst_27: +// rs1==x3, rd==x11, +// opcode: mop.r.25 ; op1:x3; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x11, x3, 0, 0x0, x1, 9*XLEN/8, x6) + +inst_28: +// rs1==x23, rd==x4, +// opcode: mop.r.25 ; op1:x23; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x4, x23, 0, 0x0, x1, 10*XLEN/8, x6) + +inst_29: +// rs1==x31, rd==x28, +// opcode: mop.r.25 ; op1:x31; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x28, x31, 0, 0x0, x1, 11*XLEN/8, x6) + +inst_30: +// rs1==x25, rd==x5, +// opcode: mop.r.25 ; op1:x25; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x5, x25, 0, 0x0, x1, 12*XLEN/8, x6) + +inst_31: +// rs1==x15, rd==x17, +// opcode: mop.r.25 ; op1:x15; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.25, x17, x15, 0, 0x0, x1, 13*XLEN/8, x6) +#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_x9_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x9_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 14*((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/Zimop/src/mop.r.26-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.26-01.S new file mode 100644 index 000000000..2fcf923dc --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.26-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.26 instruction of the RISC-V RV64Zimop extension for the mop.r.26 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.26) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x30, rd==x30, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.26 ; op1:x30; dest:x30; op1val:-0x40001; immval:-0x800 +TEST_R_OP( mop.r.26, x30, x30, 0, -0x40001, x2, 0*XLEN/8, x3) + +inst_1: +// rs1 != rd, rs1==x1, rd==x4, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.26 ; op1:x1; dest:x4; op1val:0x800000; immval:0x7ff +TEST_R_OP( mop.r.26, x4, x1, 0, 0x800000, x2, 1*XLEN/8, x3) + +inst_2: +// rs1==x9, rd==x6, imm_val == 0, +// opcode: mop.r.26 ; op1:x9; dest:x6; op1val:-0x10000000000001; immval:0x0 +TEST_R_OP( mop.r.26, x6, x9, 0, -0x10000000000001, x2, 2*XLEN/8, x3) + +inst_3: +// rs1==x13, rd==x27, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.26 ; op1:x13; dest:x27; op1val:-0xb504f332; immval:0x1 +TEST_R_OP( mop.r.26, x27, x13, 0, -0xb504f332, x2, 3*XLEN/8, x3) + +inst_4: +// rs1==x20, rd==x25, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.26 ; op1:x20; dest:x25; op1val:-0x8000000000000000; immval:0x665 +TEST_R_OP( mop.r.26, x25, x20, 0, -0x8000000000000000, x2, 4*XLEN/8, x3) + +inst_5: +// rs1==x12, rd==x16, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.26 ; op1:x12; dest:x16; op1val:0x7fffffffffffffff; immval:0x332 +TEST_R_OP( mop.r.26, x16, x12, 0, 0x7fffffffffffffff, x2, 5*XLEN/8, x3) + +inst_6: +// rs1==x28, rd==x15, rs1_val == 0, +// opcode: mop.r.26 ; op1:x28; dest:x15; op1val:0x0; immval:-0x556 +TEST_R_OP( mop.r.26, x15, x28, 0, 0x0, x2, 6*XLEN/8, x3) + +inst_7: +// rs1==x22, rd==x29, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.26 ; op1:x22; dest:x29; op1val:0x1; immval:-0x81 +TEST_R_OP( mop.r.26, x29, x22, 0, 0x1, x2, 7*XLEN/8, x3) + +inst_8: +// rs1==x11, rd==x1, rs1_val == imm_val, +// opcode: mop.r.26 ; op1:x11; dest:x1; op1val:-0x401; immval:-0x401 +TEST_R_OP( mop.r.26, x1, x11, 0, -0x401, x2, 8*XLEN/8, x3) + +inst_9: +// rs1==x16, rd==x21, +// opcode: mop.r.26 ; op1:x16; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x21, x16, 0, 0x0, x2, 9*XLEN/8, x3) + +inst_10: +// rs1==x7, rd==x24, +// opcode: mop.r.26 ; op1:x7; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x24, x7, 0, 0x0, x2, 10*XLEN/8, x3) + +inst_11: +// rs1==x15, rd==x31, +// opcode: mop.r.26 ; op1:x15; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x31, x15, 0, 0x0, x2, 11*XLEN/8, x3) + +inst_12: +// rs1==x0, rd==x26, +// opcode: mop.r.26 ; op1:x0; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x26, x0, 0, 0x0, x2, 12*XLEN/8, x3) + +inst_13: +// rs1==x10, rd==x0, +// opcode: mop.r.26 ; op1:x10; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x0, x10, 0, 0x0, x2, 13*XLEN/8, x3) + +inst_14: +// rs1==x8, rd==x7, +// opcode: mop.r.26 ; op1:x8; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x7, x8, 0, 0x0, x2, 14*XLEN/8, x3) + +inst_15: +// rs1==x4, rd==x28, +// opcode: mop.r.26 ; op1:x4; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x28, x4, 0, 0x0, x2, 15*XLEN/8, x3) + +inst_16: +// rs1==x25, rd==x19, +// opcode: mop.r.26 ; op1:x25; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x19, x25, 0, 0x0, x2, 16*XLEN/8, x3) + +inst_17: +// rs1==x19, rd==x13, +// opcode: mop.r.26 ; op1:x19; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x13, x19, 0, 0x0, x2, 17*XLEN/8, x3) + +inst_18: +// rs1==x6, rd==x10, +// opcode: mop.r.26 ; op1:x6; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x10, x6, 0, 0x0, x2, 18*XLEN/8, x3) + +inst_19: +// rs1==x18, rd==x11, +// opcode: mop.r.26 ; op1:x18; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x11, x18, 0, 0x0, x2, 19*XLEN/8, x3) + +inst_20: +// rs1==x17, rd==x8, +// opcode: mop.r.26 ; op1:x17; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x8, x17, 0, 0x0, x2, 20*XLEN/8, x3) + +inst_21: +// rs1==x26, rd==x20, +// opcode: mop.r.26 ; op1:x26; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x20, x26, 0, 0x0, x2, 21*XLEN/8, x4) + +inst_22: +// rs1==x27, rd==x23, +// opcode: mop.r.26 ; op1:x27; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x23, x27, 0, 0x0, x2, 22*XLEN/8, x4) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_23: +// rs1==x21, rd==x9, +// opcode: mop.r.26 ; op1:x21; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x9, x21, 0, 0x0, x1, 0*XLEN/8, x4) + +inst_24: +// rs1==x5, rd==x17, +// opcode: mop.r.26 ; op1:x5; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x17, x5, 0, 0x0, x1, 1*XLEN/8, x4) + +inst_25: +// rs1==x24, rd==x5, +// opcode: mop.r.26 ; op1:x24; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x5, x24, 0, 0x0, x1, 2*XLEN/8, x4) + +inst_26: +// rs1==x31, rd==x12, +// opcode: mop.r.26 ; op1:x31; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x12, x31, 0, 0x0, x1, 3*XLEN/8, x4) + +inst_27: +// rs1==x14, rd==x3, +// opcode: mop.r.26 ; op1:x14; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x3, x14, 0, 0x0, x1, 4*XLEN/8, x4) + +inst_28: +// rs1==x2, rd==x22, +// opcode: mop.r.26 ; op1:x2; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x22, x2, 0, 0x0, x1, 5*XLEN/8, x4) + +inst_29: +// rs1==x29, rd==x2, +// opcode: mop.r.26 ; op1:x29; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x2, x29, 0, 0x0, x1, 6*XLEN/8, x4) + +inst_30: +// rs1==x3, rd==x18, +// opcode: mop.r.26 ; op1:x3; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x18, x3, 0, 0x0, x1, 7*XLEN/8, x4) + +inst_31: +// rs1==x23, rd==x14, +// opcode: mop.r.26 ; op1:x23; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.26, x14, x23, 0, 0x0, x1, 8*XLEN/8, x4) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 23*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .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/Zimop/src/mop.r.27-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.27-01.S new file mode 100644 index 000000000..e71eddd1f --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.27-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.27 instruction of the RISC-V RV64Zimop extension for the mop.r.27 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.27) + +RVTEST_SIGBASE(x21,signature_x21_1) + +inst_0: +// rs1 == rd, rs1==x20, rd==x20, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.27 ; op1:x20; dest:x20; op1val:0x8000000000; immval:-0x800 +TEST_R_OP( mop.r.27, x20, x20, 0, 0x8000000000, x21, 0*XLEN/8, x14) + +inst_1: +// rs1 != rd, rs1==x25, rd==x31, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.27 ; op1:x25; dest:x31; op1val:0x1000000000000000; immval:0x7ff +TEST_R_OP( mop.r.27, x31, x25, 0, 0x1000000000000000, x21, 1*XLEN/8, x14) + +inst_2: +// rs1==x28, rd==x7, imm_val == 0, +// opcode: mop.r.27 ; op1:x28; dest:x7; op1val:-0x40001; immval:0x0 +TEST_R_OP( mop.r.27, x7, x28, 0, -0x40001, x21, 2*XLEN/8, x14) + +inst_3: +// rs1==x17, rd==x5, imm_val == 1, +// opcode: mop.r.27 ; op1:x17; dest:x5; op1val:0x4000000000; immval:0x1 +TEST_R_OP( mop.r.27, x5, x17, 0, 0x4000000000, x21, 3*XLEN/8, x14) + +inst_4: +// rs1==x22, rd==x2, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.27 ; op1:x22; dest:x2; op1val:-0x10001; immval:-0x401 +TEST_R_OP( mop.r.27, x2, x22, 0, -0x10001, x21, 4*XLEN/8, x14) + +inst_5: +// rs1==x30, rd==x22, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.27 ; op1:x30; dest:x22; op1val:-0x400001; immval:0x667 +TEST_R_OP( mop.r.27, x22, x30, 0, -0x400001, x21, 5*XLEN/8, x14) + +inst_6: +// rs1==x29, rd==x4, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.27 ; op1:x29; dest:x4; op1val:-0x8000000000000000; immval:0x8 +TEST_R_OP( mop.r.27, x4, x29, 0, -0x8000000000000000, x21, 6*XLEN/8, x14) + +inst_7: +// rs1==x18, rd==x29, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.27 ; op1:x18; dest:x29; op1val:0x7fffffffffffffff; immval:0x100 +TEST_R_OP( mop.r.27, x29, x18, 0, 0x7fffffffffffffff, x21, 7*XLEN/8, x14) + +inst_8: +// rs1==x15, rd==x3, rs1_val == 0, +// opcode: mop.r.27 ; op1:x15; dest:x3; op1val:0x0; immval:0x10 +TEST_R_OP( mop.r.27, x3, x15, 0, 0x0, x21, 8*XLEN/8, x14) + +inst_9: +// rs1==x6, rd==x11, rs1_val == 1, +// opcode: mop.r.27 ; op1:x6; dest:x11; op1val:0x1; immval:0x40 +TEST_R_OP( mop.r.27, x11, x6, 0, 0x1, x21, 9*XLEN/8, x14) + +inst_10: +// rs1==x12, rd==x28, rs1_val == imm_val, +// opcode: mop.r.27 ; op1:x12; dest:x28; op1val:0x6; immval:0x6 +TEST_R_OP( mop.r.27, x28, x12, 0, 0x6, x21, 10*XLEN/8, x14) + +inst_11: +// rs1==x3, rd==x18, +// opcode: mop.r.27 ; op1:x3; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x18, x3, 0, 0x0, x21, 11*XLEN/8, x14) + +inst_12: +// rs1==x23, rd==x9, +// opcode: mop.r.27 ; op1:x23; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x9, x23, 0, 0x0, x21, 12*XLEN/8, x14) + +inst_13: +// rs1==x5, rd==x8, +// opcode: mop.r.27 ; op1:x5; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x8, x5, 0, 0x0, x21, 13*XLEN/8, x14) + +inst_14: +// rs1==x19, rd==x1, +// opcode: mop.r.27 ; op1:x19; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x1, x19, 0, 0x0, x21, 14*XLEN/8, x14) + +inst_15: +// rs1==x16, rd==x13, +// opcode: mop.r.27 ; op1:x16; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x13, x16, 0, 0x0, x21, 15*XLEN/8, x14) + +inst_16: +// rs1==x8, rd==x10, +// opcode: mop.r.27 ; op1:x8; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x10, x8, 0, 0x0, x21, 16*XLEN/8, x14) + +inst_17: +// rs1==x14, rd==x19, +// opcode: mop.r.27 ; op1:x14; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x19, x14, 0, 0x0, x21, 17*XLEN/8, x5) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_18: +// rs1==x1, rd==x17, +// opcode: mop.r.27 ; op1:x1; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x17, x1, 0, 0x0, x3, 0*XLEN/8, x5) + +inst_19: +// rs1==x10, rd==x0, +// opcode: mop.r.27 ; op1:x10; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x0, x10, 0, 0x0, x3, 1*XLEN/8, x5) + +inst_20: +// rs1==x11, rd==x24, +// opcode: mop.r.27 ; op1:x11; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x24, x11, 0, 0x0, x3, 2*XLEN/8, x5) + +inst_21: +// rs1==x31, rd==x30, +// opcode: mop.r.27 ; op1:x31; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x30, x31, 0, 0x0, x3, 3*XLEN/8, x5) + +inst_22: +// rs1==x13, rd==x15, +// opcode: mop.r.27 ; op1:x13; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x15, x13, 0, 0x0, x3, 4*XLEN/8, x5) + +inst_23: +// rs1==x27, rd==x25, +// opcode: mop.r.27 ; op1:x27; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x25, x27, 0, 0x0, x3, 5*XLEN/8, x5) + +inst_24: +// rs1==x9, rd==x6, +// opcode: mop.r.27 ; op1:x9; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x6, x9, 0, 0x0, x3, 6*XLEN/8, x5) + +inst_25: +// rs1==x2, rd==x21, +// opcode: mop.r.27 ; op1:x2; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x21, x2, 0, 0x0, x3, 7*XLEN/8, x5) + +inst_26: +// rs1==x24, rd==x14, +// opcode: mop.r.27 ; op1:x24; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x14, x24, 0, 0x0, x3, 8*XLEN/8, x5) + +inst_27: +// rs1==x21, rd==x16, +// opcode: mop.r.27 ; op1:x21; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x16, x21, 0, 0x0, x3, 9*XLEN/8, x5) + +inst_28: +// rs1==x0, rd==x26, +// opcode: mop.r.27 ; op1:x0; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x26, x0, 0, 0x0, x3, 10*XLEN/8, x5) + +inst_29: +// rs1==x4, rd==x27, +// opcode: mop.r.27 ; op1:x4; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x27, x4, 0, 0x0, x3, 11*XLEN/8, x5) + +inst_30: +// rs1==x26, rd==x12, +// opcode: mop.r.27 ; op1:x26; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x12, x26, 0, 0x0, x3, 12*XLEN/8, x5) + +inst_31: +// rs1==x7, rd==x23, +// opcode: mop.r.27 ; op1:x7; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.27, x23, x7, 0, 0x0, x3, 13*XLEN/8, x5) +#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_x21_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x21_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 14*((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/Zimop/src/mop.r.28-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.28-01.S new file mode 100644 index 000000000..f746b7e9b --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.28-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.28 instruction of the RISC-V RV64Zimop extension for the mop.r.28 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.28) + +RVTEST_SIGBASE(x11,signature_x11_1) + +inst_0: +// rs1 == rd, rs1==x24, rd==x24, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.28 ; op1:x24; dest:x24; op1val:-0x100000001; immval:-0x800 +TEST_R_OP( mop.r.28, x24, x24, 0, -0x100000001, x11, 0*XLEN/8, x3) + +inst_1: +// rs1 != rd, rs1==x19, rd==x26, imm_val == (2**(12-1)-1), rs1_val == 0 +// opcode: mop.r.28 ; op1:x19; dest:x26; op1val:0x0; immval:0x7ff +TEST_R_OP( mop.r.28, x26, x19, 0, 0x0, x11, 1*XLEN/8, x3) + +inst_2: +// rs1==x30, rd==x15, imm_val == 0, +// opcode: mop.r.28 ; op1:x30; dest:x15; op1val:-0x8; immval:0x0 +TEST_R_OP( mop.r.28, x15, x30, 0, -0x8, x11, 2*XLEN/8, x3) + +inst_3: +// rs1==x4, rd==x1, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.28 ; op1:x4; dest:x1; op1val:0x6666666666666665; immval:0x1 +TEST_R_OP( mop.r.28, x1, x4, 0, 0x6666666666666665, x11, 3*XLEN/8, x3) + +inst_4: +// rs1==x26, rd==x23, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.28 ; op1:x26; dest:x23; op1val:-0x101; immval:0x9 +TEST_R_OP( mop.r.28, x23, x26, 0, -0x101, x11, 4*XLEN/8, x3) + +inst_5: +// rs1==x21, rd==x14, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.28 ; op1:x21; dest:x14; op1val:-0x8000000000000000; immval:-0x101 +TEST_R_OP( mop.r.28, x14, x21, 0, -0x8000000000000000, x11, 5*XLEN/8, x3) + +inst_6: +// rs1==x9, rd==x31, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val < 0 +// opcode: mop.r.28 ; op1:x9; dest:x31; op1val:0x7fffffffffffffff; immval:-0x555 +TEST_R_OP( mop.r.28, x31, x9, 0, 0x7fffffffffffffff, x11, 6*XLEN/8, x3) + +inst_7: +// rs1==x2, rd==x13, rs1_val == 1, +// opcode: mop.r.28 ; op1:x2; dest:x13; op1val:0x1; immval:0x4 +TEST_R_OP( mop.r.28, x13, x2, 0, 0x1, x11, 7*XLEN/8, x3) + +inst_8: +// rs1==x23, rd==x20, rs1_val == imm_val, +// opcode: mop.r.28 ; op1:x23; dest:x20; op1val:0x40; immval:0x40 +TEST_R_OP( mop.r.28, x20, x23, 0, 0x40, x11, 8*XLEN/8, x3) + +inst_9: +// rs1==x17, rd==x18, +// opcode: mop.r.28 ; op1:x17; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x18, x17, 0, 0x0, x11, 9*XLEN/8, x3) + +inst_10: +// rs1==x27, rd==x17, +// opcode: mop.r.28 ; op1:x27; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x17, x27, 0, 0x0, x11, 10*XLEN/8, x3) + +inst_11: +// rs1==x22, rd==x2, +// opcode: mop.r.28 ; op1:x22; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x2, x22, 0, 0x0, x11, 11*XLEN/8, x3) + +inst_12: +// rs1==x0, rd==x8, +// opcode: mop.r.28 ; op1:x0; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x8, x0, 0, 0x0, x11, 12*XLEN/8, x3) + +inst_13: +// rs1==x6, rd==x0, +// opcode: mop.r.28 ; op1:x6; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x0, x6, 0, 0x0, x11, 13*XLEN/8, x3) + +inst_14: +// rs1==x18, rd==x9, +// opcode: mop.r.28 ; op1:x18; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x9, x18, 0, 0x0, x11, 14*XLEN/8, x3) + +inst_15: +// rs1==x10, rd==x28, +// opcode: mop.r.28 ; op1:x10; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x28, x10, 0, 0x0, x11, 15*XLEN/8, x3) + +inst_16: +// rs1==x31, rd==x5, +// opcode: mop.r.28 ; op1:x31; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x5, x31, 0, 0x0, x11, 16*XLEN/8, x3) + +inst_17: +// rs1==x5, rd==x21, +// opcode: mop.r.28 ; op1:x5; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x21, x5, 0, 0x0, x11, 17*XLEN/8, x3) + +inst_18: +// rs1==x28, rd==x6, +// opcode: mop.r.28 ; op1:x28; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x6, x28, 0, 0x0, x11, 18*XLEN/8, x3) + +inst_19: +// rs1==x12, rd==x30, +// opcode: mop.r.28 ; op1:x12; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x30, x12, 0, 0x0, x11, 19*XLEN/8, x3) + +inst_20: +// rs1==x7, rd==x10, +// opcode: mop.r.28 ; op1:x7; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x10, x7, 0, 0x0, x11, 20*XLEN/8, x3) + +inst_21: +// rs1==x1, rd==x3, +// opcode: mop.r.28 ; op1:x1; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x3, x1, 0, 0x0, x11, 21*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_22: +// rs1==x8, rd==x19, +// opcode: mop.r.28 ; op1:x8; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x19, x8, 0, 0x0, x1, 0*XLEN/8, x2) + +inst_23: +// rs1==x13, rd==x7, +// opcode: mop.r.28 ; op1:x13; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x7, x13, 0, 0x0, x1, 1*XLEN/8, x2) + +inst_24: +// rs1==x16, rd==x4, +// opcode: mop.r.28 ; op1:x16; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x4, x16, 0, 0x0, x1, 2*XLEN/8, x2) + +inst_25: +// rs1==x11, rd==x27, +// opcode: mop.r.28 ; op1:x11; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x27, x11, 0, 0x0, x1, 3*XLEN/8, x2) + +inst_26: +// rs1==x3, rd==x22, +// opcode: mop.r.28 ; op1:x3; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x22, x3, 0, 0x0, x1, 4*XLEN/8, x2) + +inst_27: +// rs1==x15, rd==x16, +// opcode: mop.r.28 ; op1:x15; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x16, x15, 0, 0x0, x1, 5*XLEN/8, x2) + +inst_28: +// rs1==x29, rd==x12, +// opcode: mop.r.28 ; op1:x29; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x12, x29, 0, 0x0, x1, 6*XLEN/8, x2) + +inst_29: +// rs1==x25, rd==x11, +// opcode: mop.r.28 ; op1:x25; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x11, x25, 0, 0x0, x1, 7*XLEN/8, x2) + +inst_30: +// rs1==x14, rd==x29, +// opcode: mop.r.28 ; op1:x14; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x29, x14, 0, 0x0, x1, 8*XLEN/8, x2) + +inst_31: +// rs1==x20, rd==x25, +// opcode: mop.r.28 ; op1:x20; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.28, x25, x20, 0, 0x0, x1, 9*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_x11_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x11_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 10*((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/Zimop/src/mop.r.29-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.29-01.S new file mode 100644 index 000000000..c130ca105 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.29-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.29 instruction of the RISC-V RV64Zimop extension for the mop.r.29 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.29) + +RVTEST_SIGBASE(x4,signature_x4_1) + +inst_0: +// rs1 == rd, rs1==x1, rd==x1, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.29 ; op1:x1; dest:x1; op1val:0x40; immval:-0x800 +TEST_R_OP( mop.r.29, x1, x1, 0, 0x40, x4, 0*XLEN/8, x3) + +inst_1: +// rs1 != rd, rs1==x8, rd==x0, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.29 ; op1:x8; dest:x0; op1val:0x5555555555555555; immval:0x7ff +TEST_R_OP( mop.r.29, x0, x8, 0, 0x5555555555555555, x4, 1*XLEN/8, x3) + +inst_2: +// rs1==x2, rd==x12, imm_val == 0, +// opcode: mop.r.29 ; op1:x2; dest:x12; op1val:0x800000000000000; immval:0x0 +TEST_R_OP( mop.r.29, x12, x2, 0, 0x800000000000000, x4, 2*XLEN/8, x3) + +inst_3: +// rs1==x15, rd==x5, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.29 ; op1:x15; dest:x5; op1val:-0x5555555555555555; immval:0x1 +TEST_R_OP( mop.r.29, x5, x15, 0, -0x5555555555555555, x4, 3*XLEN/8, x3) + +inst_4: +// rs1==x18, rd==x19, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.29 ; op1:x18; dest:x19; op1val:-0x20000001; immval:-0x4 +TEST_R_OP( mop.r.29, x19, x18, 0, -0x20000001, x4, 4*XLEN/8, x3) + +inst_5: +// rs1==x7, rd==x30, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.29 ; op1:x7; dest:x30; op1val:-0x8000000000000000; immval:0x0 +TEST_R_OP( mop.r.29, x30, x7, 0, -0x8000000000000000, x4, 5*XLEN/8, x3) + +inst_6: +// rs1==x12, rd==x21, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.29 ; op1:x12; dest:x21; op1val:0x7fffffffffffffff; immval:0x5 +TEST_R_OP( mop.r.29, x21, x12, 0, 0x7fffffffffffffff, x4, 6*XLEN/8, x3) + +inst_7: +// rs1==x26, rd==x9, rs1_val == 0, +// opcode: mop.r.29 ; op1:x26; dest:x9; op1val:0x0; immval:-0x41 +TEST_R_OP( mop.r.29, x9, x26, 0, 0x0, x4, 7*XLEN/8, x3) + +inst_8: +// rs1==x9, rd==x2, rs1_val == 1, +// opcode: mop.r.29 ; op1:x9; dest:x2; op1val:0x1; immval:0x9 +TEST_R_OP( mop.r.29, x2, x9, 0, 0x1, x4, 8*XLEN/8, x3) + +inst_9: +// rs1==x28, rd==x20, rs1_val == imm_val, +// opcode: mop.r.29 ; op1:x28; dest:x20; op1val:-0x8; immval:-0x8 +TEST_R_OP( mop.r.29, x20, x28, 0, -0x8, x4, 9*XLEN/8, x3) + +inst_10: +// rs1==x10, rd==x28, +// opcode: mop.r.29 ; op1:x10; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x28, x10, 0, 0x0, x4, 10*XLEN/8, x3) + +inst_11: +// rs1==x31, rd==x10, +// opcode: mop.r.29 ; op1:x31; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x10, x31, 0, 0x0, x4, 11*XLEN/8, x3) + +inst_12: +// rs1==x27, rd==x6, +// opcode: mop.r.29 ; op1:x27; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x6, x27, 0, 0x0, x4, 12*XLEN/8, x3) + +inst_13: +// rs1==x19, rd==x7, +// opcode: mop.r.29 ; op1:x19; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x7, x19, 0, 0x0, x4, 13*XLEN/8, x3) + +inst_14: +// rs1==x24, rd==x29, +// opcode: mop.r.29 ; op1:x24; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x29, x24, 0, 0x0, x4, 14*XLEN/8, x3) + +inst_15: +// rs1==x25, rd==x17, +// opcode: mop.r.29 ; op1:x25; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x17, x25, 0, 0x0, x4, 15*XLEN/8, x3) + +inst_16: +// rs1==x29, rd==x25, +// opcode: mop.r.29 ; op1:x29; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x25, x29, 0, 0x0, x4, 16*XLEN/8, x3) + +inst_17: +// rs1==x14, rd==x31, +// opcode: mop.r.29 ; op1:x14; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x31, x14, 0, 0x0, x4, 17*XLEN/8, x3) + +inst_18: +// rs1==x20, rd==x16, +// opcode: mop.r.29 ; op1:x20; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x16, x20, 0, 0x0, x4, 18*XLEN/8, x3) + +inst_19: +// rs1==x6, rd==x27, +// opcode: mop.r.29 ; op1:x6; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x27, x6, 0, 0x0, x4, 19*XLEN/8, x3) + +inst_20: +// rs1==x5, rd==x11, +// opcode: mop.r.29 ; op1:x5; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x11, x5, 0, 0x0, x4, 20*XLEN/8, x3) + +inst_21: +// rs1==x3, rd==x14, +// opcode: mop.r.29 ; op1:x3; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x14, x3, 0, 0x0, x4, 21*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_22: +// rs1==x17, rd==x13, +// opcode: mop.r.29 ; op1:x17; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x13, x17, 0, 0x0, x1, 0*XLEN/8, x2) + +inst_23: +// rs1==x22, rd==x3, +// opcode: mop.r.29 ; op1:x22; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x3, x22, 0, 0x0, x1, 1*XLEN/8, x2) + +inst_24: +// rs1==x21, rd==x15, +// opcode: mop.r.29 ; op1:x21; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x15, x21, 0, 0x0, x1, 2*XLEN/8, x2) + +inst_25: +// rs1==x30, rd==x22, +// opcode: mop.r.29 ; op1:x30; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x22, x30, 0, 0x0, x1, 3*XLEN/8, x2) + +inst_26: +// rs1==x16, rd==x8, +// opcode: mop.r.29 ; op1:x16; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x8, x16, 0, 0x0, x1, 4*XLEN/8, x2) + +inst_27: +// rs1==x13, rd==x18, +// opcode: mop.r.29 ; op1:x13; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x18, x13, 0, 0x0, x1, 5*XLEN/8, x2) + +inst_28: +// rs1==x23, rd==x24, +// opcode: mop.r.29 ; op1:x23; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x24, x23, 0, 0x0, x1, 6*XLEN/8, x2) + +inst_29: +// rs1==x4, rd==x23, +// opcode: mop.r.29 ; op1:x4; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x23, x4, 0, 0x0, x1, 7*XLEN/8, x2) + +inst_30: +// rs1==x0, rd==x4, +// opcode: mop.r.29 ; op1:x0; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x4, x0, 0, 0x0, x1, 8*XLEN/8, x2) + +inst_31: +// rs1==x11, rd==x26, +// opcode: mop.r.29 ; op1:x11; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.29, x26, x11, 0, 0x0, x1, 9*XLEN/8, x2) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.29 ; op1:x30; dest:x31; op1val:0x5555555555555555; immval:0x7ff +TEST_R_OP( mop.r.29, x31, x30, 0, 0x5555555555555555, x1, 10*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_x4_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_1: + .fill 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 11*((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/Zimop/src/mop.r.3-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.3-01.S new file mode 100644 index 000000000..40cc561e9 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.3-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.3 instruction of the RISC-V RV64Zimop extension for the mop.r.3 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.3) + +RVTEST_SIGBASE(x8,signature_x8_1) + +inst_0: +// rs1 == rd, rs1==x29, rd==x29, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.3 ; op1:x29; dest:x29; op1val:-0x4000000000000001; immval:-0x800 +TEST_R_OP( mop.r.3, x29, x29, 0, -0x4000000000000001, x8, 0*XLEN/8, x9) + +inst_1: +// rs1 != rd, rs1==x6, rd==x21, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.3 ; op1:x6; dest:x21; op1val:-0x1; immval:0x7ff +TEST_R_OP( mop.r.3, x21, x6, 0, -0x1, x8, 1*XLEN/8, x9) + +inst_2: +// rs1==x20, rd==x2, imm_val == 0, +// opcode: mop.r.3 ; op1:x20; dest:x2; op1val:0x9; immval:0x0 +TEST_R_OP( mop.r.3, x2, x20, 0, 0x9, x8, 2*XLEN/8, x9) + +inst_3: +// rs1==x1, rd==x19, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.3 ; op1:x1; dest:x19; op1val:0xb504f332; immval:0x1 +TEST_R_OP( mop.r.3, x19, x1, 0, 0xb504f332, x8, 3*XLEN/8, x9) + +inst_4: +// rs1==x0, rd==x16, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.3 ; op1:x0; dest:x16; op1val:0x0; immval:0x9 +TEST_R_OP( mop.r.3, x16, x0, 0, 0x0, x8, 4*XLEN/8, x9) + +inst_5: +// rs1==x2, rd==x17, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.3 ; op1:x2; dest:x17; op1val:0x7fffffffffffffff; immval:0x556 +TEST_R_OP( mop.r.3, x17, x2, 0, 0x7fffffffffffffff, x8, 5*XLEN/8, x9) + +inst_6: +// rs1==x27, rd==x14, rs1_val == 0, +// opcode: mop.r.3 ; op1:x27; dest:x14; op1val:0x0; immval:-0x2 +TEST_R_OP( mop.r.3, x14, x27, 0, 0x0, x8, 6*XLEN/8, x9) + +inst_7: +// rs1==x19, rd==x13, rs1_val == 1, +// opcode: mop.r.3 ; op1:x19; dest:x13; op1val:0x1; immval:0x4 +TEST_R_OP( mop.r.3, x13, x19, 0, 0x1, x8, 7*XLEN/8, x9) + +inst_8: +// rs1==x31, rd==x30, rs1_val == imm_val, +// opcode: mop.r.3 ; op1:x31; dest:x30; op1val:-0x21; immval:-0x21 +TEST_R_OP( mop.r.3, x30, x31, 0, -0x21, x8, 8*XLEN/8, x9) + +inst_9: +// rs1==x14, rd==x18, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.3 ; op1:x14; dest:x18; op1val:0x1000000; immval:-0x2 +TEST_R_OP( mop.r.3, x18, x14, 0, 0x1000000, x8, 9*XLEN/8, x9) + +inst_10: +// rs1==x18, rd==x5, +// opcode: mop.r.3 ; op1:x18; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x5, x18, 0, 0x0, x8, 10*XLEN/8, x9) + +inst_11: +// rs1==x3, rd==x11, +// opcode: mop.r.3 ; op1:x3; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x11, x3, 0, 0x0, x8, 11*XLEN/8, x9) + +inst_12: +// rs1==x15, rd==x10, +// opcode: mop.r.3 ; op1:x15; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x10, x15, 0, 0x0, x8, 12*XLEN/8, x9) + +inst_13: +// rs1==x12, rd==x24, +// opcode: mop.r.3 ; op1:x12; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x24, x12, 0, 0x0, x8, 13*XLEN/8, x9) + +inst_14: +// rs1==x4, rd==x20, +// opcode: mop.r.3 ; op1:x4; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x20, x4, 0, 0x0, x8, 14*XLEN/8, x9) + +inst_15: +// rs1==x16, rd==x7, +// opcode: mop.r.3 ; op1:x16; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x7, x16, 0, 0x0, x8, 15*XLEN/8, x9) + +inst_16: +// rs1==x13, rd==x12, +// opcode: mop.r.3 ; op1:x13; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x12, x13, 0, 0x0, x8, 16*XLEN/8, x9) + +inst_17: +// rs1==x17, rd==x25, +// opcode: mop.r.3 ; op1:x17; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x25, x17, 0, 0x0, x8, 17*XLEN/8, x9) + +inst_18: +// rs1==x23, rd==x26, +// opcode: mop.r.3 ; op1:x23; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x26, x23, 0, 0x0, x8, 18*XLEN/8, x9) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_19: +// rs1==x28, rd==x31, +// opcode: mop.r.3 ; op1:x28; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x31, x28, 0, 0x0, x2, 0*XLEN/8, x12) + +inst_20: +// rs1==x21, rd==x0, +// opcode: mop.r.3 ; op1:x21; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x0, x21, 0, 0x0, x2, 1*XLEN/8, x12) + +inst_21: +// rs1==x5, rd==x15, +// opcode: mop.r.3 ; op1:x5; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x15, x5, 0, 0x0, x2, 2*XLEN/8, x12) + +inst_22: +// rs1==x30, rd==x27, +// opcode: mop.r.3 ; op1:x30; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x27, x30, 0, 0x0, x2, 3*XLEN/8, x12) + +inst_23: +// rs1==x24, rd==x9, +// opcode: mop.r.3 ; op1:x24; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x9, x24, 0, 0x0, x2, 4*XLEN/8, x12) + +inst_24: +// rs1==x7, rd==x8, +// opcode: mop.r.3 ; op1:x7; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x8, x7, 0, 0x0, x2, 5*XLEN/8, x12) + +inst_25: +// rs1==x11, rd==x4, +// opcode: mop.r.3 ; op1:x11; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x4, x11, 0, 0x0, x2, 6*XLEN/8, x12) + +inst_26: +// rs1==x8, rd==x22, +// opcode: mop.r.3 ; op1:x8; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x22, x8, 0, 0x0, x2, 7*XLEN/8, x12) + +inst_27: +// rs1==x10, rd==x6, +// opcode: mop.r.3 ; op1:x10; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x6, x10, 0, 0x0, x2, 8*XLEN/8, x12) + +inst_28: +// rs1==x9, rd==x1, +// opcode: mop.r.3 ; op1:x9; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x1, x9, 0, 0x0, x2, 9*XLEN/8, x12) + +inst_29: +// rs1==x22, rd==x3, +// opcode: mop.r.3 ; op1:x22; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x3, x22, 0, 0x0, x2, 10*XLEN/8, x12) + +inst_30: +// rs1==x26, rd==x28, +// opcode: mop.r.3 ; op1:x26; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x28, x26, 0, 0x0, x2, 11*XLEN/8, x12) + +inst_31: +// rs1==x25, rd==x23, +// opcode: mop.r.3 ; op1:x25; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.3, x23, x25, 0, 0x0, x2, 12*XLEN/8, x12) + +inst_32: +// rs1_val == (-2**(xlen-1)), +// opcode: mop.r.3 ; op1:x30; dest:x31; op1val:-0x8000000000000000; immval:0x9 +TEST_R_OP( mop.r.3, x31, x30, 0, -0x8000000000000000, x2, 13*XLEN/8, x12) +#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_x8_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x8_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 14*((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/Zimop/src/mop.r.30-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.30-01.S new file mode 100644 index 000000000..02c444210 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.30-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.30 instruction of the RISC-V RV64Zimop extension for the mop.r.30 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.30) + +RVTEST_SIGBASE(x8,signature_x8_1) + +inst_0: +// rs1 == rd, rs1==x19, rd==x19, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.30 ; op1:x19; dest:x19; op1val:0x1000; immval:-0x800 +TEST_R_OP( mop.r.30, x19, x19, 0, 0x1000, x8, 0*XLEN/8, x13) + +inst_1: +// rs1 != rd, rs1==x10, rd==x16, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.30 ; op1:x10; dest:x16; op1val:0x800000; immval:0x7ff +TEST_R_OP( mop.r.30, x16, x10, 0, 0x800000, x8, 1*XLEN/8, x13) + +inst_2: +// rs1==x11, rd==x31, imm_val == 0, +// opcode: mop.r.30 ; op1:x11; dest:x31; op1val:-0x40000000000001; immval:0x0 +TEST_R_OP( mop.r.30, x31, x11, 0, -0x40000000000001, x8, 2*XLEN/8, x13) + +inst_3: +// rs1==x21, rd==x2, imm_val == 1, +// opcode: mop.r.30 ; op1:x21; dest:x2; op1val:0x3333333333333333; immval:0x1 +TEST_R_OP( mop.r.30, x2, x21, 0, 0x3333333333333333, x8, 3*XLEN/8, x13) + +inst_4: +// rs1==x18, rd==x12, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.30 ; op1:x18; dest:x12; op1val:-0x100000000001; immval:-0x2d +TEST_R_OP( mop.r.30, x12, x18, 0, -0x100000000001, x8, 4*XLEN/8, x13) + +inst_5: +// rs1==x0, rd==x14, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.30 ; op1:x0; dest:x14; op1val:0x0; immval:0x3 +TEST_R_OP( mop.r.30, x14, x0, 0, 0x0, x8, 5*XLEN/8, x13) + +inst_6: +// rs1==x20, rd==x10, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.30 ; op1:x20; dest:x10; op1val:-0x8000000000000000; immval:0x0 +TEST_R_OP( mop.r.30, x10, x20, 0, -0x8000000000000000, x8, 6*XLEN/8, x13) + +inst_7: +// rs1==x14, rd==x21, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.30 ; op1:x14; dest:x21; op1val:0x7fffffffffffffff; immval:0x334 +TEST_R_OP( mop.r.30, x21, x14, 0, 0x7fffffffffffffff, x8, 7*XLEN/8, x13) + +inst_8: +// rs1==x9, rd==x20, rs1_val == 0, rs1_val == imm_val +// opcode: mop.r.30 ; op1:x9; dest:x20; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.30, x20, x9, 0, 0x0, x8, 8*XLEN/8, x13) + +inst_9: +// rs1==x12, rd==x23, rs1_val == 1, +// opcode: mop.r.30 ; op1:x12; dest:x23; op1val:0x1; immval:0x332 +TEST_R_OP( mop.r.30, x23, x12, 0, 0x1, x8, 9*XLEN/8, x13) + +inst_10: +// rs1==x29, rd==x4, +// opcode: mop.r.30 ; op1:x29; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x4, x29, 0, 0x0, x8, 10*XLEN/8, x13) + +inst_11: +// rs1==x5, rd==x25, +// opcode: mop.r.30 ; op1:x5; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x25, x5, 0, 0x0, x8, 11*XLEN/8, x13) + +inst_12: +// rs1==x17, rd==x3, +// opcode: mop.r.30 ; op1:x17; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x3, x17, 0, 0x0, x8, 12*XLEN/8, x13) + +inst_13: +// rs1==x25, rd==x6, +// opcode: mop.r.30 ; op1:x25; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x6, x25, 0, 0x0, x8, 13*XLEN/8, x13) + +inst_14: +// rs1==x7, rd==x1, +// opcode: mop.r.30 ; op1:x7; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x1, x7, 0, 0x0, x8, 14*XLEN/8, x13) + +inst_15: +// rs1==x15, rd==x7, +// opcode: mop.r.30 ; op1:x15; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x7, x15, 0, 0x0, x8, 15*XLEN/8, x13) + +inst_16: +// rs1==x3, rd==x27, +// opcode: mop.r.30 ; op1:x3; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x27, x3, 0, 0x0, x8, 16*XLEN/8, x13) + +inst_17: +// rs1==x27, rd==x9, +// opcode: mop.r.30 ; op1:x27; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x9, x27, 0, 0x0, x8, 17*XLEN/8, x13) + +inst_18: +// rs1==x26, rd==x28, +// opcode: mop.r.30 ; op1:x26; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x28, x26, 0, 0x0, x8, 18*XLEN/8, x13) + +inst_19: +// rs1==x24, rd==x11, +// opcode: mop.r.30 ; op1:x24; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x11, x24, 0, 0x0, x8, 19*XLEN/8, x7) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_20: +// rs1==x23, rd==x8, +// opcode: mop.r.30 ; op1:x23; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x8, x23, 0, 0x0, x3, 0*XLEN/8, x7) + +inst_21: +// rs1==x16, rd==x18, +// opcode: mop.r.30 ; op1:x16; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x18, x16, 0, 0x0, x3, 1*XLEN/8, x7) + +inst_22: +// rs1==x13, rd==x15, +// opcode: mop.r.30 ; op1:x13; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x15, x13, 0, 0x0, x3, 2*XLEN/8, x7) + +inst_23: +// rs1==x4, rd==x26, +// opcode: mop.r.30 ; op1:x4; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x26, x4, 0, 0x0, x3, 3*XLEN/8, x7) + +inst_24: +// rs1==x2, rd==x24, +// opcode: mop.r.30 ; op1:x2; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x24, x2, 0, 0x0, x3, 4*XLEN/8, x7) + +inst_25: +// rs1==x1, rd==x17, +// opcode: mop.r.30 ; op1:x1; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x17, x1, 0, 0x0, x3, 5*XLEN/8, x7) + +inst_26: +// rs1==x8, rd==x29, +// opcode: mop.r.30 ; op1:x8; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x29, x8, 0, 0x0, x3, 6*XLEN/8, x7) + +inst_27: +// rs1==x28, rd==x13, +// opcode: mop.r.30 ; op1:x28; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x13, x28, 0, 0x0, x3, 7*XLEN/8, x7) + +inst_28: +// rs1==x30, rd==x22, +// opcode: mop.r.30 ; op1:x30; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x22, x30, 0, 0x0, x3, 8*XLEN/8, x7) + +inst_29: +// rs1==x22, rd==x0, +// opcode: mop.r.30 ; op1:x22; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x0, x22, 0, 0x0, x3, 9*XLEN/8, x7) + +inst_30: +// rs1==x31, rd==x5, +// opcode: mop.r.30 ; op1:x31; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x5, x31, 0, 0x0, x3, 10*XLEN/8, x7) + +inst_31: +// rs1==x6, rd==x30, +// opcode: mop.r.30 ; op1:x6; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.30, x30, x6, 0, 0x0, x3, 11*XLEN/8, x7) + +inst_32: +// rs1_val < 0 and imm_val > 0, +// opcode: mop.r.30 ; op1:x30; dest:x31; op1val:-0x8000000001; immval:0x3 +TEST_R_OP( mop.r.30, x31, x30, 0, -0x8000000001, x3, 12*XLEN/8, x7) +#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_x8_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x8_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 13*((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/Zimop/src/mop.r.31-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.31-01.S new file mode 100644 index 000000000..3959ab8b4 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.31-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.31 instruction of the RISC-V RV64Zimop extension for the mop.r.31 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.31) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x14, rd==x14, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.31 ; op1:x14; dest:x14; op1val:-0x80000000000001; immval:-0x800 +TEST_R_OP( mop.r.31, x14, x14, 0, -0x80000000000001, x2, 0*XLEN/8, x4) + +inst_1: +// rs1 != rd, rs1==x0, rd==x25, imm_val == (2**(12-1)-1), rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.31 ; op1:x0; dest:x25; op1val:0x0; immval:0x7ff +TEST_R_OP( mop.r.31, x25, x0, 0, 0x0, x2, 1*XLEN/8, x4) + +inst_2: +// rs1==x22, rd==x5, imm_val == 0, +// opcode: mop.r.31 ; op1:x22; dest:x5; op1val:0x1000000; immval:0x0 +TEST_R_OP( mop.r.31, x5, x22, 0, 0x1000000, x2, 2*XLEN/8, x4) + +inst_3: +// rs1==x3, rd==x15, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.31 ; op1:x3; dest:x15; op1val:-0x200001; immval:0x1 +TEST_R_OP( mop.r.31, x15, x3, 0, -0x200001, x2, 3*XLEN/8, x4) + +inst_4: +// rs1==x23, rd==x29, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.31 ; op1:x23; dest:x29; op1val:-0x8000000000000000; immval:-0x11 +TEST_R_OP( mop.r.31, x29, x23, 0, -0x8000000000000000, x2, 4*XLEN/8, x4) + +inst_5: +// rs1==x21, rd==x11, rs1_val == 0, +// opcode: mop.r.31 ; op1:x21; dest:x11; op1val:0x0; immval:0x2 +TEST_R_OP( mop.r.31, x11, x21, 0, 0x0, x2, 5*XLEN/8, x4) + +inst_6: +// rs1==x29, rd==x3, rs1_val == 1, +// opcode: mop.r.31 ; op1:x29; dest:x3; op1val:0x1; immval:0x7ff +TEST_R_OP( mop.r.31, x3, x29, 0, 0x1, x2, 6*XLEN/8, x4) + +inst_7: +// rs1==x19, rd==x23, rs1_val == imm_val, +// opcode: mop.r.31 ; op1:x19; dest:x23; op1val:0x4; immval:0x4 +TEST_R_OP( mop.r.31, x23, x19, 0, 0x4, x2, 7*XLEN/8, x4) + +inst_8: +// rs1==x24, rd==x12, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.31 ; op1:x24; dest:x12; op1val:0x3333333333333334; immval:-0x3 +TEST_R_OP( mop.r.31, x12, x24, 0, 0x3333333333333334, x2, 8*XLEN/8, x4) + +inst_9: +// rs1==x26, rd==x6, +// opcode: mop.r.31 ; op1:x26; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x6, x26, 0, 0x0, x2, 9*XLEN/8, x4) + +inst_10: +// rs1==x9, rd==x8, +// opcode: mop.r.31 ; op1:x9; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x8, x9, 0, 0x0, x2, 10*XLEN/8, x4) + +inst_11: +// rs1==x10, rd==x21, +// opcode: mop.r.31 ; op1:x10; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x21, x10, 0, 0x0, x2, 11*XLEN/8, x4) + +inst_12: +// rs1==x20, rd==x10, +// opcode: mop.r.31 ; op1:x20; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x10, x20, 0, 0x0, x2, 12*XLEN/8, x4) + +inst_13: +// rs1==x13, rd==x22, +// opcode: mop.r.31 ; op1:x13; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x22, x13, 0, 0x0, x2, 13*XLEN/8, x4) + +inst_14: +// rs1==x1, rd==x0, +// opcode: mop.r.31 ; op1:x1; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x0, x1, 0, 0x0, x2, 14*XLEN/8, x4) + +inst_15: +// rs1==x6, rd==x17, +// opcode: mop.r.31 ; op1:x6; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x17, x6, 0, 0x0, x2, 15*XLEN/8, x4) + +inst_16: +// rs1==x11, rd==x16, +// opcode: mop.r.31 ; op1:x11; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x16, x11, 0, 0x0, x2, 16*XLEN/8, x4) + +inst_17: +// rs1==x25, rd==x13, +// opcode: mop.r.31 ; op1:x25; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x13, x25, 0, 0x0, x2, 17*XLEN/8, x4) + +inst_18: +// rs1==x18, rd==x20, +// opcode: mop.r.31 ; op1:x18; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x20, x18, 0, 0x0, x2, 18*XLEN/8, x4) + +inst_19: +// rs1==x12, rd==x26, +// opcode: mop.r.31 ; op1:x12; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x26, x12, 0, 0x0, x2, 19*XLEN/8, x4) + +inst_20: +// rs1==x7, rd==x18, +// opcode: mop.r.31 ; op1:x7; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x18, x7, 0, 0x0, x2, 20*XLEN/8, x4) + +inst_21: +// rs1==x17, rd==x7, +// opcode: mop.r.31 ; op1:x17; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x7, x17, 0, 0x0, x2, 21*XLEN/8, x4) + +inst_22: +// rs1==x28, rd==x31, +// opcode: mop.r.31 ; op1:x28; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x31, x28, 0, 0x0, x2, 22*XLEN/8, x4) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_23: +// rs1==x30, rd==x2, +// opcode: mop.r.31 ; op1:x30; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x2, x30, 0, 0x0, x3, 0*XLEN/8, x6) + +inst_24: +// rs1==x5, rd==x4, +// opcode: mop.r.31 ; op1:x5; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x4, x5, 0, 0x0, x3, 1*XLEN/8, x6) + +inst_25: +// rs1==x27, rd==x9, +// opcode: mop.r.31 ; op1:x27; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x9, x27, 0, 0x0, x3, 2*XLEN/8, x6) + +inst_26: +// rs1==x2, rd==x28, +// opcode: mop.r.31 ; op1:x2; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x28, x2, 0, 0x0, x3, 3*XLEN/8, x6) + +inst_27: +// rs1==x4, rd==x1, +// opcode: mop.r.31 ; op1:x4; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x1, x4, 0, 0x0, x3, 4*XLEN/8, x6) + +inst_28: +// rs1==x16, rd==x19, +// opcode: mop.r.31 ; op1:x16; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x19, x16, 0, 0x0, x3, 5*XLEN/8, x6) + +inst_29: +// rs1==x8, rd==x30, +// opcode: mop.r.31 ; op1:x8; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x30, x8, 0, 0x0, x3, 6*XLEN/8, x6) + +inst_30: +// rs1==x31, rd==x24, +// opcode: mop.r.31 ; op1:x31; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x24, x31, 0, 0x0, x3, 7*XLEN/8, x6) + +inst_31: +// rs1==x15, rd==x27, +// opcode: mop.r.31 ; op1:x15; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.31, x27, x15, 0, 0x0, x3, 8*XLEN/8, x6) + +inst_32: +// imm_val == (2**(12-1)-1), rs1_val == (2**(xlen-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.31 ; op1:x30; dest:x31; op1val:0x7fffffffffffffff; immval:0x7ff +TEST_R_OP( mop.r.31, x31, x30, 0, 0x7fffffffffffffff, x3, 9*XLEN/8, x6) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 23*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 10*((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/Zimop/src/mop.r.4-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.4-01.S new file mode 100644 index 000000000..1a3a68647 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.4-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.4 instruction of the RISC-V RV64Zimop extension for the mop.r.4 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.4) + +RVTEST_SIGBASE(x4,signature_x4_1) + +inst_0: +// rs1 == rd, rs1==x16, rd==x16, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.4 ; op1:x16; dest:x16; op1val:0x7; immval:-0x800 +TEST_R_OP( mop.r.4, x16, x16, 0, 0x7, x4, 0*XLEN/8, x17) + +inst_1: +// rs1 != rd, rs1==x12, rd==x7, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.4 ; op1:x12; dest:x7; op1val:0x2; immval:0x7ff +TEST_R_OP( mop.r.4, x7, x12, 0, 0x2, x4, 1*XLEN/8, x17) + +inst_2: +// rs1==x25, rd==x10, imm_val == 0, +// opcode: mop.r.4 ; op1:x25; dest:x10; op1val:0x3333333333333332; immval:0x0 +TEST_R_OP( mop.r.4, x10, x25, 0, 0x3333333333333332, x4, 2*XLEN/8, x17) + +inst_3: +// rs1==x30, rd==x12, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.4 ; op1:x30; dest:x12; op1val:-0x40001; immval:0x1 +TEST_R_OP( mop.r.4, x12, x30, 0, -0x40001, x4, 3*XLEN/8, x17) + +inst_4: +// rs1==x22, rd==x19, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.4 ; op1:x22; dest:x19; op1val:-0x8001; immval:-0x2 +TEST_R_OP( mop.r.4, x19, x22, 0, -0x8001, x4, 4*XLEN/8, x17) + +inst_5: +// rs1==x18, rd==x25, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.4 ; op1:x18; dest:x25; op1val:-0x8000000000000000; immval:0x665 +TEST_R_OP( mop.r.4, x25, x18, 0, -0x8000000000000000, x4, 5*XLEN/8, x17) + +inst_6: +// rs1==x3, rd==x27, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.4 ; op1:x3; dest:x27; op1val:0x7fffffffffffffff; immval:0x0 +TEST_R_OP( mop.r.4, x27, x3, 0, 0x7fffffffffffffff, x4, 6*XLEN/8, x17) + +inst_7: +// rs1==x26, rd==x1, rs1_val == 0, +// opcode: mop.r.4 ; op1:x26; dest:x1; op1val:0x0; immval:-0x41 +TEST_R_OP( mop.r.4, x1, x26, 0, 0x0, x4, 7*XLEN/8, x17) + +inst_8: +// rs1==x10, rd==x11, rs1_val == 1, +// opcode: mop.r.4 ; op1:x10; dest:x11; op1val:0x1; immval:-0x81 +TEST_R_OP( mop.r.4, x11, x10, 0, 0x1, x4, 8*XLEN/8, x17) + +inst_9: +// rs1==x13, rd==x2, rs1_val == imm_val, +// opcode: mop.r.4 ; op1:x13; dest:x2; op1val:-0x101; immval:-0x101 +TEST_R_OP( mop.r.4, x2, x13, 0, -0x101, x4, 9*XLEN/8, x17) + +inst_10: +// rs1==x14, rd==x8, +// opcode: mop.r.4 ; op1:x14; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x8, x14, 0, 0x0, x4, 10*XLEN/8, x17) + +inst_11: +// rs1==x27, rd==x9, +// opcode: mop.r.4 ; op1:x27; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x9, x27, 0, 0x0, x4, 11*XLEN/8, x17) + +inst_12: +// rs1==x2, rd==x15, +// opcode: mop.r.4 ; op1:x2; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x15, x2, 0, 0x0, x4, 12*XLEN/8, x17) + +inst_13: +// rs1==x21, rd==x23, +// opcode: mop.r.4 ; op1:x21; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x23, x21, 0, 0x0, x4, 13*XLEN/8, x17) + +inst_14: +// rs1==x5, rd==x3, +// opcode: mop.r.4 ; op1:x5; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x3, x5, 0, 0x0, x4, 14*XLEN/8, x17) + +inst_15: +// rs1==x9, rd==x6, +// opcode: mop.r.4 ; op1:x9; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x6, x9, 0, 0x0, x4, 15*XLEN/8, x17) + +inst_16: +// rs1==x7, rd==x22, +// opcode: mop.r.4 ; op1:x7; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x22, x7, 0, 0x0, x4, 16*XLEN/8, x17) + +inst_17: +// rs1==x31, rd==x29, +// opcode: mop.r.4 ; op1:x31; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x29, x31, 0, 0x0, x4, 17*XLEN/8, x17) + +inst_18: +// rs1==x11, rd==x24, +// opcode: mop.r.4 ; op1:x11; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x24, x11, 0, 0x0, x4, 18*XLEN/8, x3) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_19: +// rs1==x4, rd==x14, +// opcode: mop.r.4 ; op1:x4; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x14, x4, 0, 0x0, x2, 0*XLEN/8, x3) + +inst_20: +// rs1==x1, rd==x30, +// opcode: mop.r.4 ; op1:x1; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x30, x1, 0, 0x0, x2, 1*XLEN/8, x3) + +inst_21: +// rs1==x28, rd==x18, +// opcode: mop.r.4 ; op1:x28; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x18, x28, 0, 0x0, x2, 2*XLEN/8, x3) + +inst_22: +// rs1==x0, rd==x4, +// opcode: mop.r.4 ; op1:x0; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x4, x0, 0, 0x0, x2, 3*XLEN/8, x3) + +inst_23: +// rs1==x8, rd==x31, +// opcode: mop.r.4 ; op1:x8; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x31, x8, 0, 0x0, x2, 4*XLEN/8, x3) + +inst_24: +// rs1==x29, rd==x13, +// opcode: mop.r.4 ; op1:x29; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x13, x29, 0, 0x0, x2, 5*XLEN/8, x3) + +inst_25: +// rs1==x24, rd==x28, +// opcode: mop.r.4 ; op1:x24; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x28, x24, 0, 0x0, x2, 6*XLEN/8, x3) + +inst_26: +// rs1==x15, rd==x20, +// opcode: mop.r.4 ; op1:x15; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x20, x15, 0, 0x0, x2, 7*XLEN/8, x3) + +inst_27: +// rs1==x17, rd==x21, +// opcode: mop.r.4 ; op1:x17; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x21, x17, 0, 0x0, x2, 8*XLEN/8, x3) + +inst_28: +// rs1==x23, rd==x0, +// opcode: mop.r.4 ; op1:x23; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x0, x23, 0, 0x0, x2, 9*XLEN/8, x3) + +inst_29: +// rs1==x19, rd==x17, +// opcode: mop.r.4 ; op1:x19; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x17, x19, 0, 0x0, x2, 10*XLEN/8, x3) + +inst_30: +// rs1==x6, rd==x26, +// opcode: mop.r.4 ; op1:x6; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x26, x6, 0, 0x0, x2, 11*XLEN/8, x3) + +inst_31: +// rs1==x20, rd==x5, +// opcode: mop.r.4 ; op1:x20; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.4, x5, x20, 0, 0x0, x2, 12*XLEN/8, x3) +#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_x4_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_1: + .fill 19*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 13*((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/Zimop/src/mop.r.5-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.5-01.S new file mode 100644 index 000000000..4da5ce37d --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.5-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.5 instruction of the RISC-V RV64Zimop extension for the mop.r.5 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.5) + +RVTEST_SIGBASE(x16,signature_x16_1) + +inst_0: +// rs1 == rd, rs1==x10, rd==x10, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.5 ; op1:x10; dest:x10; op1val:-0xb504f332; immval:-0x800 +TEST_R_OP( mop.r.5, x10, x10, 0, -0xb504f332, x16, 0*XLEN/8, x24) + +inst_1: +// rs1 != rd, rs1==x12, rd==x0, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.5 ; op1:x12; dest:x0; op1val:0x200000000; immval:0x7ff +TEST_R_OP( mop.r.5, x0, x12, 0, 0x200000000, x16, 1*XLEN/8, x24) + +inst_2: +// rs1==x20, rd==x13, imm_val == 0, +// opcode: mop.r.5 ; op1:x20; dest:x13; op1val:-0x200001; immval:0x0 +TEST_R_OP( mop.r.5, x13, x20, 0, -0x200001, x16, 2*XLEN/8, x24) + +inst_3: +// rs1==x1, rd==x23, imm_val == 1, +// opcode: mop.r.5 ; op1:x1; dest:x23; op1val:0x3333333333333332; immval:0x1 +TEST_R_OP( mop.r.5, x23, x1, 0, 0x3333333333333332, x16, 3*XLEN/8, x24) + +inst_4: +// rs1==x25, rd==x7, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.5 ; op1:x25; dest:x7; op1val:-0x800000000001; immval:0x40 +TEST_R_OP( mop.r.5, x7, x25, 0, -0x800000000001, x16, 4*XLEN/8, x24) + +inst_5: +// rs1==x29, rd==x19, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.5 ; op1:x29; dest:x19; op1val:-0x8000000000000000; immval:0x7ff +TEST_R_OP( mop.r.5, x19, x29, 0, -0x8000000000000000, x16, 5*XLEN/8, x24) + +inst_6: +// rs1==x21, rd==x1, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.5 ; op1:x21; dest:x1; op1val:0x7fffffffffffffff; immval:0x5 +TEST_R_OP( mop.r.5, x1, x21, 0, 0x7fffffffffffffff, x16, 6*XLEN/8, x24) + +inst_7: +// rs1==x22, rd==x15, rs1_val == 0, +// opcode: mop.r.5 ; op1:x22; dest:x15; op1val:0x0; immval:-0x556 +TEST_R_OP( mop.r.5, x15, x22, 0, 0x0, x16, 7*XLEN/8, x24) + +inst_8: +// rs1==x4, rd==x5, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.5 ; op1:x4; dest:x5; op1val:0x1; immval:-0x21 +TEST_R_OP( mop.r.5, x5, x4, 0, 0x1, x16, 8*XLEN/8, x24) + +inst_9: +// rs1==x30, rd==x22, rs1_val == imm_val, +// opcode: mop.r.5 ; op1:x30; dest:x22; op1val:-0x5; immval:-0x5 +TEST_R_OP( mop.r.5, x22, x30, 0, -0x5, x16, 9*XLEN/8, x24) + +inst_10: +// rs1==x15, rd==x11, +// opcode: mop.r.5 ; op1:x15; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x11, x15, 0, 0x0, x16, 10*XLEN/8, x24) + +inst_11: +// rs1==x7, rd==x6, +// opcode: mop.r.5 ; op1:x7; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x6, x7, 0, 0x0, x16, 11*XLEN/8, x24) + +inst_12: +// rs1==x6, rd==x17, +// opcode: mop.r.5 ; op1:x6; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x17, x6, 0, 0x0, x16, 12*XLEN/8, x24) + +inst_13: +// rs1==x14, rd==x31, +// opcode: mop.r.5 ; op1:x14; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x31, x14, 0, 0x0, x16, 13*XLEN/8, x24) + +inst_14: +// rs1==x9, rd==x18, +// opcode: mop.r.5 ; op1:x9; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x18, x9, 0, 0x0, x16, 14*XLEN/8, x24) + +inst_15: +// rs1==x2, rd==x14, +// opcode: mop.r.5 ; op1:x2; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x14, x2, 0, 0x0, x16, 15*XLEN/8, x24) + +inst_16: +// rs1==x8, rd==x9, +// opcode: mop.r.5 ; op1:x8; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x9, x8, 0, 0x0, x16, 16*XLEN/8, x24) + +inst_17: +// rs1==x27, rd==x3, +// opcode: mop.r.5 ; op1:x27; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x3, x27, 0, 0x0, x16, 17*XLEN/8, x24) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_18: +// rs1==x28, rd==x25, +// opcode: mop.r.5 ; op1:x28; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x25, x28, 0, 0x0, x1, 0*XLEN/8, x6) + +inst_19: +// rs1==x23, rd==x20, +// opcode: mop.r.5 ; op1:x23; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x20, x23, 0, 0x0, x1, 1*XLEN/8, x6) + +inst_20: +// rs1==x16, rd==x24, +// opcode: mop.r.5 ; op1:x16; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x24, x16, 0, 0x0, x1, 2*XLEN/8, x6) + +inst_21: +// rs1==x26, rd==x30, +// opcode: mop.r.5 ; op1:x26; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x30, x26, 0, 0x0, x1, 3*XLEN/8, x6) + +inst_22: +// rs1==x11, rd==x28, +// opcode: mop.r.5 ; op1:x11; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x28, x11, 0, 0x0, x1, 4*XLEN/8, x6) + +inst_23: +// rs1==x18, rd==x21, +// opcode: mop.r.5 ; op1:x18; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x21, x18, 0, 0x0, x1, 5*XLEN/8, x6) + +inst_24: +// rs1==x17, rd==x4, +// opcode: mop.r.5 ; op1:x17; dest:x4; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x4, x17, 0, 0x0, x1, 6*XLEN/8, x6) + +inst_25: +// rs1==x0, rd==x26, +// opcode: mop.r.5 ; op1:x0; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x26, x0, 0, 0x0, x1, 7*XLEN/8, x6) + +inst_26: +// rs1==x5, rd==x8, +// opcode: mop.r.5 ; op1:x5; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x8, x5, 0, 0x0, x1, 8*XLEN/8, x6) + +inst_27: +// rs1==x3, rd==x12, +// opcode: mop.r.5 ; op1:x3; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x12, x3, 0, 0x0, x1, 9*XLEN/8, x6) + +inst_28: +// rs1==x13, rd==x16, +// opcode: mop.r.5 ; op1:x13; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x16, x13, 0, 0x0, x1, 10*XLEN/8, x6) + +inst_29: +// rs1==x24, rd==x29, +// opcode: mop.r.5 ; op1:x24; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x29, x24, 0, 0x0, x1, 11*XLEN/8, x6) + +inst_30: +// rs1==x19, rd==x27, +// opcode: mop.r.5 ; op1:x19; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x27, x19, 0, 0x0, x1, 12*XLEN/8, x6) + +inst_31: +// rs1==x31, rd==x2, +// opcode: mop.r.5 ; op1:x31; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.5, x2, x31, 0, 0x0, x1, 13*XLEN/8, x6) +#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_x16_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x16_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 14*((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/Zimop/src/mop.r.6-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.6-01.S new file mode 100644 index 000000000..9253e73bb --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.6-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.6 instruction of the RISC-V RV64Zimop extension for the mop.r.6 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.6) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd, rs1==x2, rd==x2, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.6 ; op1:x2; dest:x2; op1val:-0x4001; immval:-0x800 +TEST_R_OP( mop.r.6, x2, x2, 0, -0x4001, x1, 0*XLEN/8, x12) + +inst_1: +// rs1 != rd, rs1==x17, rd==x4, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.6 ; op1:x17; dest:x4; op1val:0x4; immval:0x7ff +TEST_R_OP( mop.r.6, x4, x17, 0, 0x4, x1, 1*XLEN/8, x12) + +inst_2: +// rs1==x10, rd==x8, imm_val == 0, +// opcode: mop.r.6 ; op1:x10; dest:x8; op1val:-0x400001; immval:0x0 +TEST_R_OP( mop.r.6, x8, x10, 0, -0x400001, x1, 2*XLEN/8, x12) + +inst_3: +// rs1==x30, rd==x19, imm_val == 1, +// opcode: mop.r.6 ; op1:x30; dest:x19; op1val:0x3333333333333334; immval:0x1 +TEST_R_OP( mop.r.6, x19, x30, 0, 0x3333333333333334, x1, 3*XLEN/8, x12) + +inst_4: +// rs1==x20, rd==x23, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.6 ; op1:x20; dest:x23; op1val:-0xb504f332; immval:0x667 +TEST_R_OP( mop.r.6, x23, x20, 0, -0xb504f332, x1, 4*XLEN/8, x12) + +inst_5: +// rs1==x0, rd==x24, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.6 ; op1:x0; dest:x24; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.6, x24, x0, 0, 0x0, x1, 5*XLEN/8, x12) + +inst_6: +// rs1==x3, rd==x30, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.6 ; op1:x3; dest:x30; op1val:0x7fffffffffffffff; immval:0x0 +TEST_R_OP( mop.r.6, x30, x3, 0, 0x7fffffffffffffff, x1, 6*XLEN/8, x12) + +inst_7: +// rs1==x5, rd==x26, rs1_val == 0, +// opcode: mop.r.6 ; op1:x5; dest:x26; op1val:0x0; immval:0x4 +TEST_R_OP( mop.r.6, x26, x5, 0, 0x0, x1, 7*XLEN/8, x12) + +inst_8: +// rs1==x31, rd==x5, rs1_val == 1, +// opcode: mop.r.6 ; op1:x31; dest:x5; op1val:0x1; immval:0x665 +TEST_R_OP( mop.r.6, x5, x31, 0, 0x1, x1, 8*XLEN/8, x12) + +inst_9: +// rs1==x26, rd==x18, rs1_val == imm_val, +// opcode: mop.r.6 ; op1:x26; dest:x18; op1val:-0x101; immval:-0x101 +TEST_R_OP( mop.r.6, x18, x26, 0, -0x101, x1, 9*XLEN/8, x12) + +inst_10: +// rs1==x23, rd==x13, rs1_val > 0 and imm_val < 0, +// opcode: mop.r.6 ; op1:x23; dest:x13; op1val:0x400; immval:-0x400 +TEST_R_OP( mop.r.6, x13, x23, 0, 0x400, x1, 10*XLEN/8, x12) + +inst_11: +// rs1==x13, rd==x31, +// opcode: mop.r.6 ; op1:x13; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x31, x13, 0, 0x0, x1, 11*XLEN/8, x12) + +inst_12: +// rs1==x28, rd==x22, +// opcode: mop.r.6 ; op1:x28; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x22, x28, 0, 0x0, x1, 12*XLEN/8, x12) + +inst_13: +// rs1==x22, rd==x11, +// opcode: mop.r.6 ; op1:x22; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x11, x22, 0, 0x0, x1, 13*XLEN/8, x12) + +inst_14: +// rs1==x29, rd==x27, +// opcode: mop.r.6 ; op1:x29; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x27, x29, 0, 0x0, x1, 14*XLEN/8, x12) + +inst_15: +// rs1==x4, rd==x3, +// opcode: mop.r.6 ; op1:x4; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x3, x4, 0, 0x0, x1, 15*XLEN/8, x12) + +inst_16: +// rs1==x6, rd==x29, +// opcode: mop.r.6 ; op1:x6; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x29, x6, 0, 0x0, x1, 16*XLEN/8, x12) + +inst_17: +// rs1==x27, rd==x7, +// opcode: mop.r.6 ; op1:x27; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x7, x27, 0, 0x0, x1, 17*XLEN/8, x12) + +inst_18: +// rs1==x14, rd==x10, +// opcode: mop.r.6 ; op1:x14; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x10, x14, 0, 0x0, x1, 18*XLEN/8, x12) + +inst_19: +// rs1==x24, rd==x15, +// opcode: mop.r.6 ; op1:x24; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x15, x24, 0, 0x0, x1, 19*XLEN/8, x12) + +inst_20: +// rs1==x8, rd==x9, +// opcode: mop.r.6 ; op1:x8; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x9, x8, 0, 0x0, x1, 20*XLEN/8, x12) + +inst_21: +// rs1==x12, rd==x28, +// opcode: mop.r.6 ; op1:x12; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x28, x12, 0, 0x0, x1, 21*XLEN/8, x3) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_22: +// rs1==x19, rd==x1, +// opcode: mop.r.6 ; op1:x19; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x1, x19, 0, 0x0, x2, 0*XLEN/8, x3) + +inst_23: +// rs1==x1, rd==x12, +// opcode: mop.r.6 ; op1:x1; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x12, x1, 0, 0x0, x2, 1*XLEN/8, x3) + +inst_24: +// rs1==x7, rd==x0, +// opcode: mop.r.6 ; op1:x7; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x0, x7, 0, 0x0, x2, 2*XLEN/8, x3) + +inst_25: +// rs1==x21, rd==x20, +// opcode: mop.r.6 ; op1:x21; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x20, x21, 0, 0x0, x2, 3*XLEN/8, x3) + +inst_26: +// rs1==x18, rd==x25, +// opcode: mop.r.6 ; op1:x18; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x25, x18, 0, 0x0, x2, 4*XLEN/8, x3) + +inst_27: +// rs1==x9, rd==x17, +// opcode: mop.r.6 ; op1:x9; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x17, x9, 0, 0x0, x2, 5*XLEN/8, x3) + +inst_28: +// rs1==x16, rd==x21, +// opcode: mop.r.6 ; op1:x16; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x21, x16, 0, 0x0, x2, 6*XLEN/8, x3) + +inst_29: +// rs1==x15, rd==x14, +// opcode: mop.r.6 ; op1:x15; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x14, x15, 0, 0x0, x2, 7*XLEN/8, x3) + +inst_30: +// rs1==x11, rd==x6, +// opcode: mop.r.6 ; op1:x11; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x6, x11, 0, 0x0, x2, 8*XLEN/8, x3) + +inst_31: +// rs1==x25, rd==x16, +// opcode: mop.r.6 ; op1:x25; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.6, x16, x25, 0, 0x0, x2, 9*XLEN/8, x3) + +inst_32: +// rs1_val == (-2**(xlen-1)), +// opcode: mop.r.6 ; op1:x30; dest:x31; op1val:-0x8000000000000000; immval:0x0 +TEST_R_OP( mop.r.6, x31, x30, 0, -0x8000000000000000, x2, 10*XLEN/8, x3) +#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 22*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 11*((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/Zimop/src/mop.r.7-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.7-01.S new file mode 100644 index 000000000..2dd8b3ed6 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.7-01.S @@ -0,0 +1,257 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.7 instruction of the RISC-V RV64Zimop extension for the mop.r.7 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.7) + +RVTEST_SIGBASE(x14,signature_x14_1) + +inst_0: +// rs1 == rd, rs1==x25, rd==x25, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.7 ; op1:x25; dest:x25; op1val:-0x5555555555555556; immval:-0x800 +TEST_R_OP( mop.r.7, x25, x25, 0, -0x5555555555555556, x14, 0*XLEN/8, x21) + +inst_1: +// rs1 != rd, rs1==x30, rd==x13, imm_val == (2**(12-1)-1), rs1_val > 0 and imm_val > 0 +// opcode: mop.r.7 ; op1:x30; dest:x13; op1val:0x100000000000000; immval:0x7ff +TEST_R_OP( mop.r.7, x13, x30, 0, 0x100000000000000, x14, 1*XLEN/8, x21) + +inst_2: +// rs1==x2, rd==x16, imm_val == 0, +// opcode: mop.r.7 ; op1:x2; dest:x16; op1val:0x10000000000; immval:0x0 +TEST_R_OP( mop.r.7, x16, x2, 0, 0x10000000000, x14, 2*XLEN/8, x21) + +inst_3: +// rs1==x0, rd==x4, imm_val == 1, +// opcode: mop.r.7 ; op1:x0; dest:x4; op1val:0x0; immval:0x1 +TEST_R_OP( mop.r.7, x4, x0, 0, 0x0, x14, 3*XLEN/8, x21) + +inst_4: +// rs1==x15, rd==x5, rs1_val < 0 and imm_val > 0, +// opcode: mop.r.7 ; op1:x15; dest:x5; op1val:-0x4; immval:0x2d +TEST_R_OP( mop.r.7, x5, x15, 0, -0x4, x14, 4*XLEN/8, x21) + +inst_5: +// rs1==x5, rd==x7, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.7 ; op1:x5; dest:x7; op1val:-0x8000000000000000; immval:0x0 +TEST_R_OP( mop.r.7, x7, x5, 0, -0x8000000000000000, x14, 5*XLEN/8, x21) + +inst_6: +// rs1==x6, rd==x3, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.7 ; op1:x6; dest:x3; op1val:0x7fffffffffffffff; immval:0x3ff +TEST_R_OP( mop.r.7, x3, x6, 0, 0x7fffffffffffffff, x14, 6*XLEN/8, x21) + +inst_7: +// rs1==x4, rd==x19, rs1_val == 0, +// opcode: mop.r.7 ; op1:x4; dest:x19; op1val:0x0; immval:0x200 +TEST_R_OP( mop.r.7, x19, x4, 0, 0x0, x14, 7*XLEN/8, x21) + +inst_8: +// rs1==x24, rd==x11, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.7 ; op1:x24; dest:x11; op1val:0x1; immval:-0x7 +TEST_R_OP( mop.r.7, x11, x24, 0, 0x1, x14, 8*XLEN/8, x21) + +inst_9: +// rs1==x10, rd==x22, rs1_val == imm_val, +// opcode: mop.r.7 ; op1:x10; dest:x22; op1val:-0x11; immval:-0x11 +TEST_R_OP( mop.r.7, x22, x10, 0, -0x11, x14, 9*XLEN/8, x21) + +inst_10: +// rs1==x1, rd==x20, +// opcode: mop.r.7 ; op1:x1; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x20, x1, 0, 0x0, x14, 10*XLEN/8, x21) + +inst_11: +// rs1==x9, rd==x12, +// opcode: mop.r.7 ; op1:x9; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x12, x9, 0, 0x0, x14, 11*XLEN/8, x21) + +inst_12: +// rs1==x22, rd==x28, +// opcode: mop.r.7 ; op1:x22; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x28, x22, 0, 0x0, x14, 12*XLEN/8, x21) + +inst_13: +// rs1==x29, rd==x8, +// opcode: mop.r.7 ; op1:x29; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x8, x29, 0, 0x0, x14, 13*XLEN/8, x21) + +inst_14: +// rs1==x7, rd==x26, +// opcode: mop.r.7 ; op1:x7; dest:x26; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x26, x7, 0, 0x0, x14, 14*XLEN/8, x21) + +inst_15: +// rs1==x18, rd==x10, +// opcode: mop.r.7 ; op1:x18; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x10, x18, 0, 0x0, x14, 15*XLEN/8, x21) + +inst_16: +// rs1==x12, rd==x0, +// opcode: mop.r.7 ; op1:x12; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x0, x12, 0, 0x0, x14, 16*XLEN/8, x21) + +inst_17: +// rs1==x28, rd==x6, +// opcode: mop.r.7 ; op1:x28; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x6, x28, 0, 0x0, x14, 17*XLEN/8, x21) + +inst_18: +// rs1==x17, rd==x24, +// opcode: mop.r.7 ; op1:x17; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x24, x17, 0, 0x0, x14, 18*XLEN/8, x21) + +inst_19: +// rs1==x31, rd==x29, +// opcode: mop.r.7 ; op1:x31; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x29, x31, 0, 0x0, x14, 19*XLEN/8, x5) +RVTEST_SIGBASE(x4,signature_x4_0) + +inst_20: +// rs1==x11, rd==x14, +// opcode: mop.r.7 ; op1:x11; dest:x14; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x14, x11, 0, 0x0, x4, 0*XLEN/8, x5) + +inst_21: +// rs1==x21, rd==x15, +// opcode: mop.r.7 ; op1:x21; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x15, x21, 0, 0x0, x4, 1*XLEN/8, x5) + +inst_22: +// rs1==x23, rd==x1, +// opcode: mop.r.7 ; op1:x23; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x1, x23, 0, 0x0, x4, 2*XLEN/8, x5) + +inst_23: +// rs1==x26, rd==x17, +// opcode: mop.r.7 ; op1:x26; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x17, x26, 0, 0x0, x4, 3*XLEN/8, x5) + +inst_24: +// rs1==x13, rd==x2, +// opcode: mop.r.7 ; op1:x13; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x2, x13, 0, 0x0, x4, 4*XLEN/8, x5) + +inst_25: +// rs1==x3, rd==x21, +// opcode: mop.r.7 ; op1:x3; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x21, x3, 0, 0x0, x4, 5*XLEN/8, x5) + +inst_26: +// rs1==x8, rd==x18, +// opcode: mop.r.7 ; op1:x8; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x18, x8, 0, 0x0, x4, 6*XLEN/8, x5) + +inst_27: +// rs1==x14, rd==x30, +// opcode: mop.r.7 ; op1:x14; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x30, x14, 0, 0x0, x4, 7*XLEN/8, x5) + +inst_28: +// rs1==x20, rd==x31, +// opcode: mop.r.7 ; op1:x20; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x31, x20, 0, 0x0, x4, 8*XLEN/8, x5) + +inst_29: +// rs1==x27, rd==x9, +// opcode: mop.r.7 ; op1:x27; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x9, x27, 0, 0x0, x4, 9*XLEN/8, x5) + +inst_30: +// rs1==x19, rd==x23, +// opcode: mop.r.7 ; op1:x19; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x23, x19, 0, 0x0, x4, 10*XLEN/8, x5) + +inst_31: +// rs1==x16, rd==x27, +// opcode: mop.r.7 ; op1:x16; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.7, x27, x16, 0, 0x0, x4, 11*XLEN/8, x5) + +inst_32: +// imm_val == 1, +// opcode: mop.r.7 ; op1:x30; dest:x31; op1val:0x1000000000000; immval:0x1 +TEST_R_OP( mop.r.7, x31, x30, 0, 0x1000000000000, x4, 12*XLEN/8, x5) +#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_x14_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x14_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_0: + .fill 13*((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/Zimop/src/mop.r.8-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.8-01.S new file mode 100644 index 000000000..565d7e359 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.8-01.S @@ -0,0 +1,262 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.8 instruction of the RISC-V RV64Zimop extension for the mop.r.8 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.8) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd, rs1==x20, rd==x20, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.8 ; op1:x20; dest:x20; op1val:0x800000; immval:-0x800 +TEST_R_OP( mop.r.8, x20, x20, 0, 0x800000, x2, 0*XLEN/8, x7) + +inst_1: +// rs1 != rd, rs1==x26, rd==x21, imm_val == (2**(12-1)-1), rs1_val == 0 +// opcode: mop.r.8 ; op1:x26; dest:x21; op1val:0x0; immval:0x7ff +TEST_R_OP( mop.r.8, x21, x26, 0, 0x0, x2, 1*XLEN/8, x7) + +inst_2: +// rs1==x25, rd==x22, imm_val == 0, +// opcode: mop.r.8 ; op1:x25; dest:x22; op1val:-0x4000000000000001; immval:0x0 +TEST_R_OP( mop.r.8, x22, x25, 0, -0x4000000000000001, x2, 2*XLEN/8, x7) + +inst_3: +// rs1==x5, rd==x4, imm_val == 1, rs1_val < 0 and imm_val > 0 +// opcode: mop.r.8 ; op1:x5; dest:x4; op1val:-0x6; immval:0x1 +TEST_R_OP( mop.r.8, x4, x5, 0, -0x6, x2, 3*XLEN/8, x7) + +inst_4: +// rs1==x9, rd==x14, rs1_val < 0 and imm_val < 0, +// opcode: mop.r.8 ; op1:x9; dest:x14; op1val:-0x80000000000001; immval:-0x1 +TEST_R_OP( mop.r.8, x14, x9, 0, -0x80000000000001, x2, 4*XLEN/8, x7) + +inst_5: +// rs1==x8, rd==x17, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.8 ; op1:x8; dest:x17; op1val:-0x8000000000000000; immval:0x334 +TEST_R_OP( mop.r.8, x17, x8, 0, -0x8000000000000000, x2, 5*XLEN/8, x7) + +inst_6: +// rs1==x0, rd==x23, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.8 ; op1:x0; dest:x23; op1val:0x0; immval:-0x401 +TEST_R_OP( mop.r.8, x23, x0, 0, 0x0, x2, 6*XLEN/8, x7) + +inst_7: +// rs1==x14, rd==x30, rs1_val == 1, +// opcode: mop.r.8 ; op1:x14; dest:x30; op1val:0x1; immval:-0x7 +TEST_R_OP( mop.r.8, x30, x14, 0, 0x1, x2, 7*XLEN/8, x7) + +inst_8: +// rs1==x24, rd==x0, rs1_val == imm_val, +// opcode: mop.r.8 ; op1:x24; dest:x0; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.8, x0, x24, 0, 0x0, x2, 8*XLEN/8, x7) + +inst_9: +// rs1==x31, rd==x26, rs1_val > 0 and imm_val > 0, +// opcode: mop.r.8 ; op1:x31; dest:x26; op1val:0x1000000000000000; immval:0x2 +TEST_R_OP( mop.r.8, x26, x31, 0, 0x1000000000000000, x2, 9*XLEN/8, x7) + +inst_10: +// rs1==x10, rd==x27, +// opcode: mop.r.8 ; op1:x10; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x27, x10, 0, 0x0, x2, 10*XLEN/8, x7) + +inst_11: +// rs1==x13, rd==x29, +// opcode: mop.r.8 ; op1:x13; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x29, x13, 0, 0x0, x2, 11*XLEN/8, x7) + +inst_12: +// rs1==x21, rd==x28, +// opcode: mop.r.8 ; op1:x21; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x28, x21, 0, 0x0, x2, 12*XLEN/8, x7) + +inst_13: +// rs1==x29, rd==x3, +// opcode: mop.r.8 ; op1:x29; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x3, x29, 0, 0x0, x2, 13*XLEN/8, x7) + +inst_14: +// rs1==x28, rd==x25, +// opcode: mop.r.8 ; op1:x28; dest:x25; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x25, x28, 0, 0x0, x2, 14*XLEN/8, x7) + +inst_15: +// rs1==x1, rd==x19, +// opcode: mop.r.8 ; op1:x1; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x19, x1, 0, 0x0, x2, 15*XLEN/8, x7) + +inst_16: +// rs1==x12, rd==x13, +// opcode: mop.r.8 ; op1:x12; dest:x13; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x13, x12, 0, 0x0, x2, 16*XLEN/8, x7) + +inst_17: +// rs1==x19, rd==x10, +// opcode: mop.r.8 ; op1:x19; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x10, x19, 0, 0x0, x2, 17*XLEN/8, x7) + +inst_18: +// rs1==x6, rd==x18, +// opcode: mop.r.8 ; op1:x6; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x18, x6, 0, 0x0, x2, 18*XLEN/8, x7) + +inst_19: +// rs1==x3, rd==x7, +// opcode: mop.r.8 ; op1:x3; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x7, x3, 0, 0x0, x2, 19*XLEN/8, x10) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_20: +// rs1==x16, rd==x2, +// opcode: mop.r.8 ; op1:x16; dest:x2; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x2, x16, 0, 0x0, x3, 0*XLEN/8, x10) + +inst_21: +// rs1==x4, rd==x5, +// opcode: mop.r.8 ; op1:x4; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x5, x4, 0, 0x0, x3, 1*XLEN/8, x10) + +inst_22: +// rs1==x17, rd==x11, +// opcode: mop.r.8 ; op1:x17; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x11, x17, 0, 0x0, x3, 2*XLEN/8, x10) + +inst_23: +// rs1==x7, rd==x31, +// opcode: mop.r.8 ; op1:x7; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x31, x7, 0, 0x0, x3, 3*XLEN/8, x10) + +inst_24: +// rs1==x23, rd==x12, +// opcode: mop.r.8 ; op1:x23; dest:x12; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x12, x23, 0, 0x0, x3, 4*XLEN/8, x10) + +inst_25: +// rs1==x27, rd==x8, +// opcode: mop.r.8 ; op1:x27; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x8, x27, 0, 0x0, x3, 5*XLEN/8, x10) + +inst_26: +// rs1==x11, rd==x9, +// opcode: mop.r.8 ; op1:x11; dest:x9; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x9, x11, 0, 0x0, x3, 6*XLEN/8, x10) + +inst_27: +// rs1==x30, rd==x24, +// opcode: mop.r.8 ; op1:x30; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x24, x30, 0, 0x0, x3, 7*XLEN/8, x10) + +inst_28: +// rs1==x18, rd==x16, +// opcode: mop.r.8 ; op1:x18; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x16, x18, 0, 0x0, x3, 8*XLEN/8, x10) + +inst_29: +// rs1==x22, rd==x15, +// opcode: mop.r.8 ; op1:x22; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x15, x22, 0, 0x0, x3, 9*XLEN/8, x10) + +inst_30: +// rs1==x2, rd==x1, +// opcode: mop.r.8 ; op1:x2; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x1, x2, 0, 0x0, x3, 10*XLEN/8, x10) + +inst_31: +// rs1==x15, rd==x6, +// opcode: mop.r.8 ; op1:x15; dest:x6; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.8, x6, x15, 0, 0x0, x3, 11*XLEN/8, x10) + +inst_32: +// rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.8 ; op1:x30; dest:x31; op1val:0x7fffffffffffffff; immval:-0x401 +TEST_R_OP( mop.r.8, x31, x30, 0, 0x7fffffffffffffff, x3, 12*XLEN/8, x10) + +inst_33: +// rs1_val == imm_val, +// opcode: mop.r.8 ; op1:x30; dest:x31; op1val:0x0; immval:0x0 +TEST_R_OP( mop.r.8, x31, x30, 0, 0x0, x3, 13*XLEN/8, x10) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 20*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 14*((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/Zimop/src/mop.r.9-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.9-01.S new file mode 100644 index 000000000..b12643462 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.r.9-01.S @@ -0,0 +1,252 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.r.9 instruction of the RISC-V RV64Zimop extension for the mop.r.9 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.r.9) + +RVTEST_SIGBASE(x11,signature_x11_1) + +inst_0: +// rs1 == rd, rs1==x14, rd==x14, imm_val == (-2**(12-1)), rs1_val != imm_val, rs1_val < 0 and imm_val < 0 +// opcode: mop.r.9 ; op1:x14; dest:x14; op1val:-0x3; immval:-0x800 +TEST_R_OP( mop.r.9, x14, x14, 0, -0x3, x11, 0*XLEN/8, x1) + +inst_1: +// rs1 != rd, rs1==x15, rd==x25, imm_val == (2**(12-1)-1), rs1_val < 0 and imm_val > 0 +// opcode: mop.r.9 ; op1:x15; dest:x25; op1val:-0x80000000000001; immval:0x7ff +TEST_R_OP( mop.r.9, x25, x15, 0, -0x80000000000001, x11, 1*XLEN/8, x1) + +inst_2: +// rs1==x21, rd==x4, imm_val == 0, +// opcode: mop.r.9 ; op1:x21; dest:x4; op1val:0x2000000000; immval:0x0 +TEST_R_OP( mop.r.9, x4, x21, 0, 0x2000000000, x11, 2*XLEN/8, x1) + +inst_3: +// rs1==x2, rd==x12, imm_val == 1, rs1_val > 0 and imm_val > 0 +// opcode: mop.r.9 ; op1:x2; dest:x12; op1val:0xb504f332; immval:0x1 +TEST_R_OP( mop.r.9, x12, x2, 0, 0xb504f332, x11, 3*XLEN/8, x1) + +inst_4: +// rs1==x19, rd==x26, rs1_val == (-2**(xlen-1)), +// opcode: mop.r.9 ; op1:x19; dest:x26; op1val:-0x8000000000000000; immval:0x20 +TEST_R_OP( mop.r.9, x26, x19, 0, -0x8000000000000000, x11, 4*XLEN/8, x1) + +inst_5: +// rs1==x13, rd==x2, rs1_val == (2**(xlen-1)-1), +// opcode: mop.r.9 ; op1:x13; dest:x2; op1val:0x7fffffffffffffff; immval:0x332 +TEST_R_OP( mop.r.9, x2, x13, 0, 0x7fffffffffffffff, x11, 5*XLEN/8, x1) + +inst_6: +// rs1==x20, rd==x13, rs1_val == 0, +// opcode: mop.r.9 ; op1:x20; dest:x13; op1val:0x0; immval:0x2e +TEST_R_OP( mop.r.9, x13, x20, 0, 0x0, x11, 6*XLEN/8, x1) + +inst_7: +// rs1==x27, rd==x6, rs1_val == 1, rs1_val > 0 and imm_val < 0 +// opcode: mop.r.9 ; op1:x27; dest:x6; op1val:0x1; immval:-0x6 +TEST_R_OP( mop.r.9, x6, x27, 0, 0x1, x11, 7*XLEN/8, x1) + +inst_8: +// rs1==x5, rd==x9, rs1_val == imm_val, +// opcode: mop.r.9 ; op1:x5; dest:x9; op1val:-0x9; immval:-0x9 +TEST_R_OP( mop.r.9, x9, x5, 0, -0x9, x11, 8*XLEN/8, x1) + +inst_9: +// rs1==x28, rd==x15, +// opcode: mop.r.9 ; op1:x28; dest:x15; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x15, x28, 0, 0x0, x11, 9*XLEN/8, x1) + +inst_10: +// rs1==x10, rd==x3, +// opcode: mop.r.9 ; op1:x10; dest:x3; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x3, x10, 0, 0x0, x11, 10*XLEN/8, x1) + +inst_11: +// rs1==x24, rd==x20, +// opcode: mop.r.9 ; op1:x24; dest:x20; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x20, x24, 0, 0x0, x11, 11*XLEN/8, x1) + +inst_12: +// rs1==x8, rd==x16, +// opcode: mop.r.9 ; op1:x8; dest:x16; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x16, x8, 0, 0x0, x11, 12*XLEN/8, x1) + +inst_13: +// rs1==x9, rd==x0, +// opcode: mop.r.9 ; op1:x9; dest:x0; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x0, x9, 0, 0x0, x11, 13*XLEN/8, x1) + +inst_14: +// rs1==x31, rd==x30, +// opcode: mop.r.9 ; op1:x31; dest:x30; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x30, x31, 0, 0x0, x11, 14*XLEN/8, x1) + +inst_15: +// rs1==x7, rd==x22, +// opcode: mop.r.9 ; op1:x7; dest:x22; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x22, x7, 0, 0x0, x11, 15*XLEN/8, x1) + +inst_16: +// rs1==x23, rd==x10, +// opcode: mop.r.9 ; op1:x23; dest:x10; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x10, x23, 0, 0x0, x11, 16*XLEN/8, x1) + +inst_17: +// rs1==x16, rd==x1, +// opcode: mop.r.9 ; op1:x16; dest:x1; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x1, x16, 0, 0x0, x11, 17*XLEN/8, x9) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_18: +// rs1==x18, rd==x24, +// opcode: mop.r.9 ; op1:x18; dest:x24; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x24, x18, 0, 0x0, x2, 0*XLEN/8, x9) + +inst_19: +// rs1==x11, rd==x28, +// opcode: mop.r.9 ; op1:x11; dest:x28; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x28, x11, 0, 0x0, x2, 1*XLEN/8, x9) + +inst_20: +// rs1==x25, rd==x11, +// opcode: mop.r.9 ; op1:x25; dest:x11; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x11, x25, 0, 0x0, x2, 2*XLEN/8, x9) + +inst_21: +// rs1==x4, rd==x19, +// opcode: mop.r.9 ; op1:x4; dest:x19; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x19, x4, 0, 0x0, x2, 3*XLEN/8, x9) + +inst_22: +// rs1==x17, rd==x29, +// opcode: mop.r.9 ; op1:x17; dest:x29; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x29, x17, 0, 0x0, x2, 4*XLEN/8, x9) + +inst_23: +// rs1==x30, rd==x31, +// opcode: mop.r.9 ; op1:x30; dest:x31; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x31, x30, 0, 0x0, x2, 5*XLEN/8, x9) + +inst_24: +// rs1==x12, rd==x8, +// opcode: mop.r.9 ; op1:x12; dest:x8; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x8, x12, 0, 0x0, x2, 6*XLEN/8, x9) + +inst_25: +// rs1==x3, rd==x5, +// opcode: mop.r.9 ; op1:x3; dest:x5; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x5, x3, 0, 0x0, x2, 7*XLEN/8, x9) + +inst_26: +// rs1==x29, rd==x18, +// opcode: mop.r.9 ; op1:x29; dest:x18; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x18, x29, 0, 0x0, x2, 8*XLEN/8, x9) + +inst_27: +// rs1==x1, rd==x7, +// opcode: mop.r.9 ; op1:x1; dest:x7; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x7, x1, 0, 0x0, x2, 9*XLEN/8, x9) + +inst_28: +// rs1==x22, rd==x27, +// opcode: mop.r.9 ; op1:x22; dest:x27; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x27, x22, 0, 0x0, x2, 10*XLEN/8, x9) + +inst_29: +// rs1==x6, rd==x17, +// opcode: mop.r.9 ; op1:x6; dest:x17; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x17, x6, 0, 0x0, x2, 11*XLEN/8, x9) + +inst_30: +// rs1==x0, rd==x21, +// opcode: mop.r.9 ; op1:x0; dest:x21; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x21, x0, 0, 0x0, x2, 12*XLEN/8, x9) + +inst_31: +// rs1==x26, rd==x23, +// opcode: mop.r.9 ; op1:x26; dest:x23; op1val:0x0; immval:-0x800 +TEST_R_OP( mop.r.9, x23, x26, 0, 0x0, x2, 13*XLEN/8, x9) +#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_x11_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x11_1: + .fill 18*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 14*((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/Zimop/src/mop.rr.0-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.0-01.S new file mode 100644 index 000000000..05309a3c5 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.0-01.S @@ -0,0 +1,3517 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.0 instruction of the RISC-V RV64Zimop extension for the mop.rr.0 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.0) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd != rs2, rs1==x6, rs2==x10, rd==x6, rs1_val != rs2_val, rs1_val > 0 and rs2_val < 0, rs1_val == 1152921504606846976, rs2_val == -16385 +// opcode: mop.rr.0 ; op1:x6; op2:x10; dest:x6; op1val:0x1000000000000000; op2val:-0x4001 +TEST_RR_OP(mop.rr.0, x6, x6, x10, 0, 0x1000000000000000, -0x4001, x2, 0*XLEN/8, x8) + +inst_1: +// rs2 == rd != rs1, rs1==x24, rs2==x16, rd==x16, rs1_val < 0 and rs2_val < 0, rs2_val == -129 +// opcode: mop.rr.0 ; op1:x24; op2:x16; dest:x16; op1val:-0xb504f333; op2val:-0x81 +TEST_RR_OP(mop.rr.0, x16, x24, x16, 0, -0xb504f333, -0x81, x2, 1*XLEN/8, x8) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x20, rs2==x30, rd==x4, rs1_val < 0 and rs2_val > 0, rs1_val == -8796093022209, rs2_val == 1099511627776 +// opcode: mop.rr.0 ; op1:x20; op2:x30; dest:x4; op1val:-0x80000000001; op2val:0x10000000000 +TEST_RR_OP(mop.rr.0, x4, x20, x30, 0, -0x80000000001, 0x10000000000, x2, 2*XLEN/8, x8) + +inst_3: +// rs1 == rs2 != rd, rs1==x15, rs2==x15, rd==x17, rs1_val == (-2**(xlen-1)), rs2_val == 17592186044416, rs1_val == -9223372036854775808 +// opcode: mop.rr.0 ; op1:x15; op2:x15; dest:x17; op1val:-0x8000000000000000; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.0, x17, x15, x15, 0, -0x8000000000000000, -0x8000000000000000, x2, 3*XLEN/8, x8) + +inst_4: +// rs1 == rs2 == rd, rs1==x3, rs2==x3, rd==x3, rs1_val == (2**(xlen-1)-1), rs1_val == 9223372036854775807 +// opcode: mop.rr.0 ; op1:x3; op2:x3; dest:x3; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.0, x3, x3, x3, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x2, 4*XLEN/8, x8) + +inst_5: +// rs1==x12, rs2==x7, rd==x24, rs1_val == 0, rs2_val == -33 +// opcode: mop.rr.0 ; op1:x12; op2:x7; dest:x24; op1val:0x0; op2val:-0x21 +TEST_RR_OP(mop.rr.0, x24, x12, x7, 0, 0x0, -0x21, x2, 5*XLEN/8, x8) + +inst_6: +// rs1==x22, rs2==x25, rd==x18, rs1_val == 1, rs1_val > 0 and rs2_val > 0, rs2_val == 576460752303423488 +// opcode: mop.rr.0 ; op1:x22; op2:x25; dest:x18; op1val:0x1; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.0, x18, x22, x25, 0, 0x1, 0x800000000000000, x2, 6*XLEN/8, x8) + +inst_7: +// rs1==x30, rs2==x28, rd==x1, rs2_val == -2, rs1_val == 33554432 +// opcode: mop.rr.0 ; op1:x30; op2:x28; dest:x1; op1val:0x2000000; op2val:-0x2 +TEST_RR_OP(mop.rr.0, x1, x30, x28, 0, 0x2000000, -0x2, x2, 7*XLEN/8, x8) + +inst_8: +// rs1==x5, rs2==x31, rd==x11, rs2_val == -3, rs1_val == 65536 +// opcode: mop.rr.0 ; op1:x5; op2:x31; dest:x11; op1val:0x10000; op2val:-0x3 +TEST_RR_OP(mop.rr.0, x11, x5, x31, 0, 0x10000, -0x3, x2, 8*XLEN/8, x8) + +inst_9: +// rs1==x14, rs2==x29, rd==x21, rs2_val == -5, +// opcode: mop.rr.0 ; op1:x14; op2:x29; dest:x21; op1val:-0xb504f333; op2val:-0x5 +TEST_RR_OP(mop.rr.0, x21, x14, x29, 0, -0xb504f333, -0x5, x2, 9*XLEN/8, x8) + +inst_10: +// rs1==x29, rs2==x27, rd==x9, rs2_val == -9, rs1_val == -1073741825 +// opcode: mop.rr.0 ; op1:x29; op2:x27; dest:x9; op1val:-0x40000001; op2val:-0x9 +TEST_RR_OP(mop.rr.0, x9, x29, x27, 0, -0x40000001, -0x9, x2, 10*XLEN/8, x8) + +inst_11: +// rs1==x23, rs2==x12, rd==x29, rs2_val == -17, +// opcode: mop.rr.0 ; op1:x23; op2:x12; dest:x29; op1val:0x7fffffffffffffff; op2val:-0x11 +TEST_RR_OP(mop.rr.0, x29, x23, x12, 0, 0x7fffffffffffffff, -0x11, x2, 11*XLEN/8, x6) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_12: +// rs1==x7, rs2==x13, rd==x22, rs2_val == -65, rs1_val == -2 +// opcode: mop.rr.0 ; op1:x7; op2:x13; dest:x22; op1val:-0x2; op2val:-0x41 +TEST_RR_OP(mop.rr.0, x22, x7, x13, 0, -0x2, -0x41, x3, 0*XLEN/8, x6) + +inst_13: +// rs1==x11, rs2==x5, rd==x23, rs2_val == -257, rs1_val == 256 +// opcode: mop.rr.0 ; op1:x11; op2:x5; dest:x23; op1val:0x100; op2val:-0x101 +TEST_RR_OP(mop.rr.0, x23, x11, x5, 0, 0x100, -0x101, x3, 1*XLEN/8, x6) + +inst_14: +// rs1==x13, rs2==x11, rd==x7, rs2_val == -513, rs1_val == 17179869184 +// opcode: mop.rr.0 ; op1:x13; op2:x11; dest:x7; op1val:0x400000000; op2val:-0x201 +TEST_RR_OP(mop.rr.0, x7, x13, x11, 0, 0x400000000, -0x201, x3, 2*XLEN/8, x6) + +inst_15: +// rs1==x2, rs2==x21, rd==x13, rs2_val == -1025, rs1_val == -262145 +// opcode: mop.rr.0 ; op1:x2; op2:x21; dest:x13; op1val:-0x40001; op2val:-0x401 +TEST_RR_OP(mop.rr.0, x13, x2, x21, 0, -0x40001, -0x401, x3, 3*XLEN/8, x6) + +inst_16: +// rs1==x26, rs2==x20, rd==x15, rs2_val == -2049, rs1_val == -131073 +// opcode: mop.rr.0 ; op1:x26; op2:x20; dest:x15; op1val:-0x20001; op2val:-0x801 +TEST_RR_OP(mop.rr.0, x15, x26, x20, 0, -0x20001, -0x801, x3, 4*XLEN/8, x6) + +inst_17: +// rs1==x1, rs2==x4, rd==x5, rs2_val == -4097, rs1_val == 134217728 +// opcode: mop.rr.0 ; op1:x1; op2:x4; dest:x5; op1val:0x8000000; op2val:-0x1001 +TEST_RR_OP(mop.rr.0, x5, x1, x4, 0, 0x8000000, -0x1001, x3, 5*XLEN/8, x6) + +inst_18: +// rs1==x16, rs2==x9, rd==x0, rs2_val == -8193, rs1_val == -3 +// opcode: mop.rr.0 ; op1:x16; op2:x9; dest:x0; op1val:-0x3; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x0, x16, x9, 0, -0x3, -0x2001, x3, 6*XLEN/8, x6) + +inst_19: +// rs1==x28, rs2==x2, rd==x19, rs2_val == -32769, rs1_val == 549755813888 +// opcode: mop.rr.0 ; op1:x28; op2:x2; dest:x19; op1val:0x8000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.0, x19, x28, x2, 0, 0x8000000000, -0x8001, x3, 7*XLEN/8, x6) + +inst_20: +// rs1==x9, rs2==x26, rd==x8, rs2_val == -65537, rs1_val == -257 +// opcode: mop.rr.0 ; op1:x9; op2:x26; dest:x8; op1val:-0x101; op2val:-0x10001 +TEST_RR_OP(mop.rr.0, x8, x9, x26, 0, -0x101, -0x10001, x3, 8*XLEN/8, x6) + +inst_21: +// rs1==x0, rs2==x17, rd==x26, rs2_val == -131073, rs1_val == -4097 +// opcode: mop.rr.0 ; op1:x0; op2:x17; dest:x26; op1val:0x0; op2val:-0x20001 +TEST_RR_OP(mop.rr.0, x26, x0, x17, 0, 0x0, -0x20001, x3, 9*XLEN/8, x6) + +inst_22: +// rs1==x17, rs2==x1, rd==x12, rs2_val == -262145, rs1_val == -36028797018963969 +// opcode: mop.rr.0 ; op1:x17; op2:x1; dest:x12; op1val:-0x80000000000001; op2val:-0x40001 +TEST_RR_OP(mop.rr.0, x12, x17, x1, 0, -0x80000000000001, -0x40001, x3, 10*XLEN/8, x6) + +inst_23: +// rs1==x4, rs2==x24, rd==x31, rs2_val == -524289, rs1_val == 4 +// opcode: mop.rr.0 ; op1:x4; op2:x24; dest:x31; op1val:0x4; op2val:-0x80001 +TEST_RR_OP(mop.rr.0, x31, x4, x24, 0, 0x4, -0x80001, x3, 11*XLEN/8, x6) + +inst_24: +// rs1==x18, rs2==x23, rd==x2, rs2_val == -1048577, rs1_val == -562949953421313 +// opcode: mop.rr.0 ; op1:x18; op2:x23; dest:x2; op1val:-0x2000000000001; op2val:-0x100001 +TEST_RR_OP(mop.rr.0, x2, x18, x23, 0, -0x2000000000001, -0x100001, x3, 12*XLEN/8, x6) + +inst_25: +// rs1==x31, rs2==x19, rd==x25, rs2_val == -2097153, +// opcode: mop.rr.0 ; op1:x31; op2:x19; dest:x25; op1val:0x6; op2val:-0x200001 +TEST_RR_OP(mop.rr.0, x25, x31, x19, 0, 0x6, -0x200001, x3, 13*XLEN/8, x6) + +inst_26: +// rs1==x10, rs2==x0, rd==x20, rs2_val == -4194305, +// opcode: mop.rr.0 ; op1:x10; op2:x0; dest:x20; op1val:-0x101; op2val:0x0 +TEST_RR_OP(mop.rr.0, x20, x10, x0, 0, -0x101, 0x0, x3, 14*XLEN/8, x2) + +inst_27: +// rs1==x8, rs2==x22, rd==x30, rs2_val == -8388609, rs1_val == 262144 +// opcode: mop.rr.0 ; op1:x8; op2:x22; dest:x30; op1val:0x40000; op2val:-0x800001 +TEST_RR_OP(mop.rr.0, x30, x8, x22, 0, 0x40000, -0x800001, x3, 15*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_28: +// rs1==x21, rs2==x8, rd==x27, rs2_val == -16777217, +// opcode: mop.rr.0 ; op1:x21; op2:x8; dest:x27; op1val:0x6666666666666666; op2val:-0x1000001 +TEST_RR_OP(mop.rr.0, x27, x21, x8, 0, 0x6666666666666666, -0x1000001, x1, 0*XLEN/8, x2) + +inst_29: +// rs1==x19, rs2==x14, rd==x28, rs2_val == -33554433, rs1_val == 4294967296 +// opcode: mop.rr.0 ; op1:x19; op2:x14; dest:x28; op1val:0x100000000; op2val:-0x2000001 +TEST_RR_OP(mop.rr.0, x28, x19, x14, 0, 0x100000000, -0x2000001, x1, 1*XLEN/8, x2) + +inst_30: +// rs1==x27, rs2==x6, rd==x10, rs2_val == -67108865, +// opcode: mop.rr.0 ; op1:x27; op2:x6; dest:x10; op1val:0x7fffffffffffffff; op2val:-0x4000001 +TEST_RR_OP(mop.rr.0, x10, x27, x6, 0, 0x7fffffffffffffff, -0x4000001, x1, 2*XLEN/8, x2) + +inst_31: +// rs1==x25, rs2==x18, rd==x14, rs2_val == -134217729, +// opcode: mop.rr.0 ; op1:x25; op2:x18; dest:x14; op1val:0x4; op2val:-0x8000001 +TEST_RR_OP(mop.rr.0, x14, x25, x18, 0, 0x4, -0x8000001, x1, 3*XLEN/8, x2) + +inst_32: +// rs2_val == -268435457, rs1_val == -4611686018427387905 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000000000001, -0x10000001, x1, 4*XLEN/8, x2) + +inst_33: +// rs2_val == -536870913, rs1_val == 1048576 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x100000, -0x20000001, x1, 5*XLEN/8, x2) + +inst_34: +// rs2_val == -1073741825, rs1_val == 8589934592 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x200000000, -0x40000001, x1, 6*XLEN/8, x2) + +inst_35: +// rs2_val == -2147483649, rs1_val == -1048577 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0x80000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x100001, -0x80000001, x1, 7*XLEN/8, x2) + +inst_36: +// rs2_val == -4294967297, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x100000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0x100000001, x1, 8*XLEN/8, x2) + +inst_37: +// rs2_val == -8589934593, rs1_val == 4194304 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x200000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400000, -0x200000001, x1, 9*XLEN/8, x2) + +inst_38: +// rs2_val == -17179869185, rs1_val == 2251799813685248 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:-0x400000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x8000000000000, -0x400000001, x1, 10*XLEN/8, x2) + +inst_39: +// rs2_val == -34359738369, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:-0x800000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000000, -0x800000001, x1, 11*XLEN/8, x2) + +inst_40: +// rs2_val == -68719476737, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400000000, -0x1000000001, x1, 12*XLEN/8, x2) + +inst_41: +// rs2_val == -137438953473, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, -0x2000000001, x1, 13*XLEN/8, x2) + +inst_42: +// rs2_val == -274877906945, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, -0x4000000001, x1, 14*XLEN/8, x2) + +inst_43: +// rs2_val == -549755813889, rs1_val == 1099511627776 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10000000000, -0x8000000001, x1, 15*XLEN/8, x2) + +inst_44: +// rs2_val == -1099511627777, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000000000000, -0x10000000001, x1, 16*XLEN/8, x2) + +inst_45: +// rs2_val == -2199023255553, rs1_val == -5 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5, -0x20000000001, x1, 17*XLEN/8, x2) + +inst_46: +// rs2_val == -4398046511105, rs1_val == -1025 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x401, -0x40000000001, x1, 18*XLEN/8, x2) + +inst_47: +// rs2_val == -8796093022209, rs1_val == -17592186044417 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x100000000001, -0x80000000001, x1, 19*XLEN/8, x2) + +inst_48: +// rs2_val == -17592186044417, rs1_val == 32 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20, -0x100000000001, x1, 20*XLEN/8, x2) + +inst_49: +// rs2_val == -35184372088833, rs1_val == 1125899906842624 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000000000, -0x200000000001, x1, 21*XLEN/8, x2) + +inst_50: +// rs2_val == -70368744177665, rs1_val == 16 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10, -0x400000000001, x1, 22*XLEN/8, x2) + +inst_51: +// rs2_val == -140737488355329, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0x800000000001, x1, 23*XLEN/8, x2) + +inst_52: +// rs2_val == -281474976710657, rs1_val == -70368744177665 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400000000001, -0x1000000000001, x1, 24*XLEN/8, x2) + +inst_53: +// rs2_val == -562949953421313, rs1_val == -140737488355329 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800000000001, -0x2000000000001, x1, 25*XLEN/8, x2) + +inst_54: +// rs2_val == -1125899906842625, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10000, -0x4000000000001, x1, 26*XLEN/8, x2) + +inst_55: +// rs2_val == -2251799813685249, rs1_val == -6148914691236517206 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, -0x8000000000001, x1, 27*XLEN/8, x2) + +inst_56: +// rs2_val == -4503599627370497, rs1_val == -65537 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x10001, -0x10000000000001, x1, 28*XLEN/8, x2) + +inst_57: +// rs2_val == -9007199254740993, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x40001, -0x20000000000001, x1, 29*XLEN/8, x2) + +inst_58: +// rs2_val == -18014398509481985, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10, -0x40000000000001, x1, 30*XLEN/8, x2) + +inst_59: +// rs2_val == -36028797018963969, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, -0x80000000000001, x1, 31*XLEN/8, x2) + +inst_60: +// rs2_val == -72057594037927937, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, -0x100000000000001, x1, 32*XLEN/8, x2) + +inst_61: +// rs2_val == -144115188075855873, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000000000000, -0x200000000000001, x1, 33*XLEN/8, x2) + +inst_62: +// rs2_val == -288230376151711745, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000000000, -0x400000000000001, x1, 34*XLEN/8, x2) + +inst_63: +// rs2_val == -576460752303423489, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2000000000001, -0x800000000000001, x1, 35*XLEN/8, x2) + +inst_64: +// rs2_val == -1152921504606846977, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, -0x1000000000000001, x1, 36*XLEN/8, x2) + +inst_65: +// rs2_val == -2305843009213693953, rs1_val == 128 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80, -0x2000000000000001, x1, 37*XLEN/8, x2) + +inst_66: +// rs2_val == -4611686018427387905, rs1_val == 34359738368 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800000000, -0x4000000000000001, x1, 38*XLEN/8, x2) + +inst_67: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000000000, 0x7fffffffffffffff, x1, 39*XLEN/8, x2) + +inst_68: +// rs1_val == -9, rs2_val == 1 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x1 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x9, 0x1, x1, 40*XLEN/8, x2) + +inst_69: +// rs1_val == -17, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x10000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x11, 0x10000000000, x1, 41*XLEN/8, x2) + +inst_70: +// rs1_val == -33, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x21, 0x7fffffffffffffff, x1, 42*XLEN/8, x2) + +inst_71: +// rs1_val == -65, rs2_val == 1125899906842624 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x41, 0x4000000000000, x1, 43*XLEN/8, x2) + +inst_72: +// rs1_val == -129, rs2_val == 2305843009213693952 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x81, 0x2000000000000000, x1, 44*XLEN/8, x2) + +inst_73: +// rs1_val == -513, rs2_val == -6148914691236517206 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x201, -0x5555555555555556, x1, 45*XLEN/8, x2) + +inst_74: +// rs1_val == -2049, rs2_val == 134217728 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x8000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x801, 0x8000000, x1, 46*XLEN/8, x2) + +inst_75: +// rs1_val == -8193, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2001, 0x6666666666666665, x1, 47*XLEN/8, x2) + +inst_76: +// rs1_val == -16385, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4001, -0x2000000001, x1, 48*XLEN/8, x2) + +inst_77: +// rs1_val == -32769, rs2_val == 0 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8001, 0x0, x1, 49*XLEN/8, x2) + +inst_78: +// rs1_val == -524289, rs2_val == 4503599627370496 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x80001, 0x10000000000000, x1, 50*XLEN/8, x2) + +inst_79: +// rs1_val == -2097153, rs2_val == 288230376151711744 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x200001, 0x400000000000000, x1, 51*XLEN/8, x2) + +inst_80: +// rs1_val == -4194305, rs2_val == 67108864 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x4000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400001, 0x4000000, x1, 52*XLEN/8, x2) + +inst_81: +// rs1_val == -8388609, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800001, 0x6666666666666665, x1, 53*XLEN/8, x2) + +inst_82: +// rs1_val == -16777217, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1000001, 0x6666666666666665, x1, 54*XLEN/8, x2) + +inst_83: +// rs1_val == -33554433, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x4000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2000001, -0x4000001, x1, 55*XLEN/8, x2) + +inst_84: +// rs1_val == -67108865, rs2_val == 4 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000001, 0x4, x1, 56*XLEN/8, x2) + +inst_85: +// rs1_val == -134217729, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000001, 0xb504f332, x1, 57*XLEN/8, x2) + +inst_86: +// rs1_val == -268435457, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x10000001, 0x0, x1, 58*XLEN/8, x2) + +inst_87: +// rs1_val == -536870913, rs2_val == 68719476736 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x1000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20000001, 0x1000000000, x1, 59*XLEN/8, x2) + +inst_88: +// rs1_val == -2147483649, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x80000001, -0x800000000000001, x1, 60*XLEN/8, x2) + +inst_89: +// rs1_val == -4294967297, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x100000001, -0x1000000000000001, x1, 61*XLEN/8, x2) + +inst_90: +// rs1_val == -8589934593, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x200000001, 0x7fffffffffffffff, x1, 62*XLEN/8, x2) + +inst_91: +// rs1_val == -17179869185, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:-0x100001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400000001, -0x100001, x1, 63*XLEN/8, x2) + +inst_92: +// rs1_val == -34359738369, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800000001, -0x80000000000001, x1, 64*XLEN/8, x2) + +inst_93: +// rs1_val == -68719476737, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:-0x4001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1000000001, -0x4001, x1, 65*XLEN/8, x2) + +inst_94: +// rs1_val == -137438953473, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x10000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2000000001, 0x10000000000, x1, 66*XLEN/8, x2) + +inst_95: +// rs1_val == -274877906945, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000001, 0x3333333333333334, x1, 67*XLEN/8, x2) + +inst_96: +// rs1_val == -549755813889, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000000001, -0x2000000001, x1, 68*XLEN/8, x2) + +inst_97: +// rs1_val == -1099511627777, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x10000000001, 0x3, x1, 69*XLEN/8, x2) + +inst_98: +// rs1_val == -2199023255553, rs2_val == 1073741824 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:0x40000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20000000001, 0x40000000, x1, 70*XLEN/8, x2) + +inst_99: +// rs1_val == -4398046511105, rs2_val == 512 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:0x200 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x40000000001, 0x200, x1, 71*XLEN/8, x2) + +inst_100: +// rs1_val == -35184372088833, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x200000000001, -0x40000000000001, x1, 72*XLEN/8, x2) + +inst_101: +// rs1_val == -281474976710657, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:-0x11 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1000000000001, -0x11, x1, 73*XLEN/8, x2) + +inst_102: +// rs1_val == -1125899906842625, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000000001, -0x5555555555555556, x1, 74*XLEN/8, x2) + +inst_103: +// rs1_val == -2251799813685249, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000000000001, 0x6666666666666667, x1, 75*XLEN/8, x2) + +inst_104: +// rs1_val == -4503599627370497, rs2_val == 8388608 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:0x800000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x10000000000001, 0x800000, x1, 76*XLEN/8, x2) + +inst_105: +// rs1_val == -9007199254740993, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:-0x200000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20000000000001, -0x200000001, x1, 77*XLEN/8, x2) + +inst_106: +// rs1_val == -18014398509481985, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x40000000000001, 0x3, x1, 78*XLEN/8, x2) + +inst_107: +// rs1_val == -72057594037927937, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x100000000000001, -0x2000000000001, x1, 79*XLEN/8, x2) + +inst_108: +// rs1_val == -144115188075855873, rs2_val == 4611686018427387904 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x200000000000001, 0x4000000000000000, x1, 80*XLEN/8, x2) + +inst_109: +// rs1_val == -288230376151711745, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400000000000001, -0x2001, x1, 81*XLEN/8, x2) + +inst_110: +// rs1_val == -576460752303423489, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800000000000001, 0x4000000000000, x1, 82*XLEN/8, x2) + +inst_111: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1000000000000001, 0x6666666666666665, x1, 83*XLEN/8, x2) + +inst_112: +// rs1_val == -2305843009213693953, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x2000000000000001, -0x10000000001, x1, 84*XLEN/8, x2) + +inst_113: +// rs2_val == 2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x100000000, 0x2, x1, 85*XLEN/8, x2) + +inst_114: +// rs2_val == 8, rs1_val == 8796093022208 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x8 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80000000000, 0x8, x1, 86*XLEN/8, x2) + +inst_115: +// rs2_val == 16, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x10 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x40000001, 0x10, x1, 87*XLEN/8, x2) + +inst_116: +// rs2_val == 32, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x20 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000001, 0x20, x1, 88*XLEN/8, x2) + +inst_117: +// rs2_val == 64, rs1_val == 2 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x40 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x40, x1, 89*XLEN/8, x2) + +inst_118: +// rs2_val == 128, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x80 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10, 0x80, x1, 90*XLEN/8, x2) + +inst_119: +// rs2_val == 256, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x100 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40000, 0x100, x1, 91*XLEN/8, x2) + +inst_120: +// rs2_val == 1024, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x400 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x101, 0x400, x1, 92*XLEN/8, x2) + +inst_121: +// rs2_val == 2048, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x800 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x800, x1, 93*XLEN/8, x2) + +inst_122: +// rs2_val == 4096, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x1000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000001, 0x1000, x1, 94*XLEN/8, x2) + +inst_123: +// rs2_val == 8192, rs1_val == 9007199254740992 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:0x2000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20000000000000, 0x2000, x1, 95*XLEN/8, x2) + +inst_124: +// rs2_val == 16384, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x4000, x1, 96*XLEN/8, x2) + +inst_125: +// rs2_val == 32768, rs1_val == 268435456 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x8000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10000000, 0x8000, x1, 97*XLEN/8, x2) + +inst_126: +// rs2_val == 65536, rs1_val == 67108864 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x10000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000, 0x10000, x1, 98*XLEN/8, x2) + +inst_127: +// rs2_val == 131072, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x20000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x401, 0x20000, x1, 99*XLEN/8, x2) + +inst_128: +// rs2_val == 262144, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x40000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xa, 0x40000, x1, 100*XLEN/8, x2) + +inst_129: +// rs2_val == 524288, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x80000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x80000, x1, 101*XLEN/8, x2) + +inst_130: +// rs2_val == 1048576, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x100000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400001, 0x100000, x1, 102*XLEN/8, x2) + +inst_131: +// rs2_val == 2097152, rs1_val == 140737488355328 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:0x200000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800000000000, 0x200000, x1, 103*XLEN/8, x2) + +inst_132: +// rs2_val == 4194304, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x400000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80, 0x400000, x1, 104*XLEN/8, x2) + +inst_133: +// rs2_val == 16777216, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x1000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400001, 0x1000000, x1, 105*XLEN/8, x2) + +inst_134: +// rs2_val == 33554432, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:0x2000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x400000001, 0x2000000, x1, 106*XLEN/8, x2) + +inst_135: +// rs2_val == 268435456, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x10000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x10000000, x1, 107*XLEN/8, x2) + +inst_136: +// rs2_val == 536870912, rs1_val == 2048 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x20000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800, 0x20000000, x1, 108*XLEN/8, x2) + +inst_137: +// rs2_val == 2147483648, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x80000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x80000000, x1, 109*XLEN/8, x2) + +inst_138: +// rs2_val == 4294967296, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:0x100000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800000000001, 0x100000000, x1, 110*XLEN/8, x2) + +inst_139: +// rs2_val == 8589934592, rs1_val == 1024 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x200000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400, 0x200000000, x1, 111*XLEN/8, x2) + +inst_140: +// rs2_val == 17179869184, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x400000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xa, 0x400000000, x1, 112*XLEN/8, x2) + +inst_141: +// rs2_val == 34359738368, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x800000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x800000000, x1, 113*XLEN/8, x2) + +inst_142: +// rs2_val == 137438953472, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x2000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x20000000000001, 0x2000000000, x1, 114*XLEN/8, x2) + +inst_143: +// rs2_val == 274877906944, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x4000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x801, 0x4000000000, x1, 115*XLEN/8, x2) + +inst_144: +// rs2_val == 549755813888, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x8000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400, 0x8000000000, x1, 116*XLEN/8, x2) + +inst_145: +// rs2_val == 2199023255552, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x20000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x800001, 0x20000000000, x1, 117*XLEN/8, x2) + +inst_146: +// rs2_val == 4398046511104, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x40000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4001, 0x40000000000, x1, 118*XLEN/8, x2) + +inst_147: +// rs2_val == 8796093022208, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x80000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x80000000000, x1, 119*XLEN/8, x2) + +inst_148: +// rs2_val == 35184372088832, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x200000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x201, 0x200000000000, x1, 120*XLEN/8, x2) + +inst_149: +// rs2_val == 70368744177664, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x80001, 0x400000000000, x1, 121*XLEN/8, x2) + +inst_150: +// rs2_val == 140737488355328, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:0x800000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x200000000001, 0x800000000000, x1, 122*XLEN/8, x2) + +inst_151: +// rs2_val == 281474976710656, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x1000000000000, x1, 123*XLEN/8, x2) + +inst_152: +// rs2_val == 562949953421312, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5, 0x2000000000000, x1, 124*XLEN/8, x2) + +inst_153: +// rs2_val == 2251799813685248, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x8000000000000, x1, 125*XLEN/8, x2) + +inst_154: +// rs2_val == 9007199254740992, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x7; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x7, 0x20000000000000, x1, 126*XLEN/8, x2) + +inst_155: +// rs2_val == 18014398509481984, rs1_val == 2147483648 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80000000, 0x40000000000000, x1, 127*XLEN/8, x2) + +inst_156: +// rs2_val == 36028797018963968, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x81, 0x80000000000000, x1, 128*XLEN/8, x2) + +inst_157: +// rs2_val == 72057594037927936, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000001; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x80000000001, 0x100000000000000, x1, 129*XLEN/8, x2) + +inst_158: +// rs2_val == 144115188075855872, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1000001, 0x200000000000000, x1, 130*XLEN/8, x2) + +inst_159: +// rs2_val == 1152921504606846976, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4, 0x1000000000000000, x1, 131*XLEN/8, x2) + +inst_160: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x4000000000000001, -0x8000000000000000, x1, 132*XLEN/8, x2) + +inst_161: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x3, x1, 133*XLEN/8, x2) + +inst_162: +// rs1_val == 8, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x8, 0x200000000000000, x1, 134*XLEN/8, x2) + +inst_163: +// rs1_val == 64, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40, 0xb504f333, x1, 135*XLEN/8, x2) + +inst_164: +// rs1_val == 512, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x10000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x200, 0x10000000000, x1, 136*XLEN/8, x2) + +inst_165: +// rs1_val == 4096, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x1000, -0xb504f333, x1, 137*XLEN/8, x2) + +inst_166: +// rs1_val == 8192, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x100000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000, -0x100000001, x1, 138*XLEN/8, x2) + +inst_167: +// rs1_val == 16384, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x7 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000, 0x7, x1, 139*XLEN/8, x2) + +inst_168: +// rs1_val == 32768, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:-0x4000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x8000, -0x4000001, x1, 140*XLEN/8, x2) + +inst_169: +// rs1_val == 131072, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20000, -0x2000000000000001, x1, 141*XLEN/8, x2) + +inst_170: +// rs1_val == 524288, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80000, -0x100000000001, x1, 142*XLEN/8, x2) + +inst_171: +// rs1_val == 2097152, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x7 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x200000, 0x7, x1, 143*XLEN/8, x2) + +inst_172: +// rs1_val == 8388608, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800000, -0x20000001, x1, 144*XLEN/8, x2) + +inst_173: +// rs1_val == 16777216, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x1000000, -0x2000000001, x1, 145*XLEN/8, x2) + +inst_174: +// rs1_val == 536870912, rs2_val == 6148914691236517205 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20000000, 0x5555555555555555, x1, 146*XLEN/8, x2) + +inst_175: +// rs1_val == 1073741824, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x800001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40000000, -0x800001, x1, 147*XLEN/8, x2) + +inst_176: +// rs1_val == 68719476736, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x1000000000, -0x800000000001, x1, 148*XLEN/8, x2) + +inst_177: +// rs1_val == 137438953472, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:0x40000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000000000, 0x40000, x1, 149*XLEN/8, x2) + +inst_178: +// rs1_val == 274877906944, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x800000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000000, 0x800000000, x1, 150*XLEN/8, x2) + +inst_179: +// rs1_val == 2199023255552, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:-0x200000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x20000000000, -0x200000001, x1, 151*XLEN/8, x2) + +inst_180: +// rs1_val == 4398046511104, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40000000000, 0x800000000000000, x1, 152*XLEN/8, x2) + +inst_181: +// rs1_val == 17592186044416, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:-0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x100000000000, -0x4, x1, 153*XLEN/8, x2) + +inst_182: +// rs1_val == 35184372088832, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:-0x100000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x200000000000, -0x100000001, x1, 154*XLEN/8, x2) + +inst_183: +// rs1_val == 70368744177664, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400000000000, 0x4, x1, 155*XLEN/8, x2) + +inst_184: +// rs1_val == 281474976710656, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x800000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x1000000000000, 0x800000000000, x1, 156*XLEN/8, x2) + +inst_185: +// rs1_val == 562949953421312, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000000000000, -0x400000000000001, x1, 157*XLEN/8, x2) + +inst_186: +// rs1_val == 4503599627370496, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000000; op2val:0x10000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x10000000000000, 0x10000, x1, 158*XLEN/8, x2) + +inst_187: +// rs1_val == 18014398509481984, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:0x8 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x40000000000000, 0x8, x1, 159*XLEN/8, x2) + +inst_188: +// rs1_val == 36028797018963968, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:-0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x80000000000000, -0x3, x1, 160*XLEN/8, x2) + +inst_189: +// rs1_val == 72057594037927936, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x100000000000000, -0x2000000001, x1, 161*XLEN/8, x2) + +inst_190: +// rs1_val == 144115188075855872, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x200000000000000, -0x2000000001, x1, 162*XLEN/8, x2) + +inst_191: +// rs1_val == 288230376151711744, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x400000000000000, -0x400001, x1, 163*XLEN/8, x2) + +inst_192: +// rs1_val == 576460752303423488, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x800000000000000, 0x20000000000000, x1, 164*XLEN/8, x2) + +inst_193: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2000000000000000, -0x2001, x1, 165*XLEN/8, x2) + +inst_194: +// rs1_val == 4611686018427387904, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:0x200000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4000000000000000, 0x200000000, x1, 166*XLEN/8, x2) + +inst_195: +// rs1_val==3 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 167*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 168*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x5, x1, 169*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 170*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 171*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 172*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 173*XLEN/8, x2) + +inst_202: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x2, x1, 174*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 175*XLEN/8, x2) + +inst_204: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x0, x1, 176*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x4, x1, 177*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 178*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 179*XLEN/8, x2) + +inst_208: +// rs1_val == 6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x200000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x200000000, x1, 180*XLEN/8, x2) + +inst_209: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 181*XLEN/8, x2) + +inst_210: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 182*XLEN/8, x2) + +inst_211: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 183*XLEN/8, x2) + +inst_212: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x6, x1, 184*XLEN/8, x2) + +inst_213: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 185*XLEN/8, x2) + +inst_214: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 186*XLEN/8, x2) + +inst_215: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 187*XLEN/8, x2) + +inst_216: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 188*XLEN/8, x2) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 189*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 190*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 191*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 192*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 193*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 194*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 195*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 196*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 197*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 198*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 199*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 200*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 201*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 202*XLEN/8, x2) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 203*XLEN/8, x2) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 204*XLEN/8, x2) + +inst_233: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 205*XLEN/8, x2) + +inst_234: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 206*XLEN/8, x2) + +inst_235: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 207*XLEN/8, x2) + +inst_236: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 208*XLEN/8, x2) + +inst_237: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 209*XLEN/8, x2) + +inst_238: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 210*XLEN/8, x2) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 211*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 212*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 213*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 214*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 215*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 216*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 217*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 218*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 219*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 220*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 221*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 222*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 223*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 224*XLEN/8, x2) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 225*XLEN/8, x2) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 226*XLEN/8, x2) + +inst_255: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 227*XLEN/8, x2) + +inst_256: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 228*XLEN/8, x2) + +inst_257: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 229*XLEN/8, x2) + +inst_258: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 230*XLEN/8, x2) + +inst_259: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 231*XLEN/8, x2) + +inst_260: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 232*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x3, x1, 233*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 234*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 235*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x5, x1, 236*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 237*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 238*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 239*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 240*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x2, x1, 241*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 242*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x0, x1, 243*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x4, x1, 244*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 245*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 246*XLEN/8, x2) + +inst_275: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 247*XLEN/8, x2) + +inst_276: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 248*XLEN/8, x2) + +inst_277: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 249*XLEN/8, x2) + +inst_278: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x6, x1, 250*XLEN/8, x2) + +inst_279: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 251*XLEN/8, x2) + +inst_280: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 252*XLEN/8, x2) + +inst_281: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 253*XLEN/8, x2) + +inst_282: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 254*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 0*XLEN/8, x2) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 1*XLEN/8, x2) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 2*XLEN/8, x2) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 3*XLEN/8, x2) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 4*XLEN/8, x2) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 5*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 6*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 7*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 8*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 9*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 10*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 11*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 12*XLEN/8, x2) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 13*XLEN/8, x2) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 14*XLEN/8, x2) + +inst_299: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 15*XLEN/8, x2) + +inst_300: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 16*XLEN/8, x2) + +inst_301: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 17*XLEN/8, x2) + +inst_302: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 18*XLEN/8, x2) + +inst_303: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 19*XLEN/8, x2) + +inst_304: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 20*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 21*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 22*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 23*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 24*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 25*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 26*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 27*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 28*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 29*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 30*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 31*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 32*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 33*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 34*XLEN/8, x2) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 35*XLEN/8, x2) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 36*XLEN/8, x2) + +inst_321: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 37*XLEN/8, x2) + +inst_322: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 38*XLEN/8, x2) + +inst_323: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 39*XLEN/8, x2) + +inst_324: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 40*XLEN/8, x2) + +inst_325: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 41*XLEN/8, x2) + +inst_326: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 42*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 43*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 44*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 45*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 46*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 47*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 48*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 49*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 50*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 51*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 52*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 53*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 54*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 55*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 56*XLEN/8, x2) + +inst_341: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 57*XLEN/8, x2) + +inst_342: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 58*XLEN/8, x2) + +inst_343: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 59*XLEN/8, x2) + +inst_344: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 60*XLEN/8, x2) + +inst_345: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 61*XLEN/8, x2) + +inst_346: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 62*XLEN/8, x2) + +inst_347: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 63*XLEN/8, x2) + +inst_348: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 64*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 65*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 66*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 67*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 68*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 69*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 70*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 71*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 72*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 73*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 74*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 75*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 76*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 77*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 78*XLEN/8, x2) + +inst_363: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 79*XLEN/8, x2) + +inst_364: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 80*XLEN/8, x2) + +inst_365: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 81*XLEN/8, x2) + +inst_366: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 82*XLEN/8, x2) + +inst_367: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 83*XLEN/8, x2) + +inst_368: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 84*XLEN/8, x2) + +inst_369: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 85*XLEN/8, x2) + +inst_370: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 86*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x3, x1, 87*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 88*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 89*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x5, x1, 90*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 91*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 92*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 93*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 94*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x2, x1, 95*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 96*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x0, x1, 97*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x4, x1, 98*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 99*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 100*XLEN/8, x2) + +inst_385: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 101*XLEN/8, x2) + +inst_386: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 102*XLEN/8, x2) + +inst_387: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 103*XLEN/8, x2) + +inst_388: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x6, x1, 104*XLEN/8, x2) + +inst_389: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 105*XLEN/8, x2) + +inst_390: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 106*XLEN/8, x2) + +inst_391: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 107*XLEN/8, x2) + +inst_392: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 108*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 109*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 110*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 111*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 112*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 113*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 114*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 115*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 116*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 117*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 118*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 119*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 120*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 121*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 122*XLEN/8, x2) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 123*XLEN/8, x2) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 124*XLEN/8, x2) + +inst_409: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 125*XLEN/8, x2) + +inst_410: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 126*XLEN/8, x2) + +inst_411: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 127*XLEN/8, x2) + +inst_412: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 128*XLEN/8, x2) + +inst_413: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 129*XLEN/8, x2) + +inst_414: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 130*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x3, x1, 131*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 132*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 133*XLEN/8, x2) + +inst_418: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x5, x1, 134*XLEN/8, x2) + +inst_419: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 135*XLEN/8, x2) + +inst_420: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 136*XLEN/8, x2) + +inst_421: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 137*XLEN/8, x2) + +inst_422: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 138*XLEN/8, x2) + +inst_423: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x2, x1, 139*XLEN/8, x2) + +inst_424: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 140*XLEN/8, x2) + +inst_425: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 141*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x3, x1, 142*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 143*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 144*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x5, x1, 145*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 146*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 147*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 148*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 149*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x2, x1, 150*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 151*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x0, x1, 152*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x4, x1, 153*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 154*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 155*XLEN/8, x2) + +inst_440: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 156*XLEN/8, x2) + +inst_441: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 157*XLEN/8, x2) + +inst_442: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 158*XLEN/8, x2) + +inst_443: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x6, x1, 159*XLEN/8, x2) + +inst_444: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 160*XLEN/8, x2) + +inst_445: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 161*XLEN/8, x2) + +inst_446: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 162*XLEN/8, x2) + +inst_447: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 163*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 164*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 165*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 166*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 167*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 168*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 169*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 170*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 171*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 172*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 173*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 174*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 175*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 176*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 177*XLEN/8, x2) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 178*XLEN/8, x2) + +inst_463: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 179*XLEN/8, x2) + +inst_464: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 180*XLEN/8, x2) + +inst_465: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 181*XLEN/8, x2) + +inst_466: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 182*XLEN/8, x2) + +inst_467: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 183*XLEN/8, x2) + +inst_468: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 184*XLEN/8, x2) + +inst_469: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 185*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 186*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 187*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 188*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 189*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 190*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 191*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 192*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 193*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 194*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 195*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 196*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 197*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 198*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 199*XLEN/8, x2) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 200*XLEN/8, x2) + +inst_485: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 201*XLEN/8, x2) + +inst_486: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 202*XLEN/8, x2) + +inst_487: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 203*XLEN/8, x2) + +inst_488: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 204*XLEN/8, x2) + +inst_489: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 205*XLEN/8, x2) + +inst_490: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 206*XLEN/8, x2) + +inst_491: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 207*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 208*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 209*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 210*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 211*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 212*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 213*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 214*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 215*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 216*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 217*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 218*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 219*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 220*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 221*XLEN/8, x2) + +inst_506: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 222*XLEN/8, x2) + +inst_507: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 223*XLEN/8, x2) + +inst_508: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 224*XLEN/8, x2) + +inst_509: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 225*XLEN/8, x2) + +inst_510: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 226*XLEN/8, x2) + +inst_511: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 227*XLEN/8, x2) + +inst_512: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 228*XLEN/8, x2) + +inst_513: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 229*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 230*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 231*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 232*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 233*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 234*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 235*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 236*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 237*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 238*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 239*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 240*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 241*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 242*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 243*XLEN/8, x2) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 244*XLEN/8, x2) + +inst_529: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 245*XLEN/8, x2) + +inst_530: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 246*XLEN/8, x2) + +inst_531: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 247*XLEN/8, x2) + +inst_532: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 248*XLEN/8, x2) + +inst_533: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 249*XLEN/8, x2) + +inst_534: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 250*XLEN/8, x2) + +inst_535: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 251*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 252*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 253*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 254*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 0*XLEN/8, x2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 1*XLEN/8, x2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 2*XLEN/8, x2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 3*XLEN/8, x2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 4*XLEN/8, x2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 5*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 6*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 7*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 8*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 9*XLEN/8, x2) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 10*XLEN/8, x2) + +inst_551: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 11*XLEN/8, x2) + +inst_552: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 12*XLEN/8, x2) + +inst_553: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 13*XLEN/8, x2) + +inst_554: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 14*XLEN/8, x2) + +inst_555: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 15*XLEN/8, x2) + +inst_556: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 16*XLEN/8, x2) + +inst_557: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 17*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x3, x1, 18*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 19*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 20*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x5, x1, 21*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 22*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 23*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 24*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 25*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x2, x1, 26*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 27*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x0, x1, 28*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x4, x1, 29*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 30*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 31*XLEN/8, x2) + +inst_572: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 32*XLEN/8, x2) + +inst_573: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 33*XLEN/8, x2) + +inst_574: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 34*XLEN/8, x2) + +inst_575: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x6, x1, 35*XLEN/8, x2) + +inst_576: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 36*XLEN/8, x2) + +inst_577: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 37*XLEN/8, x2) + +inst_578: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 38*XLEN/8, x2) + +inst_579: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 39*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 40*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 41*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 42*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 43*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 44*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 45*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 46*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 47*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 48*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 49*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 50*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 51*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 52*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 53*XLEN/8, x2) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 54*XLEN/8, x2) + +inst_595: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 55*XLEN/8, x2) + +inst_596: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 56*XLEN/8, x2) + +inst_597: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 57*XLEN/8, x2) + +inst_598: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 58*XLEN/8, x2) + +inst_599: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 59*XLEN/8, x2) + +inst_600: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 60*XLEN/8, x2) + +inst_601: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 61*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 62*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 63*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 64*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 65*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 66*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 67*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 68*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 69*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 70*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 71*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 72*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 73*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 74*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 75*XLEN/8, x2) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 76*XLEN/8, x2) + +inst_617: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 77*XLEN/8, x2) + +inst_618: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 78*XLEN/8, x2) + +inst_619: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 79*XLEN/8, x2) + +inst_620: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 80*XLEN/8, x2) + +inst_621: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 81*XLEN/8, x2) + +inst_622: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 82*XLEN/8, x2) + +inst_623: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 83*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 84*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 85*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 86*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 87*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 88*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 89*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 90*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 91*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 92*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 93*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 94*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 95*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 96*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 97*XLEN/8, x2) + +inst_638: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 98*XLEN/8, x2) + +inst_639: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 99*XLEN/8, x2) + +inst_640: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 100*XLEN/8, x2) + +inst_641: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 101*XLEN/8, x2) + +inst_642: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 102*XLEN/8, x2) + +inst_643: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 103*XLEN/8, x2) + +inst_644: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 104*XLEN/8, x2) + +inst_645: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 105*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 106*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 107*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 108*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 109*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 110*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 111*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 112*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 113*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 114*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 115*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 116*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 117*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 118*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 119*XLEN/8, x2) + +inst_660: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 120*XLEN/8, x2) + +inst_661: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 121*XLEN/8, x2) + +inst_662: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 122*XLEN/8, x2) + +inst_663: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 123*XLEN/8, x2) + +inst_664: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 124*XLEN/8, x2) + +inst_665: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 125*XLEN/8, x2) + +inst_666: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 126*XLEN/8, x2) + +inst_667: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 127*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 128*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x0, x1, 129*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x4, x1, 130*XLEN/8, x2) + +inst_671: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 131*XLEN/8, x2) + +inst_672: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 132*XLEN/8, x2) + +inst_673: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 133*XLEN/8, x2) + +inst_674: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 134*XLEN/8, x2) + +inst_675: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 135*XLEN/8, x2) + +inst_676: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x6, x1, 136*XLEN/8, x2) + +inst_677: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 137*XLEN/8, x2) + +inst_678: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 138*XLEN/8, x2) + +inst_679: +// rs1_val == (-2**(xlen-1)), rs2_val == 17592186044416, rs1_val == -9223372036854775808 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:0x100000000000 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x8000000000000000, 0x100000000000, x1, 139*XLEN/8, x2) + +inst_680: +// rs2_val == -8193, rs1_val == -3 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x2001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x3, -0x2001, x1, 140*XLEN/8, x2) + +inst_681: +// rs2_val == -131073, rs1_val == -4097 +// opcode: mop.rr.0 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x20001 +TEST_RR_OP(mop.rr.0, x31, x30, x29, 0, -0x1001, -0x20001, x1, 141*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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 12*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 142*((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/Zimop/src/mop.rr.1-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.1-01.S new file mode 100644 index 000000000..dbc67c42d --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.1-01.S @@ -0,0 +1,3487 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.1 instruction of the RISC-V RV64Zimop extension for the mop.rr.1 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.1) + +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_0: +// rs1 == rd != rs2, rs1==x12, rs2==x16, rd==x12, rs1_val != rs2_val, rs2_val == -33554433, rs1_val > 0 and rs2_val < 0 +// opcode: mop.rr.1 ; op1:x12; op2:x16; dest:x12; op1val:0x3333333333333333; op2val:-0x2000001 +TEST_RR_OP(mop.rr.1, x12, x12, x16, 0, 0x3333333333333333, -0x2000001, x1, 0*XLEN/8, x2) + +inst_1: +// rs2 == rd != rs1, rs1==x4, rs2==x27, rd==x27, rs1_val < 0 and rs2_val < 0, rs2_val == -131073, rs1_val == -1048577 +// opcode: mop.rr.1 ; op1:x4; op2:x27; dest:x27; op1val:-0x100001; op2val:-0x20001 +TEST_RR_OP(mop.rr.1, x27, x4, x27, 0, -0x100001, -0x20001, x1, 1*XLEN/8, x2) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x20, rs2==x28, rd==x11, rs1_val < 0 and rs2_val > 0, rs2_val == 262144, rs1_val == -2049 +// opcode: mop.rr.1 ; op1:x20; op2:x28; dest:x11; op1val:-0x801; op2val:0x40000 +TEST_RR_OP(mop.rr.1, x11, x20, x28, 0, -0x801, 0x40000, x1, 2*XLEN/8, x2) + +inst_3: +// rs1 == rs2 != rd, rs1==x14, rs2==x14, rd==x30, rs1_val == (-2**(xlen-1)), rs1_val == -9223372036854775808, rs2_val == -257 +// opcode: mop.rr.1 ; op1:x14; op2:x14; dest:x30; op1val:-0x8000000000000000; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.1, x30, x14, x14, 0, -0x8000000000000000, -0x8000000000000000, x1, 3*XLEN/8, x2) + +inst_4: +// rs1 == rs2 == rd, rs1==x29, rs2==x29, rd==x29, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs2_val == 8796093022208, rs1_val == 9223372036854775807 +// opcode: mop.rr.1 ; op1:x29; op2:x29; dest:x29; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.1, x29, x29, x29, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x1, 4*XLEN/8, x2) + +inst_5: +// rs1==x30, rs2==x20, rd==x25, rs1_val == 0, rs2_val == -4398046511105 +// opcode: mop.rr.1 ; op1:x30; op2:x20; dest:x25; op1val:0x0; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.1, x25, x30, x20, 0, 0x0, -0x40000000001, x1, 5*XLEN/8, x2) + +inst_6: +// rs1==x31, rs2==x9, rd==x4, rs1_val == 1, rs2_val == 1125899906842624 +// opcode: mop.rr.1 ; op1:x31; op2:x9; dest:x4; op1val:0x1; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.1, x4, x31, x9, 0, 0x1, 0x4000000000000, x1, 6*XLEN/8, x2) + +inst_7: +// rs1==x13, rs2==x22, rd==x26, rs2_val == -2, rs1_val == rs2_val, rs1_val == -2 +// opcode: mop.rr.1 ; op1:x13; op2:x22; dest:x26; op1val:-0x2; op2val:-0x2 +TEST_RR_OP(mop.rr.1, x26, x13, x22, 0, -0x2, -0x2, x1, 7*XLEN/8, x2) + +inst_8: +// rs1==x10, rs2==x18, rd==x19, rs2_val == -3, +// opcode: mop.rr.1 ; op1:x10; op2:x18; dest:x19; op1val:-0xb504f332; op2val:-0x3 +TEST_RR_OP(mop.rr.1, x19, x10, x18, 0, -0xb504f332, -0x3, x1, 8*XLEN/8, x2) + +inst_9: +// rs1==x7, rs2==x4, rd==x0, rs2_val == -5, +// opcode: mop.rr.1 ; op1:x7; op2:x4; dest:x0; op1val:0xb504f333; op2val:-0x5 +TEST_RR_OP(mop.rr.1, x0, x7, x4, 0, 0xb504f333, -0x5, x1, 9*XLEN/8, x2) + +inst_10: +// rs1==x3, rs2==x11, rd==x6, rs2_val == -9, +// opcode: mop.rr.1 ; op1:x3; op2:x11; dest:x6; op1val:0x6666666666666666; op2val:-0x9 +TEST_RR_OP(mop.rr.1, x6, x3, x11, 0, 0x6666666666666666, -0x9, x1, 10*XLEN/8, x2) + +inst_11: +// rs1==x6, rs2==x7, rd==x8, rs2_val == -17, rs1_val == -5 +// opcode: mop.rr.1 ; op1:x6; op2:x7; dest:x8; op1val:-0x5; op2val:-0x11 +TEST_RR_OP(mop.rr.1, x8, x6, x7, 0, -0x5, -0x11, x1, 11*XLEN/8, x2) + +inst_12: +// rs1==x17, rs2==x13, rd==x18, rs2_val == -33, +// opcode: mop.rr.1 ; op1:x17; op2:x13; dest:x18; op1val:-0x8000000000000000; op2val:-0x21 +TEST_RR_OP(mop.rr.1, x18, x17, x13, 0, -0x8000000000000000, -0x21, x1, 12*XLEN/8, x2) + +inst_13: +// rs1==x25, rs2==x30, rd==x15, rs2_val == -65, rs1_val == 4 +// opcode: mop.rr.1 ; op1:x25; op2:x30; dest:x15; op1val:0x4; op2val:-0x41 +TEST_RR_OP(mop.rr.1, x15, x25, x30, 0, 0x4, -0x41, x1, 13*XLEN/8, x2) + +inst_14: +// rs1==x2, rs2==x17, rd==x5, rs2_val == -129, rs1_val == -8388609 +// opcode: mop.rr.1 ; op1:x2; op2:x17; dest:x5; op1val:-0x800001; op2val:-0x81 +TEST_RR_OP(mop.rr.1, x5, x2, x17, 0, -0x800001, -0x81, x1, 14*XLEN/8, x6) +RVTEST_SIGBASE(x4,signature_x4_0) + +inst_15: +// rs1==x5, rs2==x12, rd==x10, rs2_val == -513, rs1_val == -134217729 +// opcode: mop.rr.1 ; op1:x5; op2:x12; dest:x10; op1val:-0x8000001; op2val:-0x201 +TEST_RR_OP(mop.rr.1, x10, x5, x12, 0, -0x8000001, -0x201, x4, 0*XLEN/8, x6) + +inst_16: +// rs1==x24, rs2==x5, rd==x1, rs2_val == -1025, rs1_val == 16777216 +// opcode: mop.rr.1 ; op1:x24; op2:x5; dest:x1; op1val:0x1000000; op2val:-0x401 +TEST_RR_OP(mop.rr.1, x1, x24, x5, 0, 0x1000000, -0x401, x4, 1*XLEN/8, x6) + +inst_17: +// rs1==x11, rs2==x31, rd==x22, rs2_val == -2049, rs1_val == -8796093022209 +// opcode: mop.rr.1 ; op1:x11; op2:x31; dest:x22; op1val:-0x80000000001; op2val:-0x801 +TEST_RR_OP(mop.rr.1, x22, x11, x31, 0, -0x80000000001, -0x801, x4, 2*XLEN/8, x6) + +inst_18: +// rs1==x28, rs2==x10, rd==x9, rs2_val == -4097, rs1_val == 512 +// opcode: mop.rr.1 ; op1:x28; op2:x10; dest:x9; op1val:0x200; op2val:-0x1001 +TEST_RR_OP(mop.rr.1, x9, x28, x10, 0, 0x200, -0x1001, x4, 3*XLEN/8, x6) + +inst_19: +// rs1==x23, rs2==x3, rd==x21, rs2_val == -8193, +// opcode: mop.rr.1 ; op1:x23; op2:x3; dest:x21; op1val:0x5; op2val:-0x2001 +TEST_RR_OP(mop.rr.1, x21, x23, x3, 0, 0x5, -0x2001, x4, 4*XLEN/8, x6) + +inst_20: +// rs1==x9, rs2==x2, rd==x17, rs2_val == -16385, +// opcode: mop.rr.1 ; op1:x9; op2:x2; dest:x17; op1val:0xb504f333; op2val:-0x4001 +TEST_RR_OP(mop.rr.1, x17, x9, x2, 0, 0xb504f333, -0x4001, x4, 5*XLEN/8, x6) + +inst_21: +// rs1==x27, rs2==x25, rd==x7, rs2_val == -32769, rs1_val == 281474976710656 +// opcode: mop.rr.1 ; op1:x27; op2:x25; dest:x7; op1val:0x1000000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.1, x7, x27, x25, 0, 0x1000000000000, -0x8001, x4, 6*XLEN/8, x6) + +inst_22: +// rs1==x26, rs2==x24, rd==x31, rs2_val == -65537, +// opcode: mop.rr.1 ; op1:x26; op2:x24; dest:x31; op1val:-0x8000000000000000; op2val:-0x10001 +TEST_RR_OP(mop.rr.1, x31, x26, x24, 0, -0x8000000000000000, -0x10001, x4, 7*XLEN/8, x6) + +inst_23: +// rs1==x16, rs2==x8, rd==x24, rs2_val == -262145, +// opcode: mop.rr.1 ; op1:x16; op2:x8; dest:x24; op1val:-0x80000000001; op2val:-0x40001 +TEST_RR_OP(mop.rr.1, x24, x16, x8, 0, -0x80000000001, -0x40001, x4, 8*XLEN/8, x6) + +inst_24: +// rs1==x8, rs2==x26, rd==x2, rs2_val == -524289, rs1_val == 8388608 +// opcode: mop.rr.1 ; op1:x8; op2:x26; dest:x2; op1val:0x800000; op2val:-0x80001 +TEST_RR_OP(mop.rr.1, x2, x8, x26, 0, 0x800000, -0x80001, x4, 9*XLEN/8, x6) + +inst_25: +// rs1==x18, rs2==x1, rd==x13, rs2_val == -1048577, +// opcode: mop.rr.1 ; op1:x18; op2:x1; dest:x13; op1val:-0xb504f333; op2val:-0x100001 +TEST_RR_OP(mop.rr.1, x13, x18, x1, 0, -0xb504f333, -0x100001, x4, 10*XLEN/8, x6) + +inst_26: +// rs1==x0, rs2==x19, rd==x16, rs2_val == -2097153, rs1_val == 32768 +// opcode: mop.rr.1 ; op1:x0; op2:x19; dest:x16; op1val:0x0; op2val:-0x200001 +TEST_RR_OP(mop.rr.1, x16, x0, x19, 0, 0x0, -0x200001, x4, 11*XLEN/8, x6) + +inst_27: +// rs1==x15, rs2==x0, rd==x23, rs2_val == -4194305, rs1_val == -6148914691236517206 +// opcode: mop.rr.1 ; op1:x15; op2:x0; dest:x23; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.1, x23, x15, x0, 0, -0x5555555555555556, 0x0, x4, 12*XLEN/8, x6) + +inst_28: +// rs1==x1, rs2==x23, rd==x28, rs2_val == -8388609, rs1_val == 131072 +// opcode: mop.rr.1 ; op1:x1; op2:x23; dest:x28; op1val:0x20000; op2val:-0x800001 +TEST_RR_OP(mop.rr.1, x28, x1, x23, 0, 0x20000, -0x800001, x4, 13*XLEN/8, x2) + +inst_29: +// rs1==x21, rs2==x15, rd==x14, rs2_val == -16777217, +// opcode: mop.rr.1 ; op1:x21; op2:x15; dest:x14; op1val:0x20000; op2val:-0x1000001 +TEST_RR_OP(mop.rr.1, x14, x21, x15, 0, 0x20000, -0x1000001, x4, 14*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_30: +// rs1==x22, rs2==x21, rd==x3, rs2_val == -67108865, rs1_val == 1125899906842624 +// opcode: mop.rr.1 ; op1:x22; op2:x21; dest:x3; op1val:0x4000000000000; op2val:-0x4000001 +TEST_RR_OP(mop.rr.1, x3, x22, x21, 0, 0x4000000000000, -0x4000001, x1, 0*XLEN/8, x2) + +inst_31: +// rs1==x19, rs2==x6, rd==x20, rs2_val == -134217729, rs1_val == 4503599627370496 +// opcode: mop.rr.1 ; op1:x19; op2:x6; dest:x20; op1val:0x10000000000000; op2val:-0x8000001 +TEST_RR_OP(mop.rr.1, x20, x19, x6, 0, 0x10000000000000, -0x8000001, x1, 1*XLEN/8, x2) + +inst_32: +// rs2_val == -268435457, rs1_val == 32 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x10000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20, -0x10000001, x1, 2*XLEN/8, x2) + +inst_33: +// rs2_val == -536870913, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x20000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2, -0x20000001, x1, 3*XLEN/8, x2) + +inst_34: +// rs2_val == -1073741825, rs1_val == -2097153 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x200001, -0x40000001, x1, 4*XLEN/8, x2) + +inst_35: +// rs2_val == -2147483649, rs1_val == 4294967296 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:-0x80000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100000000, -0x80000001, x1, 5*XLEN/8, x2) + +inst_36: +// rs2_val == -4294967297, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x200001, -0x100000001, x1, 6*XLEN/8, x2) + +inst_37: +// rs2_val == -8589934593, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x200000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800000, -0x200000001, x1, 7*XLEN/8, x2) + +inst_38: +// rs2_val == -17179869185, rs1_val == 1152921504606846976 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:-0x400000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1000000000000000, -0x400000001, x1, 8*XLEN/8, x2) + +inst_39: +// rs2_val == -34359738369, rs1_val == 2 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x800000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0x800000001, x1, 9*XLEN/8, x2) + +inst_40: +// rs2_val == -68719476737, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20, -0x1000000001, x1, 10*XLEN/8, x2) + +inst_41: +// rs2_val == -137438953473, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x800001, -0x2000000001, x1, 11*XLEN/8, x2) + +inst_42: +// rs2_val == -274877906945, rs1_val == -33 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x21, -0x4000000001, x1, 12*XLEN/8, x2) + +inst_43: +// rs2_val == -549755813889, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8000000000000000, -0x8000000001, x1, 13*XLEN/8, x2) + +inst_44: +// rs2_val == -1099511627777, rs1_val == -274877906945 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4000000001, -0x10000000001, x1, 14*XLEN/8, x2) + +inst_45: +// rs2_val == -2199023255553, rs1_val == -17592186044417 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x100000000001, -0x20000000001, x1, 15*XLEN/8, x2) + +inst_46: +// rs2_val == -8796093022209, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0x80000000001, x1, 16*XLEN/8, x2) + +inst_47: +// rs2_val == -17592186044417, rs1_val == -4611686018427387905 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4000000000000001, -0x100000000001, x1, 17*XLEN/8, x2) + +inst_48: +// rs2_val == -35184372088833, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1, -0x200000000001, x1, 18*XLEN/8, x2) + +inst_49: +// rs2_val == -70368744177665, rs1_val == -68719476737 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1000000001, -0x400000000001, x1, 19*XLEN/8, x2) + +inst_50: +// rs2_val == -140737488355329, rs1_val == -549755813889 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8000000001, -0x800000000001, x1, 20*XLEN/8, x2) + +inst_51: +// rs2_val == -281474976710657, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x7; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x7, -0x1000000000001, x1, 21*XLEN/8, x2) + +inst_52: +// rs2_val == -562949953421313, rs1_val == 34359738368 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800000000, -0x2000000000001, x1, 22*XLEN/8, x2) + +inst_53: +// rs2_val == -1125899906842625, rs1_val == -65 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x41, -0x4000000000001, x1, 23*XLEN/8, x2) + +inst_54: +// rs2_val == -2251799813685249, rs1_val == 140737488355328 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800000000000, -0x8000000000001, x1, 24*XLEN/8, x2) + +inst_55: +// rs2_val == -4503599627370497, rs1_val == -2199023255553 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20000000001, -0x10000000000001, x1, 25*XLEN/8, x2) + +inst_56: +// rs2_val == -9007199254740993, rs1_val == 1024 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x400, -0x20000000000001, x1, 26*XLEN/8, x2) + +inst_57: +// rs2_val == -18014398509481985, rs1_val == 18014398509481984 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000000000000, -0x40000000000001, x1, 27*XLEN/8, x2) + +inst_58: +// rs2_val == -36028797018963969, rs1_val == -513 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x201, -0x80000000000001, x1, 28*XLEN/8, x2) + +inst_59: +// rs2_val == -72057594037927937, rs1_val == 8589934592 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x200000000, -0x100000000000001, x1, 29*XLEN/8, x2) + +inst_60: +// rs2_val == -144115188075855873, rs1_val == 35184372088832 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x200000000000, -0x200000000000001, x1, 30*XLEN/8, x2) + +inst_61: +// rs2_val == -288230376151711745, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, -0x400000000000001, x1, 31*XLEN/8, x2) + +inst_62: +// rs2_val == -576460752303423489, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0x800000000000001, x1, 32*XLEN/8, x2) + +inst_63: +// rs2_val == -1152921504606846977, rs1_val == -140737488355329 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x800000000001, -0x1000000000000001, x1, 33*XLEN/8, x2) + +inst_64: +// rs2_val == -2305843009213693953, rs1_val == -4398046511105 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000000001, -0x2000000000000001, x1, 34*XLEN/8, x2) + +inst_65: +// rs2_val == -4611686018427387905, rs1_val == -4294967297 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x100000001, -0x4000000000000001, x1, 35*XLEN/8, x2) + +inst_66: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x7fffffffffffffff, x1, 36*XLEN/8, x2) + +inst_67: +// rs1_val == -3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x8000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x3, -0x8000001, x1, 37*XLEN/8, x2) + +inst_68: +// rs1_val == -9, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x800001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x9, -0x800001, x1, 38*XLEN/8, x2) + +inst_69: +// rs1_val == -17, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x11, -0x8000000000001, x1, 39*XLEN/8, x2) + +inst_70: +// rs1_val == -129, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x7 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x81, -0x7, x1, 40*XLEN/8, x2) + +inst_71: +// rs1_val == -257, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x101, 0x5, x1, 41*XLEN/8, x2) + +inst_72: +// rs1_val == -1025, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x9 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x401, -0x9, x1, 42*XLEN/8, x2) + +inst_73: +// rs1_val == -4097, rs2_val == 16777216 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x1000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1001, 0x1000000, x1, 43*XLEN/8, x2) + +inst_74: +// rs1_val == -8193, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x100001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2001, -0x100001, x1, 44*XLEN/8, x2) + +inst_75: +// rs1_val == -16385, rs2_val == 2147483648 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x80000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4001, 0x80000000, x1, 45*XLEN/8, x2) + +inst_76: +// rs1_val == -32769, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8001, 0xb504f334, x1, 46*XLEN/8, x2) + +inst_77: +// rs1_val == -65537, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10001, -0x100000001, x1, 47*XLEN/8, x2) + +inst_78: +// rs1_val == -131073, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x400001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20001, -0x400001, x1, 48*XLEN/8, x2) + +inst_79: +// rs1_val == -262145, rs2_val == 17179869184 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x400000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40001, 0x400000000, x1, 49*XLEN/8, x2) + +inst_80: +// rs1_val == -524289, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x80001, -0xb504f332, x1, 50*XLEN/8, x2) + +inst_81: +// rs1_val == -4194305, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x400001, -0x8000000001, x1, 51*XLEN/8, x2) + +inst_82: +// rs1_val == -16777217, rs2_val == 2048 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x800 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1000001, 0x800, x1, 52*XLEN/8, x2) + +inst_83: +// rs1_val == -33554433, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2000001, 0x6666666666666666, x1, 53*XLEN/8, x2) + +inst_84: +// rs1_val == -67108865, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x400000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4000001, 0x400000000, x1, 54*XLEN/8, x2) + +inst_85: +// rs1_val == -268435457, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10000001, -0x20000000001, x1, 55*XLEN/8, x2) + +inst_86: +// rs1_val == -536870913, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20000001, 0x6666666666666667, x1, 56*XLEN/8, x2) + +inst_87: +// rs1_val == -1073741825, rs2_val == 32768 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x8000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000001, 0x8000, x1, 57*XLEN/8, x2) + +inst_88: +// rs1_val == -2147483649, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x80000001, -0xb504f333, x1, 58*XLEN/8, x2) + +inst_89: +// rs1_val == -8589934593, rs2_val == 2097152 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:0x200000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x200000001, 0x200000, x1, 59*XLEN/8, x2) + +inst_90: +// rs1_val == -17179869185, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:-0x21 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x400000001, -0x21, x1, 60*XLEN/8, x2) + +inst_91: +// rs1_val == -34359738369, rs2_val == 68719476736 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:0x1000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x800000001, 0x1000000000, x1, 61*XLEN/8, x2) + +inst_92: +// rs1_val == -137438953473, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:-0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2000000001, -0x5, x1, 62*XLEN/8, x2) + +inst_93: +// rs1_val == -1099511627777, rs2_val == 67108864 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:0x4000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10000000001, 0x4000000, x1, 63*XLEN/8, x2) + +inst_94: +// rs1_val == -35184372088833, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x200000000001, -0x2000000000001, x1, 64*XLEN/8, x2) + +inst_95: +// rs1_val == -70368744177665, rs2_val == 16384 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:0x4000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x400000000001, 0x4000, x1, 65*XLEN/8, x2) + +inst_96: +// rs1_val == -281474976710657, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1000000000001, -0x100000000000001, x1, 66*XLEN/8, x2) + +inst_97: +// rs1_val == -562949953421313, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2000000000001, -0xb504f333, x1, 67*XLEN/8, x2) + +inst_98: +// rs1_val == -1125899906842625, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x4000000000001, 0x5555555555555554, x1, 68*XLEN/8, x2) + +inst_99: +// rs1_val == -2251799813685249, rs2_val == 8 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:0x8 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8000000000001, 0x8, x1, 69*XLEN/8, x2) + +inst_100: +// rs1_val == -4503599627370497, rs2_val == 1024 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:0x400 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10000000000001, 0x400, x1, 70*XLEN/8, x2) + +inst_101: +// rs1_val == -9007199254740993, rs2_val == 2305843009213693952 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20000000000001, 0x2000000000000000, x1, 71*XLEN/8, x2) + +inst_102: +// rs1_val == -18014398509481985, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:-0x401 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000000000001, -0x401, x1, 72*XLEN/8, x2) + +inst_103: +// rs1_val == -36028797018963969, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x80000000000001, 0x5555555555555554, x1, 73*XLEN/8, x2) + +inst_104: +// rs1_val == -72057594037927937, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x100000000000001, -0x2000000000000001, x1, 74*XLEN/8, x2) + +inst_105: +// rs1_val == -144115188075855873, rs2_val == 4 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x200000000000001, 0x4, x1, 75*XLEN/8, x2) + +inst_106: +// rs1_val == -288230376151711745, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x400000000000001, -0x20001, x1, 76*XLEN/8, x2) + +inst_107: +// rs1_val == -576460752303423489, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x800000000000001, -0x80000000001, x1, 77*XLEN/8, x2) + +inst_108: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:-0x21 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1000000000000001, -0x21, x1, 78*XLEN/8, x2) + +inst_109: +// rs1_val == -2305843009213693953, rs2_val == 0 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2000000000000001, 0x0, x1, 79*XLEN/8, x2) + +inst_110: +// rs2_val == 1, rs1_val == 549755813888 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x1 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000000000, 0x1, x1, 80*XLEN/8, x2) + +inst_111: +// rs2_val == 2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x9; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x9, 0x2, x1, 81*XLEN/8, x2) + +inst_112: +// rs2_val == 16, rs1_val == 65536 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x10 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x10000, 0x10, x1, 82*XLEN/8, x2) + +inst_113: +// rs2_val == 32, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:0x20 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000000000000, 0x20, x1, 83*XLEN/8, x2) + +inst_114: +// rs2_val == 64, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x40 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20000000000001, 0x40, x1, 84*XLEN/8, x2) + +inst_115: +// rs2_val == 128, rs1_val == 36028797018963968 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:0x80 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80000000000000, 0x80, x1, 85*XLEN/8, x2) + +inst_116: +// rs2_val == 256, rs1_val == 2199023255552 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:0x100 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20000000000, 0x100, x1, 86*XLEN/8, x2) + +inst_117: +// rs2_val == 512, rs1_val == 2048 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x200 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800, 0x200, x1, 87*XLEN/8, x2) + +inst_118: +// rs2_val == 4096, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x1000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2000001, 0x1000, x1, 88*XLEN/8, x2) + +inst_119: +// rs2_val == 8192, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:0x2000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100000000, 0x2000, x1, 89*XLEN/8, x2) + +inst_120: +// rs2_val == 65536, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x10000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x40000000000001, 0x10000, x1, 90*XLEN/8, x2) + +inst_121: +// rs2_val == 131072, rs1_val == 16 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x20000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x10, 0x20000, x1, 91*XLEN/8, x2) + +inst_122: +// rs2_val == 524288, rs1_val == 262144 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x80000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000, 0x80000, x1, 92*XLEN/8, x2) + +inst_123: +// rs2_val == 1048576, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x100000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x100000, x1, 93*XLEN/8, x2) + +inst_124: +// rs2_val == 4194304, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:0x400000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x100000000000001, 0x400000, x1, 94*XLEN/8, x2) + +inst_125: +// rs2_val == 8388608, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x800000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x800000, x1, 95*XLEN/8, x2) + +inst_126: +// rs2_val == 33554432, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x2000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x11, 0x2000000, x1, 96*XLEN/8, x2) + +inst_127: +// rs2_val == 134217728, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x8000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1001, 0x8000000, x1, 97*XLEN/8, x2) + +inst_128: +// rs2_val == 268435456, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x10000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x10000000, x1, 98*XLEN/8, x2) + +inst_129: +// rs2_val == 536870912, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000000000, 0x20000000, x1, 99*XLEN/8, x2) + +inst_130: +// rs2_val == 1073741824, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x40000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x40000000, x1, 100*XLEN/8, x2) + +inst_131: +// rs2_val == 4294967296, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x100000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x400, 0x100000000, x1, 101*XLEN/8, x2) + +inst_132: +// rs2_val == 8589934592, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x200000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x81, 0x200000000, x1, 102*XLEN/8, x2) + +inst_133: +// rs2_val == 34359738368, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x800000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x800000000, x1, 103*XLEN/8, x2) + +inst_134: +// rs2_val == 137438953472, rs1_val == 2097152 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x200000, 0x2000000000, x1, 104*XLEN/8, x2) + +inst_135: +// rs2_val == 274877906944, rs1_val == 33554432 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x4000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000000, 0x4000000000, x1, 105*XLEN/8, x2) + +inst_136: +// rs2_val == 549755813888, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x8000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000000000, 0x8000000000, x1, 106*XLEN/8, x2) + +inst_137: +// rs2_val == 1099511627776, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:0x10000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x400000000001, 0x10000000000, x1, 107*XLEN/8, x2) + +inst_138: +// rs2_val == 2199023255552, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x20000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x20000000000, x1, 108*XLEN/8, x2) + +inst_139: +// rs2_val == 4398046511104, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x40000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1000000, 0x40000000000, x1, 109*XLEN/8, x2) + +inst_140: +// rs2_val == 17592186044416, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x100000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x100000000000, x1, 110*XLEN/8, x2) + +inst_141: +// rs2_val == 35184372088832, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:0x200000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20001, 0x200000000000, x1, 111*XLEN/8, x2) + +inst_142: +// rs2_val == 70368744177664, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x10000000001, 0x400000000000, x1, 112*XLEN/8, x2) + +inst_143: +// rs2_val == 140737488355328, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x800000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x800000000000, x1, 113*XLEN/8, x2) + +inst_144: +// rs2_val == 281474976710656, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x1000000000000, x1, 114*XLEN/8, x2) + +inst_145: +// rs2_val == 562949953421312, rs1_val == 8192 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000, 0x2000000000000, x1, 115*XLEN/8, x2) + +inst_146: +// rs2_val == 2251799813685248, rs1_val == 17592186044416 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100000000000, 0x8000000000000, x1, 116*XLEN/8, x2) + +inst_147: +// rs2_val == 4503599627370496, rs1_val == 536870912 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20000000, 0x10000000000000, x1, 117*XLEN/8, x2) + +inst_148: +// rs2_val == 9007199254740992, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x11, 0x20000000000000, x1, 118*XLEN/8, x2) + +inst_149: +// rs2_val == 18014398509481984, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x40000000000000, x1, 119*XLEN/8, x2) + +inst_150: +// rs2_val == 36028797018963968, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8000000001, 0x80000000000000, x1, 120*XLEN/8, x2) + +inst_151: +// rs2_val == 72057594037927936, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x800001, 0x100000000000000, x1, 121*XLEN/8, x2) + +inst_152: +// rs2_val == 144115188075855872, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x11, 0x200000000000000, x1, 122*XLEN/8, x2) + +inst_153: +// rs2_val == 288230376151711744, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x20000001, 0x400000000000000, x1, 123*XLEN/8, x2) + +inst_154: +// rs2_val == 576460752303423488, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80000000000000, 0x800000000000000, x1, 124*XLEN/8, x2) + +inst_155: +// rs2_val == 1152921504606846976, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x1; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x1, 0x1000000000000000, x1, 125*XLEN/8, x2) + +inst_156: +// rs2_val == 4611686018427387904, rs1_val == 256 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100, 0x4000000000000000, x1, 126*XLEN/8, x2) + +inst_157: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x2001, -0x8000000000000000, x1, 127*XLEN/8, x2) + +inst_158: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x3, x1, 128*XLEN/8, x2) + +inst_159: +// rs1_val == 8, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x200000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8, 0x200000000000, x1, 129*XLEN/8, x2) + +inst_160: +// rs1_val == 64, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x2000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40, 0x2000, x1, 130*XLEN/8, x2) + +inst_161: +// rs1_val == 128, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80, 0x40000000000000, x1, 131*XLEN/8, x2) + +inst_162: +// rs1_val == 4096, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1000, 0x6, x1, 132*XLEN/8, x2) + +inst_163: +// rs1_val == 16384, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4000, -0x4000000000000001, x1, 133*XLEN/8, x2) + +inst_164: +// rs1_val == 524288, rs2_val == -6148914691236517206 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80000, -0x5555555555555556, x1, 134*XLEN/8, x2) + +inst_165: +// rs1_val == 1048576, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:-0x41 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100000, -0x41, x1, 135*XLEN/8, x2) + +inst_166: +// rs1_val == 4194304, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x10001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x400000, -0x10001, x1, 136*XLEN/8, x2) + +inst_167: +// rs1_val == 67108864, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x20 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4000000, 0x20, x1, 137*XLEN/8, x2) + +inst_168: +// rs1_val == 134217728, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:0x200000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000000, 0x200000000, x1, 138*XLEN/8, x2) + +inst_169: +// rs1_val == 268435456, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x10000000, 0x20000000000000, x1, 139*XLEN/8, x2) + +inst_170: +// rs1_val == 1073741824, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000000, 0x10000000, x1, 140*XLEN/8, x2) + +inst_171: +// rs1_val == 2147483648, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:0x800000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80000000, 0x800000000000, x1, 141*XLEN/8, x2) + +inst_172: +// rs1_val == 17179869184, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x400000000, -0x8000000000001, x1, 142*XLEN/8, x2) + +inst_173: +// rs1_val == 68719476736, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:-0x2001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x1000000000, -0x2001, x1, 143*XLEN/8, x2) + +inst_174: +// rs1_val == 137438953472, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000000000, 0x6666666666666665, x1, 144*XLEN/8, x2) + +inst_175: +// rs1_val == 274877906944, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4000000000, 0x4, x1, 145*XLEN/8, x2) + +inst_176: +// rs1_val == 1099511627776, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x10000000000, 0x40000000000000, x1, 146*XLEN/8, x2) + +inst_177: +// rs1_val == 4398046511104, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x40000000000, 0x5555555555555556, x1, 147*XLEN/8, x2) + +inst_178: +// rs1_val == 8796093022208, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x80000000000, -0x20000000000001, x1, 148*XLEN/8, x2) + +inst_179: +// rs1_val == 70368744177664, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x400000000000, -0xb504f333, x1, 149*XLEN/8, x2) + +inst_180: +// rs1_val == 562949953421312, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:-0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000000000000, -0x5, x1, 150*XLEN/8, x2) + +inst_181: +// rs1_val == 2251799813685248, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000000000000, 0x0, x1, 151*XLEN/8, x2) + +inst_182: +// rs1_val == 9007199254740992, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:-0x80000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x20000000000000, -0x80000001, x1, 152*XLEN/8, x2) + +inst_183: +// rs1_val == 72057594037927936, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x100000000000000, -0xb504f332, x1, 153*XLEN/8, x2) + +inst_184: +// rs1_val == 144115188075855872, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:0x20000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x200000000000000, 0x20000000000, x1, 154*XLEN/8, x2) + +inst_185: +// rs1_val == 288230376151711744, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x400000000000000, 0x2000000000000000, x1, 155*XLEN/8, x2) + +inst_186: +// rs1_val == 576460752303423488, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x800000000000000, -0x8001, x1, 156*XLEN/8, x2) + +inst_187: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2000000000000000, -0x400000000001, x1, 157*XLEN/8, x2) + +inst_188: +// rs1_val == 4611686018427387904, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4000000000000000, -0x10000000000001, x1, 158*XLEN/8, x2) + +inst_189: +// rs1_val==3 and rs2_val==6148914691236517205, rs2_val == 6148914691236517205 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 159*XLEN/8, x2) + +inst_190: +// rs1_val==3 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 160*XLEN/8, x2) + +inst_191: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x5, x1, 161*XLEN/8, x2) + +inst_192: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 162*XLEN/8, x2) + +inst_193: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 163*XLEN/8, x2) + +inst_194: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 164*XLEN/8, x2) + +inst_195: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 165*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x2, x1, 166*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 167*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x0, x1, 168*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x4, x1, 169*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 170*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 171*XLEN/8, x2) + +inst_202: +// rs1_val == 6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x20 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x20, x1, 172*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 173*XLEN/8, x2) + +inst_204: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 174*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 175*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x6, x1, 176*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 177*XLEN/8, x2) + +inst_208: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 178*XLEN/8, x2) + +inst_209: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 179*XLEN/8, x2) + +inst_210: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 180*XLEN/8, x2) + +inst_211: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 181*XLEN/8, x2) + +inst_212: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 182*XLEN/8, x2) + +inst_213: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 183*XLEN/8, x2) + +inst_214: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 184*XLEN/8, x2) + +inst_215: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 185*XLEN/8, x2) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 186*XLEN/8, x2) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 187*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 188*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 189*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 190*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 191*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 192*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 193*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 194*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 195*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 196*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 197*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 198*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 199*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 200*XLEN/8, x2) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 201*XLEN/8, x2) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 202*XLEN/8, x2) + +inst_233: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 203*XLEN/8, x2) + +inst_234: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 204*XLEN/8, x2) + +inst_235: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 205*XLEN/8, x2) + +inst_236: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 206*XLEN/8, x2) + +inst_237: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 207*XLEN/8, x2) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 208*XLEN/8, x2) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 209*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 210*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 211*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 212*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 213*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 214*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 215*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 216*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 217*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 218*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 219*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 220*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 221*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 222*XLEN/8, x2) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 223*XLEN/8, x2) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 224*XLEN/8, x2) + +inst_255: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x3, x1, 225*XLEN/8, x2) + +inst_256: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 226*XLEN/8, x2) + +inst_257: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 227*XLEN/8, x2) + +inst_258: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x5, x1, 228*XLEN/8, x2) + +inst_259: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 229*XLEN/8, x2) + +inst_260: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 230*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 231*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 232*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x2, x1, 233*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 234*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x0, x1, 235*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x4, x1, 236*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 237*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 238*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 239*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 240*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 241*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x6, x1, 242*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 243*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 244*XLEN/8, x2) + +inst_275: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 245*XLEN/8, x2) + +inst_276: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 246*XLEN/8, x2) + +inst_277: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 247*XLEN/8, x2) + +inst_278: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 248*XLEN/8, x2) + +inst_279: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 249*XLEN/8, x2) + +inst_280: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 250*XLEN/8, x2) + +inst_281: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 251*XLEN/8, x2) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 252*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 253*XLEN/8, x2) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 254*XLEN/8, x2) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_3) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 0*XLEN/8, x2) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 1*XLEN/8, x2) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 2*XLEN/8, x2) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 3*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 4*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 5*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 6*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 7*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 8*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 9*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 10*XLEN/8, x2) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 11*XLEN/8, x2) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 12*XLEN/8, x2) + +inst_299: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 13*XLEN/8, x2) + +inst_300: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 14*XLEN/8, x2) + +inst_301: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 15*XLEN/8, x2) + +inst_302: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 16*XLEN/8, x2) + +inst_303: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 17*XLEN/8, x2) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 18*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 19*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 20*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 21*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 22*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 23*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 24*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 25*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 26*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 27*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 28*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 29*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 30*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 31*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 32*XLEN/8, x2) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 33*XLEN/8, x2) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 34*XLEN/8, x2) + +inst_321: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 35*XLEN/8, x2) + +inst_322: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 36*XLEN/8, x2) + +inst_323: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 37*XLEN/8, x2) + +inst_324: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 38*XLEN/8, x2) + +inst_325: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 39*XLEN/8, x2) + +inst_326: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 40*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 41*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 42*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 43*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 44*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 45*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 46*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 47*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 48*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 49*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 50*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 51*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 52*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 53*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 54*XLEN/8, x2) + +inst_341: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 55*XLEN/8, x2) + +inst_342: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 56*XLEN/8, x2) + +inst_343: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 57*XLEN/8, x2) + +inst_344: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 58*XLEN/8, x2) + +inst_345: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 59*XLEN/8, x2) + +inst_346: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 60*XLEN/8, x2) + +inst_347: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 61*XLEN/8, x2) + +inst_348: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 62*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 63*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 64*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 65*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 66*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 67*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 68*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 69*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 70*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 71*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 72*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 73*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 74*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 75*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 76*XLEN/8, x2) + +inst_363: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 77*XLEN/8, x2) + +inst_364: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 78*XLEN/8, x2) + +inst_365: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x3, x1, 79*XLEN/8, x2) + +inst_366: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 80*XLEN/8, x2) + +inst_367: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 81*XLEN/8, x2) + +inst_368: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x5, x1, 82*XLEN/8, x2) + +inst_369: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 83*XLEN/8, x2) + +inst_370: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 84*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 85*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 86*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x2, x1, 87*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 88*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x0, x1, 89*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x4, x1, 90*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 91*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 92*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 93*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 94*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 95*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x6, x1, 96*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 97*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 98*XLEN/8, x2) + +inst_385: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 99*XLEN/8, x2) + +inst_386: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 100*XLEN/8, x2) + +inst_387: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 101*XLEN/8, x2) + +inst_388: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 102*XLEN/8, x2) + +inst_389: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 103*XLEN/8, x2) + +inst_390: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 104*XLEN/8, x2) + +inst_391: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 105*XLEN/8, x2) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 106*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 107*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 108*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 109*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 110*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 111*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 112*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 113*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 114*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 115*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 116*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 117*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 118*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 119*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 120*XLEN/8, x2) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 121*XLEN/8, x2) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 122*XLEN/8, x2) + +inst_409: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x3, x1, 123*XLEN/8, x2) + +inst_410: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 124*XLEN/8, x2) + +inst_411: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 125*XLEN/8, x2) + +inst_412: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x5, x1, 126*XLEN/8, x2) + +inst_413: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 127*XLEN/8, x2) + +inst_414: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 128*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 129*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 130*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x2, x1, 131*XLEN/8, x2) + +inst_418: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 132*XLEN/8, x2) + +inst_419: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 133*XLEN/8, x2) + +inst_420: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x3, x1, 134*XLEN/8, x2) + +inst_421: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 135*XLEN/8, x2) + +inst_422: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 136*XLEN/8, x2) + +inst_423: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x5, x1, 137*XLEN/8, x2) + +inst_424: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 138*XLEN/8, x2) + +inst_425: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 139*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 140*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 141*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x2, x1, 142*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 143*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x0, x1, 144*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x4, x1, 145*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 146*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 147*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 148*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 149*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 150*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x6, x1, 151*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 152*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 153*XLEN/8, x2) + +inst_440: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 154*XLEN/8, x2) + +inst_441: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 155*XLEN/8, x2) + +inst_442: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 156*XLEN/8, x2) + +inst_443: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 157*XLEN/8, x2) + +inst_444: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 158*XLEN/8, x2) + +inst_445: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 159*XLEN/8, x2) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 160*XLEN/8, x2) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 161*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 162*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 163*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 164*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 165*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 166*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 167*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 168*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 169*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 170*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 171*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 172*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 173*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 174*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 175*XLEN/8, x2) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 176*XLEN/8, x2) + +inst_463: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 177*XLEN/8, x2) + +inst_464: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 178*XLEN/8, x2) + +inst_465: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 179*XLEN/8, x2) + +inst_466: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 180*XLEN/8, x2) + +inst_467: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 181*XLEN/8, x2) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 182*XLEN/8, x2) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 183*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 184*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 185*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 186*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 187*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 188*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 189*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 190*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 191*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 192*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 193*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 194*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 195*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 196*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 197*XLEN/8, x2) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 198*XLEN/8, x2) + +inst_485: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 199*XLEN/8, x2) + +inst_486: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 200*XLEN/8, x2) + +inst_487: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 201*XLEN/8, x2) + +inst_488: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 202*XLEN/8, x2) + +inst_489: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 203*XLEN/8, x2) + +inst_490: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 204*XLEN/8, x2) + +inst_491: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 205*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 206*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 207*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 208*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 209*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 210*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 211*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 212*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 213*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 214*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 215*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 216*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 217*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 218*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 219*XLEN/8, x2) + +inst_506: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 220*XLEN/8, x2) + +inst_507: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 221*XLEN/8, x2) + +inst_508: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 222*XLEN/8, x2) + +inst_509: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 223*XLEN/8, x2) + +inst_510: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 224*XLEN/8, x2) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 225*XLEN/8, x2) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 226*XLEN/8, x2) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 227*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 228*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 229*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 230*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 231*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 232*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 233*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 234*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 235*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 236*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 237*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 238*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 239*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 240*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 241*XLEN/8, x2) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 242*XLEN/8, x2) + +inst_529: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 243*XLEN/8, x2) + +inst_530: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 244*XLEN/8, x2) + +inst_531: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 245*XLEN/8, x2) + +inst_532: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 246*XLEN/8, x2) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 247*XLEN/8, x2) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 248*XLEN/8, x2) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 249*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 250*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 251*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 252*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 253*XLEN/8, x2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 254*XLEN/8, x2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_4) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 0*XLEN/8, x2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 1*XLEN/8, x2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 2*XLEN/8, x2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 3*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 4*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 5*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 6*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 7*XLEN/8, x2) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 8*XLEN/8, x2) + +inst_551: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 9*XLEN/8, x2) + +inst_552: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x3, x1, 10*XLEN/8, x2) + +inst_553: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 11*XLEN/8, x2) + +inst_554: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 12*XLEN/8, x2) + +inst_555: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x5, x1, 13*XLEN/8, x2) + +inst_556: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 14*XLEN/8, x2) + +inst_557: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 15*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 16*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 17*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x2, x1, 18*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 19*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x0, x1, 20*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x4, x1, 21*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 22*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 23*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 24*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 25*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 26*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x6, x1, 27*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 28*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 29*XLEN/8, x2) + +inst_572: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 30*XLEN/8, x2) + +inst_573: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 31*XLEN/8, x2) + +inst_574: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 32*XLEN/8, x2) + +inst_575: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 33*XLEN/8, x2) + +inst_576: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 34*XLEN/8, x2) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 35*XLEN/8, x2) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 36*XLEN/8, x2) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 37*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 38*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 39*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 40*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 41*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 42*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 43*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 44*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 45*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 46*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 47*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 48*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 49*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 50*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 51*XLEN/8, x2) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 52*XLEN/8, x2) + +inst_595: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 53*XLEN/8, x2) + +inst_596: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 54*XLEN/8, x2) + +inst_597: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 55*XLEN/8, x2) + +inst_598: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 56*XLEN/8, x2) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 57*XLEN/8, x2) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 58*XLEN/8, x2) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 59*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 60*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 61*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 62*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 63*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 64*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 65*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 66*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 67*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 68*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 69*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 70*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 71*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 72*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 73*XLEN/8, x2) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 74*XLEN/8, x2) + +inst_617: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 75*XLEN/8, x2) + +inst_618: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 76*XLEN/8, x2) + +inst_619: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 77*XLEN/8, x2) + +inst_620: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 78*XLEN/8, x2) + +inst_621: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 79*XLEN/8, x2) + +inst_622: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 80*XLEN/8, x2) + +inst_623: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 81*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 82*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 83*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 84*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 85*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 86*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 87*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 88*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 89*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 90*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 91*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 92*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 93*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 94*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 95*XLEN/8, x2) + +inst_638: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 96*XLEN/8, x2) + +inst_639: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 97*XLEN/8, x2) + +inst_640: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 98*XLEN/8, x2) + +inst_641: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 99*XLEN/8, x2) + +inst_642: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 100*XLEN/8, x2) + +inst_643: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 101*XLEN/8, x2) + +inst_644: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 102*XLEN/8, x2) + +inst_645: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 103*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 104*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 105*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 106*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 107*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 108*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 109*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 110*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 111*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 112*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 113*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 114*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 115*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 116*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 117*XLEN/8, x2) + +inst_660: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 118*XLEN/8, x2) + +inst_661: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 119*XLEN/8, x2) + +inst_662: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 120*XLEN/8, x2) + +inst_663: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x0, x1, 121*XLEN/8, x2) + +inst_664: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x4, x1, 122*XLEN/8, x2) + +inst_665: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 123*XLEN/8, x2) + +inst_666: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 124*XLEN/8, x2) + +inst_667: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 125*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 126*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 127*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x6, x1, 128*XLEN/8, x2) + +inst_671: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 129*XLEN/8, x2) + +inst_672: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 130*XLEN/8, x2) + +inst_673: +// rs1_val == (-2**(xlen-1)), rs1_val == -9223372036854775808, rs2_val == -257 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:-0x101 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, -0x8000000000000000, -0x101, x1, 131*XLEN/8, x2) + +inst_674: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs2_val == 8796093022208, rs1_val == 9223372036854775807 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:0x80000000000 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x7fffffffffffffff, 0x80000000000, x1, 132*XLEN/8, x2) + +inst_675: +// rs2_val == -2097153, rs1_val == 32768 +// opcode: mop.rr.1 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:-0x200001 +TEST_RR_OP(mop.rr.1, x31, x30, x29, 0, 0x8000, -0x200001, x1, 133*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 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_0: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_3: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_4: + .fill 134*((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/Zimop/src/mop.rr.2-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.2-01.S new file mode 100644 index 000000000..52e4b0fe2 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.2-01.S @@ -0,0 +1,3522 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.2 instruction of the RISC-V RV64Zimop extension for the mop.rr.2 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.2) + +RVTEST_SIGBASE(x18,signature_x18_1) + +inst_0: +// rs1 == rd != rs2, rs1==x11, rs2==x9, rd==x11, rs1_val != rs2_val, rs2_val == 288230376151711744, rs1_val < 0 and rs2_val > 0, rs1_val == -2147483649 +// opcode: mop.rr.2 ; op1:x11; op2:x9; dest:x11; op1val:-0x80000001; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.2, x11, x11, x9, 0, -0x80000001, 0x400000000000000, x18, 0*XLEN/8, x3) + +inst_1: +// rs2 == rd != rs1, rs1==x12, rs2==x31, rd==x31, rs1_val < 0 and rs2_val < 0, rs2_val == -4097, rs1_val == -2097153 +// opcode: mop.rr.2 ; op1:x12; op2:x31; dest:x31; op1val:-0x200001; op2val:-0x1001 +TEST_RR_OP(mop.rr.2, x31, x12, x31, 0, -0x200001, -0x1001, x18, 1*XLEN/8, x3) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x0, rs2==x5, rd==x29, rs1_val == (-2**(xlen-1)), rs1_val == -9223372036854775808 +// opcode: mop.rr.2 ; op1:x0; op2:x5; dest:x29; op1val:0x0; op2val:-0xa +TEST_RR_OP(mop.rr.2, x29, x0, x5, 0, 0x0, -0xa, x18, 2*XLEN/8, x3) + +inst_3: +// rs1 == rs2 != rd, rs1==x16, rs2==x16, rd==x10, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs1_val == 9223372036854775807 +// opcode: mop.rr.2 ; op1:x16; op2:x16; dest:x10; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.2, x10, x16, x16, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x18, 3*XLEN/8, x3) + +inst_4: +// rs1 == rs2 == rd, rs1==x20, rs2==x20, rd==x20, rs1_val == 0, rs2_val == 18014398509481984 +// opcode: mop.rr.2 ; op1:x20; op2:x20; dest:x20; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.2, x20, x20, x20, 0, 0x0, 0x0, x18, 4*XLEN/8, x3) + +inst_5: +// rs1==x27, rs2==x14, rd==x12, rs1_val == 1, +// opcode: mop.rr.2 ; op1:x27; op2:x14; dest:x12; op1val:0x1; op2val:0x9 +TEST_RR_OP(mop.rr.2, x12, x27, x14, 0, 0x1, 0x9, x18, 5*XLEN/8, x3) + +inst_6: +// rs1==x1, rs2==x4, rd==x7, rs2_val == -2, rs1_val == -2049 +// opcode: mop.rr.2 ; op1:x1; op2:x4; dest:x7; op1val:-0x801; op2val:-0x2 +TEST_RR_OP(mop.rr.2, x7, x1, x4, 0, -0x801, -0x2, x18, 6*XLEN/8, x3) + +inst_7: +// rs1==x14, rs2==x30, rd==x4, rs2_val == -3, rs1_val > 0 and rs2_val < 0 +// opcode: mop.rr.2 ; op1:x14; op2:x30; dest:x4; op1val:0x3; op2val:-0x3 +TEST_RR_OP(mop.rr.2, x4, x14, x30, 0, 0x3, -0x3, x18, 7*XLEN/8, x3) + +inst_8: +// rs1==x13, rs2==x10, rd==x30, rs2_val == -5, rs1_val == -536870913 +// opcode: mop.rr.2 ; op1:x13; op2:x10; dest:x30; op1val:-0x20000001; op2val:-0x5 +TEST_RR_OP(mop.rr.2, x30, x13, x10, 0, -0x20000001, -0x5, x18, 8*XLEN/8, x3) + +inst_9: +// rs1==x31, rs2==x29, rd==x13, rs2_val == -9, +// opcode: mop.rr.2 ; op1:x31; op2:x29; dest:x13; op1val:0xb504f332; op2val:-0x9 +TEST_RR_OP(mop.rr.2, x13, x31, x29, 0, 0xb504f332, -0x9, x18, 9*XLEN/8, x3) + +inst_10: +// rs1==x5, rs2==x17, rd==x8, rs2_val == -17, rs1_val == 4096 +// opcode: mop.rr.2 ; op1:x5; op2:x17; dest:x8; op1val:0x1000; op2val:-0x11 +TEST_RR_OP(mop.rr.2, x8, x5, x17, 0, 0x1000, -0x11, x18, 10*XLEN/8, x3) + +inst_11: +// rs1==x22, rs2==x13, rd==x21, rs2_val == -33, rs1_val == -33554433 +// opcode: mop.rr.2 ; op1:x22; op2:x13; dest:x21; op1val:-0x2000001; op2val:-0x21 +TEST_RR_OP(mop.rr.2, x21, x22, x13, 0, -0x2000001, -0x21, x18, 11*XLEN/8, x3) + +inst_12: +// rs1==x8, rs2==x24, rd==x15, rs2_val == -65, rs1_val == 524288 +// opcode: mop.rr.2 ; op1:x8; op2:x24; dest:x15; op1val:0x80000; op2val:-0x41 +TEST_RR_OP(mop.rr.2, x15, x8, x24, 0, 0x80000, -0x41, x18, 12*XLEN/8, x3) + +inst_13: +// rs1==x4, rs2==x11, rd==x24, rs2_val == -129, rs1_val == -4398046511105 +// opcode: mop.rr.2 ; op1:x4; op2:x11; dest:x24; op1val:-0x40000000001; op2val:-0x81 +TEST_RR_OP(mop.rr.2, x24, x4, x11, 0, -0x40000000001, -0x81, x18, 13*XLEN/8, x3) + +inst_14: +// rs1==x2, rs2==x0, rd==x6, rs2_val == -257, rs1_val == -16777217 +// opcode: mop.rr.2 ; op1:x2; op2:x0; dest:x6; op1val:-0x1000001; op2val:0x0 +TEST_RR_OP(mop.rr.2, x6, x2, x0, 0, -0x1000001, 0x0, x18, 14*XLEN/8, x3) + +inst_15: +// rs1==x28, rs2==x1, rd==x27, rs2_val == -513, rs1_val == -65 +// opcode: mop.rr.2 ; op1:x28; op2:x1; dest:x27; op1val:-0x41; op2val:-0x201 +TEST_RR_OP(mop.rr.2, x27, x28, x1, 0, -0x41, -0x201, x18, 15*XLEN/8, x3) + +inst_16: +// rs1==x3, rs2==x25, rd==x2, rs2_val == -1025, rs1_val == -1125899906842625 +// opcode: mop.rr.2 ; op1:x3; op2:x25; dest:x2; op1val:-0x4000000000001; op2val:-0x401 +TEST_RR_OP(mop.rr.2, x2, x3, x25, 0, -0x4000000000001, -0x401, x18, 16*XLEN/8, x9) +RVTEST_SIGBASE(x4,signature_x4_0) + +inst_17: +// rs1==x23, rs2==x2, rd==x16, rs2_val == -2049, rs1_val == 1152921504606846976 +// opcode: mop.rr.2 ; op1:x23; op2:x2; dest:x16; op1val:0x1000000000000000; op2val:-0x801 +TEST_RR_OP(mop.rr.2, x16, x23, x2, 0, 0x1000000000000000, -0x801, x4, 0*XLEN/8, x9) + +inst_18: +// rs1==x25, rs2==x26, rd==x17, rs2_val == -8193, rs1_val == 4294967296 +// opcode: mop.rr.2 ; op1:x25; op2:x26; dest:x17; op1val:0x100000000; op2val:-0x2001 +TEST_RR_OP(mop.rr.2, x17, x25, x26, 0, 0x100000000, -0x2001, x4, 1*XLEN/8, x9) + +inst_19: +// rs1==x30, rs2==x21, rd==x22, rs2_val == -16385, rs1_val == -2305843009213693953 +// opcode: mop.rr.2 ; op1:x30; op2:x21; dest:x22; op1val:-0x2000000000000001; op2val:-0x4001 +TEST_RR_OP(mop.rr.2, x22, x30, x21, 0, -0x2000000000000001, -0x4001, x4, 2*XLEN/8, x9) + +inst_20: +// rs1==x21, rs2==x28, rd==x0, rs2_val == -32769, rs1_val == 137438953472 +// opcode: mop.rr.2 ; op1:x21; op2:x28; dest:x0; op1val:0x2000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.2, x0, x21, x28, 0, 0x2000000000, -0x8001, x4, 3*XLEN/8, x9) + +inst_21: +// rs1==x26, rs2==x22, rd==x19, rs2_val == -65537, rs1_val == -9007199254740993 +// opcode: mop.rr.2 ; op1:x26; op2:x22; dest:x19; op1val:-0x20000000000001; op2val:-0x10001 +TEST_RR_OP(mop.rr.2, x19, x26, x22, 0, -0x20000000000001, -0x10001, x4, 4*XLEN/8, x9) + +inst_22: +// rs1==x15, rs2==x23, rd==x28, rs2_val == -131073, +// opcode: mop.rr.2 ; op1:x15; op2:x23; dest:x28; op1val:-0xa; op2val:-0x20001 +TEST_RR_OP(mop.rr.2, x28, x15, x23, 0, -0xa, -0x20001, x4, 5*XLEN/8, x9) + +inst_23: +// rs1==x6, rs2==x8, rd==x1, rs2_val == -262145, rs1_val == -36028797018963969 +// opcode: mop.rr.2 ; op1:x6; op2:x8; dest:x1; op1val:-0x80000000000001; op2val:-0x40001 +TEST_RR_OP(mop.rr.2, x1, x6, x8, 0, -0x80000000000001, -0x40001, x4, 6*XLEN/8, x9) + +inst_24: +// rs1==x24, rs2==x18, rd==x25, rs2_val == -524289, rs1_val == -576460752303423489 +// opcode: mop.rr.2 ; op1:x24; op2:x18; dest:x25; op1val:-0x800000000000001; op2val:-0x80001 +TEST_RR_OP(mop.rr.2, x25, x24, x18, 0, -0x800000000000001, -0x80001, x4, 7*XLEN/8, x9) + +inst_25: +// rs1==x17, rs2==x6, rd==x18, rs2_val == -1048577, +// opcode: mop.rr.2 ; op1:x17; op2:x6; dest:x18; op1val:-0x20000001; op2val:-0x100001 +TEST_RR_OP(mop.rr.2, x18, x17, x6, 0, -0x20000001, -0x100001, x4, 8*XLEN/8, x9) + +inst_26: +// rs1==x7, rs2==x12, rd==x26, rs2_val == -2097153, rs1_val == -1099511627777 +// opcode: mop.rr.2 ; op1:x7; op2:x12; dest:x26; op1val:-0x10000000001; op2val:-0x200001 +TEST_RR_OP(mop.rr.2, x26, x7, x12, 0, -0x10000000001, -0x200001, x4, 9*XLEN/8, x9) + +inst_27: +// rs1==x29, rs2==x15, rd==x5, rs2_val == -4194305, rs1_val == 140737488355328 +// opcode: mop.rr.2 ; op1:x29; op2:x15; dest:x5; op1val:0x800000000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.2, x5, x29, x15, 0, 0x800000000000, -0x400001, x4, 10*XLEN/8, x9) + +inst_28: +// rs1==x19, rs2==x7, rd==x3, rs2_val == -8388609, +// opcode: mop.rr.2 ; op1:x19; op2:x7; dest:x3; op1val:0x7; op2val:-0x800001 +TEST_RR_OP(mop.rr.2, x3, x19, x7, 0, 0x7, -0x800001, x4, 11*XLEN/8, x9) + +inst_29: +// rs1==x10, rs2==x27, rd==x14, rs2_val == -16777217, rs1_val == -67108865 +// opcode: mop.rr.2 ; op1:x10; op2:x27; dest:x14; op1val:-0x4000001; op2val:-0x1000001 +TEST_RR_OP(mop.rr.2, x14, x10, x27, 0, -0x4000001, -0x1000001, x4, 12*XLEN/8, x9) + +inst_30: +// rs1==x9, rs2==x19, rd==x23, rs2_val == -33554433, rs1_val == -281474976710657 +// opcode: mop.rr.2 ; op1:x9; op2:x19; dest:x23; op1val:-0x1000000000001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.2, x23, x9, x19, 0, -0x1000000000001, -0x2000001, x4, 13*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_31: +// rs1==x18, rs2==x3, rd==x9, rs2_val == -67108865, +// opcode: mop.rr.2 ; op1:x18; op2:x3; dest:x9; op1val:-0xb504f332; op2val:-0x4000001 +TEST_RR_OP(mop.rr.2, x9, x18, x3, 0, -0xb504f332, -0x4000001, x1, 0*XLEN/8, x2) + +inst_32: +// rs2_val == -134217729, rs1_val == 536870912 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x8000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000000, -0x8000001, x1, 1*XLEN/8, x2) + +inst_33: +// rs2_val == -268435457, rs1_val == -35184372088833 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x200000000001, -0x10000001, x1, 2*XLEN/8, x2) + +inst_34: +// rs2_val == -536870913, rs1_val == 6148914691236517205 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x20000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, -0x20000001, x1, 3*XLEN/8, x2) + +inst_35: +// rs2_val == -1073741825, rs1_val == -140737488355329 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x800000000001, -0x40000001, x1, 4*XLEN/8, x2) + +inst_36: +// rs2_val == -2147483649, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x80000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20000001, -0x80000001, x1, 5*XLEN/8, x2) + +inst_37: +// rs2_val == -4294967297, rs1_val == 65536 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:-0x100000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10000, -0x100000001, x1, 6*XLEN/8, x2) + +inst_38: +// rs2_val == -8589934593, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x200000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x200000001, x1, 7*XLEN/8, x2) + +inst_39: +// rs2_val == -17179869185, rs1_val == 68719476736 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:-0x400000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1000000000, -0x400000001, x1, 8*XLEN/8, x2) + +inst_40: +// rs2_val == -34359738369, rs1_val == 35184372088832 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:-0x800000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200000000000, -0x800000001, x1, 9*XLEN/8, x2) + +inst_41: +// rs2_val == -68719476737, rs1_val == -8193 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2001, -0x1000000001, x1, 10*XLEN/8, x2) + +inst_42: +// rs2_val == -137438953473, rs1_val == 34359738368 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x800000000, -0x2000000001, x1, 11*XLEN/8, x2) + +inst_43: +// rs2_val == -274877906945, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20000000000001, -0x4000000001, x1, 12*XLEN/8, x2) + +inst_44: +// rs2_val == -549755813889, rs1_val == 2147483648 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000000, -0x8000000001, x1, 13*XLEN/8, x2) + +inst_45: +// rs2_val == -1099511627777, rs1_val == -513 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x201, -0x10000000001, x1, 14*XLEN/8, x2) + +inst_46: +// rs2_val == -2199023255553, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000, -0x20000000001, x1, 15*XLEN/8, x2) + +inst_47: +// rs2_val == -4398046511105, rs1_val == 1099511627776 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10000000000, -0x40000000001, x1, 16*XLEN/8, x2) + +inst_48: +// rs2_val == -8796093022209, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x80000000001, x1, 17*XLEN/8, x2) + +inst_49: +// rs2_val == -17592186044417, rs1_val == -4503599627370497 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x10000000000001, -0x100000000001, x1, 18*XLEN/8, x2) + +inst_50: +// rs2_val == -35184372088833, rs1_val == -2 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2, -0x200000000001, x1, 19*XLEN/8, x2) + +inst_51: +// rs2_val == -70368744177665, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x9; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x9, -0x400000000001, x1, 20*XLEN/8, x2) + +inst_52: +// rs2_val == -140737488355329, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2, -0x800000000001, x1, 21*XLEN/8, x2) + +inst_53: +// rs2_val == -281474976710657, rs1_val == -17592186044417 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000000001, -0x1000000000001, x1, 22*XLEN/8, x2) + +inst_54: +// rs2_val == -562949953421313, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x200001, -0x2000000000001, x1, 23*XLEN/8, x2) + +inst_55: +// rs2_val == -1125899906842625, rs1_val == 256 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100, -0x4000000000001, x1, 24*XLEN/8, x2) + +inst_56: +// rs2_val == -2251799813685249, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000000, -0x8000000000001, x1, 25*XLEN/8, x2) + +inst_57: +// rs2_val == -4503599627370497, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000000000001, -0x10000000000001, x1, 26*XLEN/8, x2) + +inst_58: +// rs2_val == -9007199254740993, rs1_val == 8192 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000, -0x20000000000001, x1, 27*XLEN/8, x2) + +inst_59: +// rs2_val == -18014398509481985, rs1_val == -4194305 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400001, -0x40000000000001, x1, 28*XLEN/8, x2) + +inst_60: +// rs2_val == -36028797018963969, rs1_val == -134217729 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8000001, -0x80000000000001, x1, 29*XLEN/8, x2) + +inst_61: +// rs2_val == -72057594037927937, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000000000001, -0x100000000000001, x1, 30*XLEN/8, x2) + +inst_62: +// rs2_val == -144115188075855873, rs1_val == -8388609 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x800001, -0x200000000000001, x1, 31*XLEN/8, x2) + +inst_63: +// rs2_val == -288230376151711745, rs1_val == -17179869185 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400000001, -0x400000000000001, x1, 32*XLEN/8, x2) + +inst_64: +// rs2_val == -576460752303423489, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, -0x800000000000001, x1, 33*XLEN/8, x2) + +inst_65: +// rs2_val == -1152921504606846977, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000, -0x1000000000000001, x1, 34*XLEN/8, x2) + +inst_66: +// rs2_val == -2305843009213693953, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, -0x2000000000000001, x1, 35*XLEN/8, x2) + +inst_67: +// rs2_val == -4611686018427387905, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x4000000000000001, x1, 36*XLEN/8, x2) + +inst_68: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x80000001, 0x7fffffffffffffff, x1, 37*XLEN/8, x2) + +inst_69: +// rs1_val == -3, rs2_val == 35184372088832 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x200000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x3, 0x200000000000, x1, 38*XLEN/8, x2) + +inst_70: +// rs1_val == -5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5, -0x20000000001, x1, 39*XLEN/8, x2) + +inst_71: +// rs1_val == -9, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x10000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x9, -0x10000001, x1, 40*XLEN/8, x2) + +inst_72: +// rs1_val == -17, rs2_val == 2147483648 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x80000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x11, 0x80000000, x1, 41*XLEN/8, x2) + +inst_73: +// rs1_val == -33, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:-0x11 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x21, -0x11, x1, 42*XLEN/8, x2) + +inst_74: +// rs1_val == -129, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x200000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x81, -0x200000001, x1, 43*XLEN/8, x2) + +inst_75: +// rs1_val == -257, rs2_val == 281474976710656 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x101, 0x1000000000000, x1, 44*XLEN/8, x2) + +inst_76: +// rs1_val == -1025, rs2_val == 4194304 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x400000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x401, 0x400000, x1, 45*XLEN/8, x2) + +inst_77: +// rs1_val == -4097, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x200000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1001, -0x200000001, x1, 46*XLEN/8, x2) + +inst_78: +// rs1_val == -16385, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4001, -0x4, x1, 47*XLEN/8, x2) + +inst_79: +// rs1_val == -32769, rs2_val == 0 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8001, 0x0, x1, 48*XLEN/8, x2) + +inst_80: +// rs1_val == -65537, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x10001, 0x40000000000000, x1, 49*XLEN/8, x2) + +inst_81: +// rs1_val == -131073, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x800000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20001, -0x800000001, x1, 50*XLEN/8, x2) + +inst_82: +// rs1_val == -262145, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40001, -0x4000000000000001, x1, 51*XLEN/8, x2) + +inst_83: +// rs1_val == -524289, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x80001, -0x200000000000001, x1, 52*XLEN/8, x2) + +inst_84: +// rs1_val == -1048577, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100001, -0x80000000001, x1, 53*XLEN/8, x2) + +inst_85: +// rs1_val == -268435457, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:-0x1001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x10000001, -0x1001, x1, 54*XLEN/8, x2) + +inst_86: +// rs1_val == -1073741825, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:-0x81 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40000001, -0x81, x1, 55*XLEN/8, x2) + +inst_87: +// rs1_val == -4294967297, rs2_val == 144115188075855872 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000001, 0x200000000000000, x1, 56*XLEN/8, x2) + +inst_88: +// rs1_val == -8589934593, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x200000001, -0x400000000001, x1, 57*XLEN/8, x2) + +inst_89: +// rs1_val == -34359738369, rs2_val == 4 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x800000001, 0x4, x1, 58*XLEN/8, x2) + +inst_90: +// rs1_val == -68719476737, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000000001, -0x800000000001, x1, 59*XLEN/8, x2) + +inst_91: +// rs1_val == -137438953473, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2000000001, 0x6666666666666667, x1, 60*XLEN/8, x2) + +inst_92: +// rs1_val == -274877906945, rs2_val == 2 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000000001, 0x2, x1, 61*XLEN/8, x2) + +inst_93: +// rs1_val == -549755813889, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8000000001, -0x20000000001, x1, 62*XLEN/8, x2) + +inst_94: +// rs1_val == -2199023255553, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:-0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20000000001, -0x5, x1, 63*XLEN/8, x2) + +inst_95: +// rs1_val == -8796093022209, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000001; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x80000000001, 0x2, x1, 64*XLEN/8, x2) + +inst_96: +// rs1_val == -70368744177665, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400000000001, 0x0, x1, 65*XLEN/8, x2) + +inst_97: +// rs1_val == -562949953421313, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x2000000000001, 0x4, x1, 66*XLEN/8, x2) + +inst_98: +// rs1_val == -2251799813685249, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:-0x4001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8000000000001, -0x4001, x1, 67*XLEN/8, x2) + +inst_99: +// rs1_val == -18014398509481985, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x40000000000001, 0x6666666666666666, x1, 68*XLEN/8, x2) + +inst_100: +// rs1_val == -72057594037927937, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000000000001, -0x200000000001, x1, 69*XLEN/8, x2) + +inst_101: +// rs1_val == -144115188075855873, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x200000000000001, -0x100000001, x1, 70*XLEN/8, x2) + +inst_102: +// rs1_val == -288230376151711745, rs2_val == 64 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:0x40 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400000000000001, 0x40, x1, 71*XLEN/8, x2) + +inst_103: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000000000000001, 0xb504f333, x1, 72*XLEN/8, x2) + +inst_104: +// rs1_val == -4611686018427387905, rs2_val == 536870912 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:0x20000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000000000000001, 0x20000000, x1, 73*XLEN/8, x2) + +inst_105: +// rs2_val == 1, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x1 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x1, x1, 74*XLEN/8, x2) + +inst_106: +// rs2_val == 8, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:0x8 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1, 0x8, x1, 75*XLEN/8, x2) + +inst_107: +// rs2_val == 16, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x10 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x21, 0x10, x1, 76*XLEN/8, x2) + +inst_108: +// rs2_val == 32, rs1_val == 8 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x20 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8, 0x20, x1, 77*XLEN/8, x2) + +inst_109: +// rs2_val == 128, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x80 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000, 0x80, x1, 78*XLEN/8, x2) + +inst_110: +// rs2_val == 256, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:0x100 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x7, 0x100, x1, 79*XLEN/8, x2) + +inst_111: +// rs2_val == 512, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x200 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x200, x1, 80*XLEN/8, x2) + +inst_112: +// rs2_val == 1024, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x400 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1001, 0x400, x1, 81*XLEN/8, x2) + +inst_113: +// rs2_val == 2048, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:0x800 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000001, 0x800, x1, 82*XLEN/8, x2) + +inst_114: +// rs2_val == 4096, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x1000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x1000, x1, 83*XLEN/8, x2) + +inst_115: +// rs2_val == 8192, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:0x2000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000000001, 0x2000, x1, 84*XLEN/8, x2) + +inst_116: +// rs2_val == 16384, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x4000, x1, 85*XLEN/8, x2) + +inst_117: +// rs2_val == 32768, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x8000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x8000, x1, 86*XLEN/8, x2) + +inst_118: +// rs2_val == 65536, rs1_val == 4 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x10000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x10000, x1, 87*XLEN/8, x2) + +inst_119: +// rs2_val == 131072, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x20000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20000001, 0x20000, x1, 88*XLEN/8, x2) + +inst_120: +// rs2_val == 262144, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x40000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x40000, x1, 89*XLEN/8, x2) + +inst_121: +// rs2_val == 524288, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:0x80000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1000000000, 0x80000, x1, 90*XLEN/8, x2) + +inst_122: +// rs2_val == 1048576, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x100000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x100000, x1, 91*XLEN/8, x2) + +inst_123: +// rs2_val == 2097152, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:0x200000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000001, 0x200000, x1, 92*XLEN/8, x2) + +inst_124: +// rs2_val == 8388608, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x800000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400001, 0x800000, x1, 93*XLEN/8, x2) + +inst_125: +// rs2_val == 16777216, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x1000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x1000000, x1, 94*XLEN/8, x2) + +inst_126: +// rs2_val == 33554432, rs1_val == 18014398509481984 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:0x2000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40000000000000, 0x2000000, x1, 95*XLEN/8, x2) + +inst_127: +// rs2_val == 67108864, rs1_val == 8388608 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x4000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x800000, 0x4000000, x1, 96*XLEN/8, x2) + +inst_128: +// rs2_val == 134217728, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:0x8000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8000000000001, 0x8000000, x1, 97*XLEN/8, x2) + +inst_129: +// rs2_val == 268435456, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:0x10000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x800000000001, 0x10000000, x1, 98*XLEN/8, x2) + +inst_130: +// rs2_val == 1073741824, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x40000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8001, 0x40000000, x1, 99*XLEN/8, x2) + +inst_131: +// rs2_val == 4294967296, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:0x100000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400000001, 0x100000000, x1, 100*XLEN/8, x2) + +inst_132: +// rs2_val == 8589934592, rs1_val == 2 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x200000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x200000000, x1, 101*XLEN/8, x2) + +inst_133: +// rs2_val == 17179869184, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:0x400000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000000000001, 0x400000000, x1, 102*XLEN/8, x2) + +inst_134: +// rs2_val == 34359738368, rs1_val == 8796093022208 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x800000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000000000, 0x800000000, x1, 103*XLEN/8, x2) + +inst_135: +// rs2_val == 68719476736, rs1_val == 4194304 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:0x1000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400000, 0x1000000000, x1, 104*XLEN/8, x2) + +inst_136: +// rs2_val == 137438953472, rs1_val == 2199023255552 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000000000, 0x2000000000, x1, 105*XLEN/8, x2) + +inst_137: +// rs2_val == 274877906944, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:0x4000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000000000000000, 0x4000000000, x1, 106*XLEN/8, x2) + +inst_138: +// rs2_val == 549755813888, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x8000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x8000000000, x1, 107*XLEN/8, x2) + +inst_139: +// rs2_val == 1099511627776, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:0x10000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x100000000001, 0x10000000000, x1, 108*XLEN/8, x2) + +inst_140: +// rs2_val == 2199023255552, rs1_val == 2097152 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x20000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200000, 0x20000000000, x1, 109*XLEN/8, x2) + +inst_141: +// rs2_val == 4398046511104, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x40000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x40000000000, x1, 110*XLEN/8, x2) + +inst_142: +// rs2_val == 8796093022208, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:0x80000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000000001, 0x80000000000, x1, 111*XLEN/8, x2) + +inst_143: +// rs2_val == 17592186044416, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x100000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x100000000000, x1, 112*XLEN/8, x2) + +inst_144: +// rs2_val == 70368744177664, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000001, 0x400000000000, x1, 113*XLEN/8, x2) + +inst_145: +// rs2_val == 140737488355328, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x800000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x800000000000, x1, 114*XLEN/8, x2) + +inst_146: +// rs2_val == 562949953421312, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x4000000000000000, 0x2000000000000, x1, 115*XLEN/8, x2) + +inst_147: +// rs2_val == 1125899906842624, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x4000000000000, x1, 116*XLEN/8, x2) + +inst_148: +// rs2_val == 2251799813685248, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400000, 0x8000000000000, x1, 117*XLEN/8, x2) + +inst_149: +// rs2_val == 4503599627370496, rs1_val == 131072 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000, 0x10000000000000, x1, 118*XLEN/8, x2) + +inst_150: +// rs2_val == 9007199254740992, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x20000000000000, x1, 119*XLEN/8, x2) + +inst_151: +// rs2_val == 36028797018963968, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000000000, 0x80000000000000, x1, 120*XLEN/8, x2) + +inst_152: +// rs2_val == 72057594037927936, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x100000000000000, x1, 121*XLEN/8, x2) + +inst_153: +// rs2_val == 576460752303423488, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x20000001, 0x800000000000000, x1, 122*XLEN/8, x2) + +inst_154: +// rs2_val == 1152921504606846976, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x400000000001, 0x1000000000000000, x1, 123*XLEN/8, x2) + +inst_155: +// rs2_val == 2305843009213693952, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000, 0x2000000000000000, x1, 124*XLEN/8, x2) + +inst_156: +// rs2_val == 4611686018427387904, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100, 0x4000000000000000, x1, 125*XLEN/8, x2) + +inst_157: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x80000001, -0x8000000000000000, x1, 126*XLEN/8, x2) + +inst_158: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x3, x1, 127*XLEN/8, x2) + +inst_159: +// rs1_val == 16, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10, -0x200000000001, x1, 128*XLEN/8, x2) + +inst_160: +// rs1_val == 32, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x8 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20, -0x8, x1, 129*XLEN/8, x2) + +inst_161: +// rs1_val == 64, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x80000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40, 0x80000, x1, 130*XLEN/8, x2) + +inst_162: +// rs1_val == 128, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x81 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80, -0x81, x1, 131*XLEN/8, x2) + +inst_163: +// rs1_val == 512, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200, 0x40000000000000, x1, 132*XLEN/8, x2) + +inst_164: +// rs1_val == 1024, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400, 0x400000000000000, x1, 133*XLEN/8, x2) + +inst_165: +// rs1_val == 2048, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:-0x20000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x800, -0x20000001, x1, 134*XLEN/8, x2) + +inst_166: +// rs1_val == 16384, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000, 0x2000000000, x1, 135*XLEN/8, x2) + +inst_167: +// rs1_val == 32768, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8000, 0x6666666666666667, x1, 136*XLEN/8, x2) + +inst_168: +// rs1_val == 262144, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40000, 0x7fffffffffffffff, x1, 137*XLEN/8, x2) + +inst_169: +// rs1_val == 1048576, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x100000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100000, 0x100000000000, x1, 138*XLEN/8, x2) + +inst_170: +// rs1_val == 16777216, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1000000, 0x4, x1, 139*XLEN/8, x2) + +inst_171: +// rs1_val == 33554432, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000000, 0x6, x1, 140*XLEN/8, x2) + +inst_172: +// rs1_val == 67108864, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000000, 0xb504f332, x1, 141*XLEN/8, x2) + +inst_173: +// rs1_val == 134217728, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:0x100000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8000000, 0x100000, x1, 142*XLEN/8, x2) + +inst_174: +// rs1_val == 268435456, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x100000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10000000, 0x100000000000, x1, 143*XLEN/8, x2) + +inst_175: +// rs1_val == 1073741824, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40000000, -0xb504f333, x1, 144*XLEN/8, x2) + +inst_176: +// rs1_val == 8589934592, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x4000000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200000000, -0x4000000000000000, x1, 145*XLEN/8, x2) + +inst_177: +// rs1_val == 17179869184, rs2_val == 6148914691236517205 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400000000, 0x5555555555555555, x1, 146*XLEN/8, x2) + +inst_178: +// rs1_val == 274877906944, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000000000, 0x5555555555555554, x1, 147*XLEN/8, x2) + +inst_179: +// rs1_val == 549755813888, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8000000000, 0x80000000000000, x1, 148*XLEN/8, x2) + +inst_180: +// rs1_val == 4398046511104, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:0x1000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x40000000000, 0x1000000000, x1, 149*XLEN/8, x2) + +inst_181: +// rs1_val == 17592186044416, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100000000000, -0x4000000000001, x1, 150*XLEN/8, x2) + +inst_182: +// rs1_val == 70368744177664, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400000000000, 0xb504f334, x1, 151*XLEN/8, x2) + +inst_183: +// rs1_val == 281474976710656, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x1000000000000, 0x20000000, x1, 152*XLEN/8, x2) + +inst_184: +// rs1_val == 562949953421312, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000000000000, 0x200000000000000, x1, 153*XLEN/8, x2) + +inst_185: +// rs1_val == 1125899906842624, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000000000000, -0x400001, x1, 154*XLEN/8, x2) + +inst_186: +// rs1_val == 2251799813685248, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:-0xa +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x8000000000000, -0xa, x1, 155*XLEN/8, x2) + +inst_187: +// rs1_val == 4503599627370496, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000000; op2val:0x800000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x10000000000000, 0x800000000, x1, 156*XLEN/8, x2) + +inst_188: +// rs1_val == 9007199254740992, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x20000000000000, -0x4000000001, x1, 157*XLEN/8, x2) + +inst_189: +// rs1_val == 36028797018963968, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x80000000000000, -0x10000000001, x1, 158*XLEN/8, x2) + +inst_190: +// rs1_val == 72057594037927936, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:-0x80001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x100000000000000, -0x80001, x1, 159*XLEN/8, x2) + +inst_191: +// rs1_val == 144115188075855872, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:-0x41 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x200000000000000, -0x41, x1, 160*XLEN/8, x2) + +inst_192: +// rs1_val == 288230376151711744, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:0x80000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x400000000000000, 0x80000, x1, 161*XLEN/8, x2) + +inst_193: +// rs1_val == 576460752303423488, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:-0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x800000000000000, -0x3, x1, 162*XLEN/8, x2) + +inst_194: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000000000000000, 0x20000000, x1, 163*XLEN/8, x2) + +inst_195: +// rs1_val == 4611686018427387904, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:-0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4000000000000000, -0x3, x1, 164*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 165*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==-6148914691236517206, rs2_val == -6148914691236517206 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 166*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x5, x1, 167*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 168*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 169*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 170*XLEN/8, x2) + +inst_202: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 171*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x2, x1, 172*XLEN/8, x2) + +inst_204: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 173*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x0, x1, 174*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x4, x1, 175*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 176*XLEN/8, x2) + +inst_208: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 177*XLEN/8, x2) + +inst_209: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 178*XLEN/8, x2) + +inst_210: +// rs1_val == -6148914691236517206, rs1_val==-6148914691236517206 and rs2_val==3689348814741910323 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 179*XLEN/8, x2) + +inst_211: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 180*XLEN/8, x2) + +inst_212: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 181*XLEN/8, x2) + +inst_213: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x6, x1, 182*XLEN/8, x2) + +inst_214: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 183*XLEN/8, x2) + +inst_215: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 184*XLEN/8, x2) + +inst_216: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 185*XLEN/8, x2) + +inst_217: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 186*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 187*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 188*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 189*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 190*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 191*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 192*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 193*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 194*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 195*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 196*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 197*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 198*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 199*XLEN/8, x2) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 200*XLEN/8, x2) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 201*XLEN/8, x2) + +inst_233: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 202*XLEN/8, x2) + +inst_234: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 203*XLEN/8, x2) + +inst_235: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 204*XLEN/8, x2) + +inst_236: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 205*XLEN/8, x2) + +inst_237: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 206*XLEN/8, x2) + +inst_238: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 207*XLEN/8, x2) + +inst_239: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 208*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 209*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 210*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 211*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 212*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 213*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 214*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 215*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 216*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 217*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 218*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 219*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 220*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 221*XLEN/8, x2) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 222*XLEN/8, x2) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 223*XLEN/8, x2) + +inst_255: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 224*XLEN/8, x2) + +inst_256: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 225*XLEN/8, x2) + +inst_257: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 226*XLEN/8, x2) + +inst_258: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 227*XLEN/8, x2) + +inst_259: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 228*XLEN/8, x2) + +inst_260: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 229*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x3, x1, 230*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 231*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 232*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x5, x1, 233*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 234*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 235*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 236*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 237*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x2, x1, 238*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 239*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x0, x1, 240*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x4, x1, 241*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 242*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 243*XLEN/8, x2) + +inst_275: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 244*XLEN/8, x2) + +inst_276: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 245*XLEN/8, x2) + +inst_277: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 246*XLEN/8, x2) + +inst_278: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x6, x1, 247*XLEN/8, x2) + +inst_279: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 248*XLEN/8, x2) + +inst_280: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 249*XLEN/8, x2) + +inst_281: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 250*XLEN/8, x2) + +inst_282: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 251*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 252*XLEN/8, x2) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 253*XLEN/8, x2) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 254*XLEN/8, x2) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 0*XLEN/8, x2) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 1*XLEN/8, x2) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 2*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 3*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 4*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 5*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 6*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 7*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 8*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 9*XLEN/8, x2) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 10*XLEN/8, x2) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 11*XLEN/8, x2) + +inst_299: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 12*XLEN/8, x2) + +inst_300: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 13*XLEN/8, x2) + +inst_301: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 14*XLEN/8, x2) + +inst_302: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 15*XLEN/8, x2) + +inst_303: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 16*XLEN/8, x2) + +inst_304: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 17*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 18*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 19*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 20*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 21*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 22*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 23*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 24*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 25*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 26*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 27*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 28*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 29*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 30*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 31*XLEN/8, x2) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 32*XLEN/8, x2) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 33*XLEN/8, x2) + +inst_321: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 34*XLEN/8, x2) + +inst_322: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 35*XLEN/8, x2) + +inst_323: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 36*XLEN/8, x2) + +inst_324: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 37*XLEN/8, x2) + +inst_325: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 38*XLEN/8, x2) + +inst_326: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 39*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 40*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 41*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 42*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 43*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 44*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 45*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 46*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 47*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 48*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 49*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 50*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 51*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 52*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 53*XLEN/8, x2) + +inst_341: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 54*XLEN/8, x2) + +inst_342: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 55*XLEN/8, x2) + +inst_343: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 56*XLEN/8, x2) + +inst_344: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 57*XLEN/8, x2) + +inst_345: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 58*XLEN/8, x2) + +inst_346: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 59*XLEN/8, x2) + +inst_347: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 60*XLEN/8, x2) + +inst_348: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 61*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 62*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 63*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 64*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 65*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 66*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 67*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 68*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 69*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 70*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 71*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 72*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 73*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 74*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 75*XLEN/8, x2) + +inst_363: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 76*XLEN/8, x2) + +inst_364: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 77*XLEN/8, x2) + +inst_365: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 78*XLEN/8, x2) + +inst_366: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 79*XLEN/8, x2) + +inst_367: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 80*XLEN/8, x2) + +inst_368: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 81*XLEN/8, x2) + +inst_369: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 82*XLEN/8, x2) + +inst_370: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 83*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x3, x1, 84*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 85*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 86*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x5, x1, 87*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 88*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 89*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 90*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 91*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x2, x1, 92*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 93*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x0, x1, 94*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x4, x1, 95*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 96*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 97*XLEN/8, x2) + +inst_385: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 98*XLEN/8, x2) + +inst_386: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 99*XLEN/8, x2) + +inst_387: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 100*XLEN/8, x2) + +inst_388: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x6, x1, 101*XLEN/8, x2) + +inst_389: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 102*XLEN/8, x2) + +inst_390: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 103*XLEN/8, x2) + +inst_391: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 104*XLEN/8, x2) + +inst_392: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 105*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 106*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 107*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 108*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 109*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 110*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 111*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 112*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 113*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 114*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 115*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 116*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 117*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 118*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 119*XLEN/8, x2) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 120*XLEN/8, x2) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 121*XLEN/8, x2) + +inst_409: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 122*XLEN/8, x2) + +inst_410: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 123*XLEN/8, x2) + +inst_411: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 124*XLEN/8, x2) + +inst_412: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 125*XLEN/8, x2) + +inst_413: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 126*XLEN/8, x2) + +inst_414: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 127*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x3, x1, 128*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 129*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 130*XLEN/8, x2) + +inst_418: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x5, x1, 131*XLEN/8, x2) + +inst_419: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 132*XLEN/8, x2) + +inst_420: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 133*XLEN/8, x2) + +inst_421: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 134*XLEN/8, x2) + +inst_422: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 135*XLEN/8, x2) + +inst_423: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x2, x1, 136*XLEN/8, x2) + +inst_424: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 137*XLEN/8, x2) + +inst_425: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 138*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x3, x1, 139*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 140*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 141*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x5, x1, 142*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 143*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 144*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 145*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 146*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x2, x1, 147*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 148*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x0, x1, 149*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x4, x1, 150*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 151*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 152*XLEN/8, x2) + +inst_440: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 153*XLEN/8, x2) + +inst_441: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 154*XLEN/8, x2) + +inst_442: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 155*XLEN/8, x2) + +inst_443: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x6, x1, 156*XLEN/8, x2) + +inst_444: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 157*XLEN/8, x2) + +inst_445: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 158*XLEN/8, x2) + +inst_446: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 159*XLEN/8, x2) + +inst_447: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 160*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 161*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 162*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 163*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 164*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 165*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 166*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 167*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 168*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 169*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 170*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 171*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 172*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 173*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 174*XLEN/8, x2) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 175*XLEN/8, x2) + +inst_463: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 176*XLEN/8, x2) + +inst_464: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 177*XLEN/8, x2) + +inst_465: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 178*XLEN/8, x2) + +inst_466: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 179*XLEN/8, x2) + +inst_467: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 180*XLEN/8, x2) + +inst_468: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 181*XLEN/8, x2) + +inst_469: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 182*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 183*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 184*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 185*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 186*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 187*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 188*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 189*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 190*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 191*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 192*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 193*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 194*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 195*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 196*XLEN/8, x2) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 197*XLEN/8, x2) + +inst_485: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 198*XLEN/8, x2) + +inst_486: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 199*XLEN/8, x2) + +inst_487: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 200*XLEN/8, x2) + +inst_488: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 201*XLEN/8, x2) + +inst_489: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 202*XLEN/8, x2) + +inst_490: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 203*XLEN/8, x2) + +inst_491: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 204*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 205*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 206*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 207*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 208*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 209*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 210*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 211*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 212*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 213*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 214*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 215*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 216*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 217*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 218*XLEN/8, x2) + +inst_506: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 219*XLEN/8, x2) + +inst_507: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 220*XLEN/8, x2) + +inst_508: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 221*XLEN/8, x2) + +inst_509: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 222*XLEN/8, x2) + +inst_510: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 223*XLEN/8, x2) + +inst_511: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 224*XLEN/8, x2) + +inst_512: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 225*XLEN/8, x2) + +inst_513: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 226*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 227*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 228*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 229*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 230*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 231*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 232*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 233*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 234*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 235*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 236*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 237*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 238*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 239*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 240*XLEN/8, x2) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 241*XLEN/8, x2) + +inst_529: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 242*XLEN/8, x2) + +inst_530: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 243*XLEN/8, x2) + +inst_531: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 244*XLEN/8, x2) + +inst_532: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 245*XLEN/8, x2) + +inst_533: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 246*XLEN/8, x2) + +inst_534: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 247*XLEN/8, x2) + +inst_535: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 248*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 249*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 250*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 251*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 252*XLEN/8, x2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 253*XLEN/8, x2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 254*XLEN/8, x2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 0*XLEN/8, x2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 1*XLEN/8, x2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 2*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 3*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 4*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 5*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 6*XLEN/8, x2) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 7*XLEN/8, x2) + +inst_551: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 8*XLEN/8, x2) + +inst_552: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 9*XLEN/8, x2) + +inst_553: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 10*XLEN/8, x2) + +inst_554: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 11*XLEN/8, x2) + +inst_555: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 12*XLEN/8, x2) + +inst_556: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 13*XLEN/8, x2) + +inst_557: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 14*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x3, x1, 15*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 16*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 17*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x5, x1, 18*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 19*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 20*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 21*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 22*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x2, x1, 23*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 24*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x0, x1, 25*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x4, x1, 26*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 27*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 28*XLEN/8, x2) + +inst_572: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 29*XLEN/8, x2) + +inst_573: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 30*XLEN/8, x2) + +inst_574: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 31*XLEN/8, x2) + +inst_575: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x6, x1, 32*XLEN/8, x2) + +inst_576: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 33*XLEN/8, x2) + +inst_577: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 34*XLEN/8, x2) + +inst_578: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 35*XLEN/8, x2) + +inst_579: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 36*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 37*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 38*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 39*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 40*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 41*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 42*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 43*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 44*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 45*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 46*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 47*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 48*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 49*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 50*XLEN/8, x2) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 51*XLEN/8, x2) + +inst_595: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 52*XLEN/8, x2) + +inst_596: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 53*XLEN/8, x2) + +inst_597: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 54*XLEN/8, x2) + +inst_598: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 55*XLEN/8, x2) + +inst_599: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 56*XLEN/8, x2) + +inst_600: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 57*XLEN/8, x2) + +inst_601: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 58*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 59*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 60*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 61*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 62*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 63*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 64*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 65*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 66*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 67*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 68*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 69*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 70*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 71*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 72*XLEN/8, x2) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 73*XLEN/8, x2) + +inst_617: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 74*XLEN/8, x2) + +inst_618: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 75*XLEN/8, x2) + +inst_619: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 76*XLEN/8, x2) + +inst_620: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 77*XLEN/8, x2) + +inst_621: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 78*XLEN/8, x2) + +inst_622: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 79*XLEN/8, x2) + +inst_623: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 80*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 81*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 82*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 83*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 84*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 85*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 86*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 87*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 88*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 89*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 90*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 91*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 92*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 93*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 94*XLEN/8, x2) + +inst_638: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 95*XLEN/8, x2) + +inst_639: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 96*XLEN/8, x2) + +inst_640: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 97*XLEN/8, x2) + +inst_641: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 98*XLEN/8, x2) + +inst_642: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 99*XLEN/8, x2) + +inst_643: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 100*XLEN/8, x2) + +inst_644: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 101*XLEN/8, x2) + +inst_645: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 102*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 103*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 104*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 105*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 106*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 107*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 108*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 109*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 110*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 111*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 112*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 113*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 114*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 115*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 116*XLEN/8, x2) + +inst_660: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 117*XLEN/8, x2) + +inst_661: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 118*XLEN/8, x2) + +inst_662: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 119*XLEN/8, x2) + +inst_663: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 120*XLEN/8, x2) + +inst_664: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 121*XLEN/8, x2) + +inst_665: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 122*XLEN/8, x2) + +inst_666: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 123*XLEN/8, x2) + +inst_667: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 124*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 125*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x0, x1, 126*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x4, x1, 127*XLEN/8, x2) + +inst_671: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 128*XLEN/8, x2) + +inst_672: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 129*XLEN/8, x2) + +inst_673: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 130*XLEN/8, x2) + +inst_674: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 131*XLEN/8, x2) + +inst_675: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 132*XLEN/8, x2) + +inst_676: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x6, x1, 133*XLEN/8, x2) + +inst_677: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 134*XLEN/8, x2) + +inst_678: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 135*XLEN/8, x2) + +inst_679: +// rs1_val == (-2**(xlen-1)), rs1_val == -9223372036854775808 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:-0xa +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x8000000000000000, -0xa, x1, 136*XLEN/8, x2) + +inst_680: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs1_val == 9223372036854775807 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:0xb504f333 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x7fffffffffffffff, 0xb504f333, x1, 137*XLEN/8, x2) + +inst_681: +// rs2_val == -257, rs1_val == -16777217 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x101 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, -0x1000001, -0x101, x1, 138*XLEN/8, x2) + +inst_682: +// rs2_val == -32769, rs1_val == 137438953472 +// opcode: mop.rr.2 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.2, x31, x30, x29, 0, 0x2000000000, -0x8001, x1, 139*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_x18_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x18_1: + .fill 17*((XLEN/8)/4),4,0xdeadbeef + + +signature_x4_0: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 140*((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/Zimop/src/mop.rr.3-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.3-01.S new file mode 100644 index 000000000..ffb4049ed --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.3-01.S @@ -0,0 +1,3487 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.3 instruction of the RISC-V RV64Zimop extension for the mop.rr.3 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.3) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd != rs2, rs1==x13, rs2==x8, rd==x13, rs1_val != rs2_val, rs1_val < 0 and rs2_val < 0, rs1_val == -17, rs2_val == -16777217 +// opcode: mop.rr.3 ; op1:x13; op2:x8; dest:x13; op1val:-0x11; op2val:-0x1000001 +TEST_RR_OP(mop.rr.3, x13, x13, x8, 0, -0x11, -0x1000001, x6, 0*XLEN/8, x7) + +inst_1: +// rs2 == rd != rs1, rs1==x3, rs2==x17, rd==x17, rs1_val < 0 and rs2_val > 0, rs1_val == -524289 +// opcode: mop.rr.3 ; op1:x3; op2:x17; dest:x17; op1val:-0x80001; op2val:0x5 +TEST_RR_OP(mop.rr.3, x17, x3, x17, 0, -0x80001, 0x5, x6, 1*XLEN/8, x7) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x2, rs2==x25, rd==x14, rs1_val == (-2**(xlen-1)), rs1_val == -9223372036854775808, rs2_val == 65536 +// opcode: mop.rr.3 ; op1:x2; op2:x25; dest:x14; op1val:-0x8000000000000000; op2val:0x10000 +TEST_RR_OP(mop.rr.3, x14, x2, x25, 0, -0x8000000000000000, 0x10000, x6, 2*XLEN/8, x7) + +inst_3: +// rs1 == rs2 != rd, rs1==x31, rs2==x31, rd==x3, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs2_val == -274877906945, rs1_val == 9223372036854775807 +// opcode: mop.rr.3 ; op1:x31; op2:x31; dest:x3; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.3, x3, x31, x31, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x6, 3*XLEN/8, x7) + +inst_4: +// rs1 == rs2 == rd, rs1==x4, rs2==x4, rd==x4, rs1_val == 0, rs2_val == -5 +// opcode: mop.rr.3 ; op1:x4; op2:x4; dest:x4; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.3, x4, x4, x4, 0, 0x0, 0x0, x6, 4*XLEN/8, x7) + +inst_5: +// rs1==x27, rs2==x5, rd==x9, rs1_val == 1, +// opcode: mop.rr.3 ; op1:x27; op2:x5; dest:x9; op1val:0x1; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x9, x27, x5, 0, 0x1, -0xb504f333, x6, 5*XLEN/8, x7) + +inst_6: +// rs1==x29, rs2==x26, rd==x27, rs2_val == -2, rs1_val == 8192 +// opcode: mop.rr.3 ; op1:x29; op2:x26; dest:x27; op1val:0x2000; op2val:-0x2 +TEST_RR_OP(mop.rr.3, x27, x29, x26, 0, 0x2000, -0x2, x6, 6*XLEN/8, x7) + +inst_7: +// rs1==x1, rs2==x29, rd==x28, rs2_val == -3, +// opcode: mop.rr.3 ; op1:x1; op2:x29; dest:x28; op1val:-0xb504f332; op2val:-0x3 +TEST_RR_OP(mop.rr.3, x28, x1, x29, 0, -0xb504f332, -0x3, x6, 7*XLEN/8, x7) + +inst_8: +// rs1==x28, rs2==x12, rd==x23, rs2_val == -9, rs1_val == -137438953473 +// opcode: mop.rr.3 ; op1:x28; op2:x12; dest:x23; op1val:-0x2000000001; op2val:-0x9 +TEST_RR_OP(mop.rr.3, x23, x28, x12, 0, -0x2000000001, -0x9, x6, 8*XLEN/8, x7) + +inst_9: +// rs1==x10, rs2==x24, rd==x18, rs2_val == -17, +// opcode: mop.rr.3 ; op1:x10; op2:x24; dest:x18; op1val:-0x2000000001; op2val:-0x11 +TEST_RR_OP(mop.rr.3, x18, x10, x24, 0, -0x2000000001, -0x11, x6, 9*XLEN/8, x7) + +inst_10: +// rs1==x30, rs2==x21, rd==x1, rs2_val == -33, +// opcode: mop.rr.3 ; op1:x30; op2:x21; dest:x1; op1val:0x9; op2val:-0x21 +TEST_RR_OP(mop.rr.3, x1, x30, x21, 0, 0x9, -0x21, x6, 10*XLEN/8, x7) + +inst_11: +// rs1==x17, rs2==x9, rd==x21, rs2_val == -65, +// opcode: mop.rr.3 ; op1:x17; op2:x9; dest:x21; op1val:-0xb504f332; op2val:-0x41 +TEST_RR_OP(mop.rr.3, x21, x17, x9, 0, -0xb504f332, -0x41, x6, 11*XLEN/8, x7) + +inst_12: +// rs1==x8, rs2==x3, rd==x29, rs2_val == -129, rs1_val == 16777216 +// opcode: mop.rr.3 ; op1:x8; op2:x3; dest:x29; op1val:0x1000000; op2val:-0x81 +TEST_RR_OP(mop.rr.3, x29, x8, x3, 0, 0x1000000, -0x81, x6, 12*XLEN/8, x7) + +inst_13: +// rs1==x25, rs2==x18, rd==x0, rs2_val == -257, rs1_val == -131073 +// opcode: mop.rr.3 ; op1:x25; op2:x18; dest:x0; op1val:-0x20001; op2val:-0x101 +TEST_RR_OP(mop.rr.3, x0, x25, x18, 0, -0x20001, -0x101, x6, 13*XLEN/8, x7) + +inst_14: +// rs1==x24, rs2==x16, rd==x8, rs2_val == -513, rs1_val == -549755813889 +// opcode: mop.rr.3 ; op1:x24; op2:x16; dest:x8; op1val:-0x8000000001; op2val:-0x201 +TEST_RR_OP(mop.rr.3, x8, x24, x16, 0, -0x8000000001, -0x201, x6, 14*XLEN/8, x7) + +inst_15: +// rs1==x23, rs2==x19, rd==x11, rs2_val == -1025, rs1_val == 8 +// opcode: mop.rr.3 ; op1:x23; op2:x19; dest:x11; op1val:0x8; op2val:-0x401 +TEST_RR_OP(mop.rr.3, x11, x23, x19, 0, 0x8, -0x401, x6, 15*XLEN/8, x7) +RVTEST_SIGBASE(x3,signature_x3_0) + +inst_16: +// rs1==x9, rs2==x0, rd==x31, rs2_val == -2049, +// opcode: mop.rr.3 ; op1:x9; op2:x0; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x9, x0, 0, 0x3333333333333332, 0x0, x3, 0*XLEN/8, x4) + +inst_17: +// rs1==x26, rs2==x6, rd==x2, rs2_val == -4097, rs1_val == -576460752303423489 +// opcode: mop.rr.3 ; op1:x26; op2:x6; dest:x2; op1val:-0x800000000000001; op2val:-0x1001 +TEST_RR_OP(mop.rr.3, x2, x26, x6, 0, -0x800000000000001, -0x1001, x3, 1*XLEN/8, x4) + +inst_18: +// rs1==x18, rs2==x14, rd==x5, rs2_val == -8193, rs1_val == -6148914691236517206 +// opcode: mop.rr.3 ; op1:x18; op2:x14; dest:x5; op1val:-0x5555555555555556; op2val:-0x2001 +TEST_RR_OP(mop.rr.3, x5, x18, x14, 0, -0x5555555555555556, -0x2001, x3, 2*XLEN/8, x4) + +inst_19: +// rs1==x16, rs2==x2, rd==x30, rs2_val == -16385, rs1_val == 4611686018427387904 +// opcode: mop.rr.3 ; op1:x16; op2:x2; dest:x30; op1val:0x4000000000000000; op2val:-0x4001 +TEST_RR_OP(mop.rr.3, x30, x16, x2, 0, 0x4000000000000000, -0x4001, x3, 3*XLEN/8, x4) + +inst_20: +// rs1==x14, rs2==x10, rd==x15, rs2_val == -32769, +// opcode: mop.rr.3 ; op1:x14; op2:x10; dest:x15; op1val:-0x8; op2val:-0x8001 +TEST_RR_OP(mop.rr.3, x15, x14, x10, 0, -0x8, -0x8001, x3, 4*XLEN/8, x4) + +inst_21: +// rs1==x0, rs2==x27, rd==x20, rs2_val == -65537, +// opcode: mop.rr.3 ; op1:x0; op2:x27; dest:x20; op1val:0x0; op2val:-0x10001 +TEST_RR_OP(mop.rr.3, x20, x0, x27, 0, 0x0, -0x10001, x3, 5*XLEN/8, x4) + +inst_22: +// rs1==x12, rs2==x23, rd==x6, rs2_val == -131073, rs1_val == 35184372088832 +// opcode: mop.rr.3 ; op1:x12; op2:x23; dest:x6; op1val:0x200000000000; op2val:-0x20001 +TEST_RR_OP(mop.rr.3, x6, x12, x23, 0, 0x200000000000, -0x20001, x3, 6*XLEN/8, x4) + +inst_23: +// rs1==x7, rs2==x28, rd==x16, rs2_val == -262145, rs1_val == -32769 +// opcode: mop.rr.3 ; op1:x7; op2:x28; dest:x16; op1val:-0x8001; op2val:-0x40001 +TEST_RR_OP(mop.rr.3, x16, x7, x28, 0, -0x8001, -0x40001, x3, 7*XLEN/8, x4) + +inst_24: +// rs1==x20, rs2==x7, rd==x22, rs2_val == -524289, rs1_val == 2 +// opcode: mop.rr.3 ; op1:x20; op2:x7; dest:x22; op1val:0x2; op2val:-0x80001 +TEST_RR_OP(mop.rr.3, x22, x20, x7, 0, 0x2, -0x80001, x3, 8*XLEN/8, x4) + +inst_25: +// rs1==x22, rs2==x1, rd==x12, rs2_val == -1048577, +// opcode: mop.rr.3 ; op1:x22; op2:x1; dest:x12; op1val:0x6; op2val:-0x100001 +TEST_RR_OP(mop.rr.3, x12, x22, x1, 0, 0x6, -0x100001, x3, 9*XLEN/8, x4) + +inst_26: +// rs1==x21, rs2==x15, rd==x26, rs2_val == -2097153, rs1_val == 36028797018963968 +// opcode: mop.rr.3 ; op1:x21; op2:x15; dest:x26; op1val:0x80000000000000; op2val:-0x200001 +TEST_RR_OP(mop.rr.3, x26, x21, x15, 0, 0x80000000000000, -0x200001, x3, 10*XLEN/8, x4) + +inst_27: +// rs1==x19, rs2==x11, rd==x7, rs2_val == -4194305, +// opcode: mop.rr.3 ; op1:x19; op2:x11; dest:x7; op1val:-0x8000000001; op2val:-0x400001 +TEST_RR_OP(mop.rr.3, x7, x19, x11, 0, -0x8000000001, -0x400001, x3, 11*XLEN/8, x4) + +inst_28: +// rs1==x11, rs2==x30, rd==x24, rs2_val == -8388609, rs1_val == -129 +// opcode: mop.rr.3 ; op1:x11; op2:x30; dest:x24; op1val:-0x81; op2val:-0x800001 +TEST_RR_OP(mop.rr.3, x24, x11, x30, 0, -0x81, -0x800001, x3, 12*XLEN/8, x4) + +inst_29: +// rs1==x6, rs2==x22, rd==x19, rs2_val == -33554433, rs1_val == -1073741825 +// opcode: mop.rr.3 ; op1:x6; op2:x22; dest:x19; op1val:-0x40000001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.3, x19, x6, x22, 0, -0x40000001, -0x2000001, x3, 13*XLEN/8, x4) + +inst_30: +// rs1==x15, rs2==x20, rd==x25, rs2_val == -67108865, rs1_val == 64 +// opcode: mop.rr.3 ; op1:x15; op2:x20; dest:x25; op1val:0x40; op2val:-0x4000001 +TEST_RR_OP(mop.rr.3, x25, x15, x20, 0, 0x40, -0x4000001, x3, 14*XLEN/8, x4) + +inst_31: +// rs1==x5, rs2==x13, rd==x10, rs2_val == -134217729, rs1_val == 128 +// opcode: mop.rr.3 ; op1:x5; op2:x13; dest:x10; op1val:0x80; op2val:-0x8000001 +TEST_RR_OP(mop.rr.3, x10, x5, x13, 0, 0x80, -0x8000001, x3, 15*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_32: +// rs2_val == -268435457, rs1_val == 576460752303423488 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000000000000, -0x10000001, x1, 0*XLEN/8, x2) + +inst_33: +// rs2_val == -536870913, rs1_val == -1099511627777 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:-0x20000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10000000001, -0x20000001, x1, 1*XLEN/8, x2) + +inst_34: +// rs2_val == -1073741825, rs1_val == 6148914691236517205 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x40000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, -0x40000001, x1, 2*XLEN/8, x2) + +inst_35: +// rs2_val == -2147483649, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x80000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, -0x80000001, x1, 3*XLEN/8, x2) + +inst_36: +// rs2_val == -4294967297, rs1_val == -2147483649 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x80000001, -0x100000001, x1, 4*XLEN/8, x2) + +inst_37: +// rs2_val == -8589934593, rs1_val == -8388609 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x200000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x800001, -0x200000001, x1, 5*XLEN/8, x2) + +inst_38: +// rs2_val == -17179869185, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x400000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, -0x400000001, x1, 6*XLEN/8, x2) + +inst_39: +// rs2_val == -34359738369, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x800000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, -0x800000001, x1, 7*XLEN/8, x2) + +inst_40: +// rs2_val == -68719476737, rs1_val == -2305843009213693953 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000000000000001, -0x1000000001, x1, 8*XLEN/8, x2) + +inst_41: +// rs2_val == -137438953473, rs1_val == 33554432 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000000, -0x2000000001, x1, 9*XLEN/8, x2) + +inst_42: +// rs2_val == -549755813889, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, -0x8000000001, x1, 10*XLEN/8, x2) + +inst_43: +// rs2_val == -1099511627777, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4000000000000000, -0x10000000001, x1, 11*XLEN/8, x2) + +inst_44: +// rs2_val == -2199023255553, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20001, -0x20000000001, x1, 12*XLEN/8, x2) + +inst_45: +// rs2_val == -4398046511105, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, -0x40000000001, x1, 13*XLEN/8, x2) + +inst_46: +// rs2_val == -8796093022209, rs1_val == 16 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10, -0x80000000001, x1, 14*XLEN/8, x2) + +inst_47: +// rs2_val == -17592186044417, rs1_val == 536870912 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000000, -0x100000000001, x1, 15*XLEN/8, x2) + +inst_48: +// rs2_val == -35184372088833, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, -0x200000000001, x1, 16*XLEN/8, x2) + +inst_49: +// rs2_val == -70368744177665, rs1_val == -9 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x9, -0x400000000001, x1, 17*XLEN/8, x2) + +inst_50: +// rs2_val == -140737488355329, rs1_val == -65 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x41, -0x800000000001, x1, 18*XLEN/8, x2) + +inst_51: +// rs2_val == -281474976710657, rs1_val == -4294967297 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x100000001, -0x1000000000001, x1, 19*XLEN/8, x2) + +inst_52: +// rs2_val == -562949953421313, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8, -0x2000000000001, x1, 20*XLEN/8, x2) + +inst_53: +// rs2_val == -1125899906842625, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80, -0x4000000000001, x1, 21*XLEN/8, x2) + +inst_54: +// rs2_val == -2251799813685249, rs1_val == 8796093022208 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80000000000, -0x8000000000001, x1, 22*XLEN/8, x2) + +inst_55: +// rs2_val == -4503599627370497, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, -0x10000000000001, x1, 23*XLEN/8, x2) + +inst_56: +// rs2_val == -9007199254740993, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0x20000000000001, x1, 24*XLEN/8, x2) + +inst_57: +// rs2_val == -18014398509481985, rs1_val == -9007199254740993 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000000000001, -0x40000000000001, x1, 25*XLEN/8, x2) + +inst_58: +// rs2_val == -36028797018963969, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000, -0x80000000000001, x1, 26*XLEN/8, x2) + +inst_59: +// rs2_val == -72057594037927937, rs1_val == -5 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5, -0x100000000000001, x1, 27*XLEN/8, x2) + +inst_60: +// rs2_val == -144115188075855873, rs1_val == 524288 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80000, -0x200000000000001, x1, 28*XLEN/8, x2) + +inst_61: +// rs2_val == -288230376151711745, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x7, -0x400000000000001, x1, 29*XLEN/8, x2) + +inst_62: +// rs2_val == -576460752303423489, rs1_val == 1024 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400, -0x800000000000001, x1, 30*XLEN/8, x2) + +inst_63: +// rs2_val == -1152921504606846977, rs1_val == 4 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0x1000000000000001, x1, 31*XLEN/8, x2) + +inst_64: +// rs2_val == -2305843009213693953, rs1_val == 18014398509481984 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000000000000, -0x2000000000000001, x1, 32*XLEN/8, x2) + +inst_65: +// rs2_val == -4611686018427387905, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0x4000000000000001, x1, 33*XLEN/8, x2) + +inst_66: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1), rs1_val == -65537 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10001, 0x7fffffffffffffff, x1, 34*XLEN/8, x2) + +inst_67: +// rs1_val == -2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2, -0x4, x1, 35*XLEN/8, x2) + +inst_68: +// rs1_val == -3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x3, -0x10000000000001, x1, 36*XLEN/8, x2) + +inst_69: +// rs1_val == -33, rs2_val == 288230376151711744 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x21, 0x400000000000000, x1, 37*XLEN/8, x2) + +inst_70: +// rs1_val == -257, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:-0x200000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x101, -0x200000001, x1, 38*XLEN/8, x2) + +inst_71: +// rs1_val == -513, rs2_val == 4 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x201, 0x4, x1, 39*XLEN/8, x2) + +inst_72: +// rs1_val == -1025, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x401, 0xb504f334, x1, 40*XLEN/8, x2) + +inst_73: +// rs1_val == -2049, rs2_val == 8388608 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x800000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x801, 0x800000, x1, 41*XLEN/8, x2) + +inst_74: +// rs1_val == -4097, rs2_val == 1125899906842624 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1001, 0x4000000000000, x1, 42*XLEN/8, x2) + +inst_75: +// rs1_val == -8193, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2001, -0x5555555555555555, x1, 43*XLEN/8, x2) + +inst_76: +// rs1_val == -16385, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4001, -0x5, x1, 44*XLEN/8, x2) + +inst_77: +// rs1_val == -262145, rs2_val == 1024 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x400 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x40001, 0x400, x1, 45*XLEN/8, x2) + +inst_78: +// rs1_val == -1048577, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x100001, -0x10000000001, x1, 46*XLEN/8, x2) + +inst_79: +// rs1_val == -2097153, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x200001, 0x4000000000000, x1, 47*XLEN/8, x2) + +inst_80: +// rs1_val == -4194305, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x400001, 0x3333333333333334, x1, 48*XLEN/8, x2) + +inst_81: +// rs1_val == -16777217, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x21 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1000001, -0x21, x1, 49*XLEN/8, x2) + +inst_82: +// rs1_val == -33554433, rs2_val == 4611686018427387904 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000001, 0x4000000000000000, x1, 50*XLEN/8, x2) + +inst_83: +// rs1_val == -67108865, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:-0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4000001, -0x6, x1, 51*XLEN/8, x2) + +inst_84: +// rs1_val == -134217729, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8000001, -0x20001, x1, 52*XLEN/8, x2) + +inst_85: +// rs1_val == -268435457, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10000001, -0x400000000000001, x1, 53*XLEN/8, x2) + +inst_86: +// rs1_val == -536870913, rs2_val == 64 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x40 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000001, 0x40, x1, 54*XLEN/8, x2) + +inst_87: +// rs1_val == -8589934593, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:-0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x200000001, -0x4, x1, 55*XLEN/8, x2) + +inst_88: +// rs1_val == -17179869185, rs2_val == 4398046511104 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:0x40000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x400000001, 0x40000000000, x1, 56*XLEN/8, x2) + +inst_89: +// rs1_val == -34359738369, rs2_val == 4096 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:0x1000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x800000001, 0x1000, x1, 57*XLEN/8, x2) + +inst_90: +// rs1_val == -68719476737, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1000000001, -0x2000001, x1, 58*XLEN/8, x2) + +inst_91: +// rs1_val == -274877906945, rs2_val == 2097152 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x200000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4000000001, 0x200000, x1, 59*XLEN/8, x2) + +inst_92: +// rs1_val == -2199023255553, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000000001, -0x4000000000000001, x1, 60*XLEN/8, x2) + +inst_93: +// rs1_val == -4398046511105, rs2_val == 2 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x40000000001, 0x2, x1, 61*XLEN/8, x2) + +inst_94: +// rs1_val == -8796093022209, rs1_val == rs2_val +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x80000000001, -0x80000000001, x1, 62*XLEN/8, x2) + +inst_95: +// rs1_val == -17592186044417, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:-0x200001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x100000000001, -0x200001, x1, 63*XLEN/8, x2) + +inst_96: +// rs1_val == -35184372088833, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x200000000001, -0x8000000000001, x1, 64*XLEN/8, x2) + +inst_97: +// rs1_val == -70368744177665, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:0x40000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x400000000001, 0x40000000000, x1, 65*XLEN/8, x2) + +inst_98: +// rs1_val == -140737488355329, rs2_val == 70368744177664 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x800000000001, 0x400000000000, x1, 66*XLEN/8, x2) + +inst_99: +// rs1_val == -281474976710657, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1000000000001, -0x1000000000000001, x1, 67*XLEN/8, x2) + +inst_100: +// rs1_val == -562949953421313, rs2_val == 17592186044416 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x100000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000000000001, 0x100000000000, x1, 68*XLEN/8, x2) + +inst_101: +// rs1_val == -1125899906842625, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4000000000001, -0x1000000001, x1, 69*XLEN/8, x2) + +inst_102: +// rs1_val == -2251799813685249, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8000000000001, -0x5555555555555555, x1, 70*XLEN/8, x2) + +inst_103: +// rs1_val == -4503599627370497, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10000000000001, -0x100000000000001, x1, 71*XLEN/8, x2) + +inst_104: +// rs1_val == -18014398509481985, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x40000000000001, 0x6, x1, 72*XLEN/8, x2) + +inst_105: +// rs1_val == -36028797018963969, rs2_val == 4503599627370496 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x80000000000001, 0x10000000000000, x1, 73*XLEN/8, x2) + +inst_106: +// rs1_val == -72057594037927937, rs2_val == 1099511627776 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:0x10000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x100000000000001, 0x10000000000, x1, 74*XLEN/8, x2) + +inst_107: +// rs1_val == -144115188075855873, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x200000000000001, -0x400000000000001, x1, 75*XLEN/8, x2) + +inst_108: +// rs1_val == -288230376151711745, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:-0x20000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x400000000000001, -0x20000001, x1, 76*XLEN/8, x2) + +inst_109: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x1000000000000001, 0x400000000000, x1, 77*XLEN/8, x2) + +inst_110: +// rs1_val == -4611686018427387905, rs2_val == 131072 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:0x20000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x4000000000000001, 0x20000, x1, 78*XLEN/8, x2) + +inst_111: +// rs2_val == 1, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x1 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000001, 0x1, x1, 79*XLEN/8, x2) + +inst_112: +// rs2_val == 8, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x8 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000001, 0x8, x1, 80*XLEN/8, x2) + +inst_113: +// rs2_val == 16, rs1_val > 0 and rs2_val > 0, rs1_val == 4398046511104 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:0x10 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000000000, 0x10, x1, 81*XLEN/8, x2) + +inst_114: +// rs2_val == 32, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x20 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000000000001, 0x20, x1, 82*XLEN/8, x2) + +inst_115: +// rs2_val == 128, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x80 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x9, 0x80, x1, 83*XLEN/8, x2) + +inst_116: +// rs2_val == 256, rs1_val == 9007199254740992 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:0x100 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000000000000, 0x100, x1, 84*XLEN/8, x2) + +inst_117: +// rs2_val == 512, rs1_val == 288230376151711744 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:0x200 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400000000000000, 0x200, x1, 85*XLEN/8, x2) + +inst_118: +// rs2_val == 2048, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x800 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000000, 0x800, x1, 86*XLEN/8, x2) + +inst_119: +// rs2_val == 8192, rs1_val == 67108864 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x2000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4000000, 0x2000, x1, 87*XLEN/8, x2) + +inst_120: +// rs2_val == 16384, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:0x4000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000000000, 0x4000, x1, 88*XLEN/8, x2) + +inst_121: +// rs2_val == 32768, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x8000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x8000, x1, 89*XLEN/8, x2) + +inst_122: +// rs2_val == 262144, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:0x40000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000000000000, 0x40000, x1, 90*XLEN/8, x2) + +inst_123: +// rs2_val == 524288, rs1_val == 34359738368 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:0x80000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000000, 0x80000, x1, 91*XLEN/8, x2) + +inst_124: +// rs2_val == 1048576, rs1_val == 512 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x100000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x200, 0x100000, x1, 92*XLEN/8, x2) + +inst_125: +// rs2_val == 4194304, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x400000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000000, 0x400000, x1, 93*XLEN/8, x2) + +inst_126: +// rs2_val == 16777216, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:0x1000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000000000000, 0x1000000, x1, 94*XLEN/8, x2) + +inst_127: +// rs2_val == 33554432, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:0x2000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400000000000000, 0x2000000, x1, 95*XLEN/8, x2) + +inst_128: +// rs2_val == 67108864, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x4000000, x1, 96*XLEN/8, x2) + +inst_129: +// rs2_val == 134217728, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x8000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x8000000, x1, 97*XLEN/8, x2) + +inst_130: +// rs2_val == 268435456, rs1_val == 549755813888 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000000000, 0x10000000, x1, 98*XLEN/8, x2) + +inst_131: +// rs2_val == 536870912, rs1_val == 562949953421312 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000000000000, 0x20000000, x1, 99*XLEN/8, x2) + +inst_132: +// rs2_val == 1073741824, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x40000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x40000000, x1, 100*XLEN/8, x2) + +inst_133: +// rs2_val == 2147483648, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x80000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x801, 0x80000000, x1, 101*XLEN/8, x2) + +inst_134: +// rs2_val == 4294967296, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x7; op2val:0x100000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x7, 0x100000000, x1, 102*XLEN/8, x2) + +inst_135: +// rs2_val == 8589934592, rs1_val == 2199023255552 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:0x200000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000000000, 0x200000000, x1, 103*XLEN/8, x2) + +inst_136: +// rs2_val == 17179869184, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x400000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80, 0x400000000, x1, 104*XLEN/8, x2) + +inst_137: +// rs2_val == 34359738368, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x800000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x800000000, x1, 105*XLEN/8, x2) + +inst_138: +// rs2_val == 68719476736, rs1_val == 1152921504606846976 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:0x1000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000000000000000, 0x1000000000, x1, 106*XLEN/8, x2) + +inst_139: +// rs2_val == 137438953472, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000000000, 0x2000000000, x1, 107*XLEN/8, x2) + +inst_140: +// rs2_val == 274877906944, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:0x4000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x3, 0x4000000000, x1, 108*XLEN/8, x2) + +inst_141: +// rs2_val == 549755813888, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:0x8000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x400000001, 0x8000000000, x1, 109*XLEN/8, x2) + +inst_142: +// rs2_val == 2199023255552, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x20000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2001, 0x20000000000, x1, 110*XLEN/8, x2) + +inst_143: +// rs2_val == 8796093022208, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x80000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10, 0x80000000000, x1, 111*XLEN/8, x2) + +inst_144: +// rs2_val == 35184372088832, rs1_val == 256 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x200000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100, 0x200000000000, x1, 112*XLEN/8, x2) + +inst_145: +// rs2_val == 140737488355328, rs1_val == 2097152 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x800000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x200000, 0x800000000000, x1, 113*XLEN/8, x2) + +inst_146: +// rs2_val == 281474976710656, rs1_val == 16384 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4000, 0x1000000000000, x1, 114*XLEN/8, x2) + +inst_147: +// rs2_val == 562949953421312, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x2000000000001, 0x2000000000000, x1, 115*XLEN/8, x2) + +inst_148: +// rs2_val == 2251799813685248, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10000000001, 0x8000000000000, x1, 116*XLEN/8, x2) + +inst_149: +// rs2_val == 9007199254740992, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x10001, 0x20000000000000, x1, 117*XLEN/8, x2) + +inst_150: +// rs2_val == 18014398509481984, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8000000001, 0x40000000000000, x1, 118*XLEN/8, x2) + +inst_151: +// rs2_val == 36028797018963968, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x200001, 0x80000000000000, x1, 119*XLEN/8, x2) + +inst_152: +// rs2_val == 72057594037927936, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x100000000000000, x1, 120*XLEN/8, x2) + +inst_153: +// rs2_val == 144115188075855872, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x401, 0x200000000000000, x1, 121*XLEN/8, x2) + +inst_154: +// rs2_val == 576460752303423488, rs1_val == 281474976710656 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000000000000, 0x800000000000000, x1, 122*XLEN/8, x2) + +inst_155: +// rs2_val == 1152921504606846976, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20000000000001, 0x1000000000000000, x1, 123*XLEN/8, x2) + +inst_156: +// rs2_val == 2305843009213693952, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000000000000, 0x2000000000000000, x1, 124*XLEN/8, x2) + +inst_157: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0x8000000000000000, x1, 125*XLEN/8, x2) + +inst_158: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x3, x1, 126*XLEN/8, x2) + +inst_159: +// rs1_val == 32, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20, 0x1000000000000, x1, 127*XLEN/8, x2) + +inst_160: +// rs1_val == 2048, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x20000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800, 0x20000000000, x1, 128*XLEN/8, x2) + +inst_161: +// rs1_val == 4096, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0x800001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000, -0x800001, x1, 129*XLEN/8, x2) + +inst_162: +// rs1_val == 32768, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000, -0x100000000000001, x1, 130*XLEN/8, x2) + +inst_163: +// rs1_val == 65536, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x8 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10000, 0x8, x1, 131*XLEN/8, x2) + +inst_164: +// rs1_val == 131072, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x4000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x20000, 0x4000000000, x1, 132*XLEN/8, x2) + +inst_165: +// rs1_val == 262144, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000, -0x2000000001, x1, 133*XLEN/8, x2) + +inst_166: +// rs1_val == 1048576, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100000, 0x3333333333333332, x1, 134*XLEN/8, x2) + +inst_167: +// rs1_val == 4194304, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400000, 0xb504f334, x1, 135*XLEN/8, x2) + +inst_168: +// rs1_val == 8388608, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x40001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000, -0x40001, x1, 136*XLEN/8, x2) + +inst_169: +// rs1_val == 134217728, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000000, -0x400000000000001, x1, 137*XLEN/8, x2) + +inst_170: +// rs1_val == 268435456, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:0x80 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10000000, 0x80, x1, 138*XLEN/8, x2) + +inst_171: +// rs1_val == 1073741824, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x40001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x40000000, -0x40001, x1, 139*XLEN/8, x2) + +inst_172: +// rs1_val == 2147483648, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x80000000, 0x7fffffffffffffff, x1, 140*XLEN/8, x2) + +inst_173: +// rs1_val == 4294967296, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100000000, -0x200000000001, x1, 141*XLEN/8, x2) + +inst_174: +// rs1_val == 8589934592, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x200000000, -0x400001, x1, 142*XLEN/8, x2) + +inst_175: +// rs1_val == 17179869184, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400000000, 0x5555555555555554, x1, 143*XLEN/8, x2) + +inst_176: +// rs1_val == 68719476736, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:0x800000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x1000000000, 0x800000, x1, 144*XLEN/8, x2) + +inst_177: +// rs1_val == 137438953472, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:0x800000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000000000, 0x800000, x1, 145*XLEN/8, x2) + +inst_178: +// rs1_val == 274877906944, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4000000000, 0x3333333333333334, x1, 146*XLEN/8, x2) + +inst_179: +// rs1_val == 1099511627776, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10000000000, -0x10000000000001, x1, 147*XLEN/8, x2) + +inst_180: +// rs1_val == 17592186044416, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:-0x80001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100000000000, -0x80001, x1, 148*XLEN/8, x2) + +inst_181: +// rs1_val == 70368744177664, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000; op2val:0x200000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x400000000000, 0x200000000, x1, 149*XLEN/8, x2) + +inst_182: +// rs1_val == 140737488355328, rs2_val == 0 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x800000000000, 0x0, x1, 150*XLEN/8, x2) + +inst_183: +// rs1_val == 1125899906842624, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:0x1000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4000000000000, 0x1000, x1, 151*XLEN/8, x2) + +inst_184: +// rs1_val == 2251799813685248, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:-0x8000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x8000000000000, -0x8000001, x1, 152*XLEN/8, x2) + +inst_185: +// rs1_val == 4503599627370496, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000000; op2val:0x80 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x10000000000000, 0x80, x1, 153*XLEN/8, x2) + +inst_186: +// rs1_val == 72057594037927936, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x100000000000000, 0xb504f332, x1, 154*XLEN/8, x2) + +inst_187: +// rs1_val == 144115188075855872, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:-0x80001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x200000000000000, -0x80001, x1, 155*XLEN/8, x2) + +inst_188: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2000000000000000, 0x40000000000000, x1, 156*XLEN/8, x2) + +inst_189: +// rs1_val==3 and rs2_val==6148914691236517205, rs2_val == 6148914691236517205 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 157*XLEN/8, x2) + +inst_190: +// rs1_val==3 and rs2_val==-6148914691236517206, rs2_val == -6148914691236517206 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 158*XLEN/8, x2) + +inst_191: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x5, x1, 159*XLEN/8, x2) + +inst_192: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 160*XLEN/8, x2) + +inst_193: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 161*XLEN/8, x2) + +inst_194: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 162*XLEN/8, x2) + +inst_195: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 163*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x2, x1, 164*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 165*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x0, x1, 166*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x4, x1, 167*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 168*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 169*XLEN/8, x2) + +inst_202: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 170*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 171*XLEN/8, x2) + +inst_204: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 172*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x6, x1, 173*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 174*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 175*XLEN/8, x2) + +inst_208: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 176*XLEN/8, x2) + +inst_209: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 177*XLEN/8, x2) + +inst_210: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 178*XLEN/8, x2) + +inst_211: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 179*XLEN/8, x2) + +inst_212: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 180*XLEN/8, x2) + +inst_213: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 181*XLEN/8, x2) + +inst_214: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 182*XLEN/8, x2) + +inst_215: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 183*XLEN/8, x2) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 184*XLEN/8, x2) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 185*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 186*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 187*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 188*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 189*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 190*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 191*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 192*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 193*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 194*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 195*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 196*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 197*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 198*XLEN/8, x2) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 199*XLEN/8, x2) + +inst_232: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 200*XLEN/8, x2) + +inst_233: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 201*XLEN/8, x2) + +inst_234: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 202*XLEN/8, x2) + +inst_235: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 203*XLEN/8, x2) + +inst_236: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 204*XLEN/8, x2) + +inst_237: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 205*XLEN/8, x2) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 206*XLEN/8, x2) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 207*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 208*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 209*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 210*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 211*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 212*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 213*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 214*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 215*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 216*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 217*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 218*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 219*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 220*XLEN/8, x2) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 221*XLEN/8, x2) + +inst_254: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x3, x1, 222*XLEN/8, x2) + +inst_255: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 223*XLEN/8, x2) + +inst_256: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 224*XLEN/8, x2) + +inst_257: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x5, x1, 225*XLEN/8, x2) + +inst_258: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 226*XLEN/8, x2) + +inst_259: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 227*XLEN/8, x2) + +inst_260: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 228*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 229*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x2, x1, 230*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 231*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x0, x1, 232*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x4, x1, 233*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 234*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 235*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 236*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 237*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 238*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x6, x1, 239*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 240*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 241*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 242*XLEN/8, x2) + +inst_275: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 243*XLEN/8, x2) + +inst_276: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 244*XLEN/8, x2) + +inst_277: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 245*XLEN/8, x2) + +inst_278: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 246*XLEN/8, x2) + +inst_279: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 247*XLEN/8, x2) + +inst_280: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 248*XLEN/8, x2) + +inst_281: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 249*XLEN/8, x2) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 250*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 251*XLEN/8, x2) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 252*XLEN/8, x2) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 253*XLEN/8, x2) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 254*XLEN/8, x2) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 0*XLEN/8, x2) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 1*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 2*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 3*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 4*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 5*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 6*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 7*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 8*XLEN/8, x2) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 9*XLEN/8, x2) + +inst_298: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 10*XLEN/8, x2) + +inst_299: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 11*XLEN/8, x2) + +inst_300: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 12*XLEN/8, x2) + +inst_301: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 13*XLEN/8, x2) + +inst_302: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 14*XLEN/8, x2) + +inst_303: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 15*XLEN/8, x2) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 16*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 17*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 18*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 19*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 20*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 21*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 22*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 23*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 24*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 25*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 26*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 27*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 28*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 29*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 30*XLEN/8, x2) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 31*XLEN/8, x2) + +inst_320: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 32*XLEN/8, x2) + +inst_321: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 33*XLEN/8, x2) + +inst_322: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 34*XLEN/8, x2) + +inst_323: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 35*XLEN/8, x2) + +inst_324: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 36*XLEN/8, x2) + +inst_325: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 37*XLEN/8, x2) + +inst_326: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 38*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 39*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 40*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 41*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 42*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 43*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 44*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 45*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 46*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 47*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 48*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 49*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 50*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 51*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 52*XLEN/8, x2) + +inst_341: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 53*XLEN/8, x2) + +inst_342: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 54*XLEN/8, x2) + +inst_343: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 55*XLEN/8, x2) + +inst_344: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 56*XLEN/8, x2) + +inst_345: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 57*XLEN/8, x2) + +inst_346: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 58*XLEN/8, x2) + +inst_347: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 59*XLEN/8, x2) + +inst_348: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 60*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 61*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 62*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 63*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 64*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 65*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 66*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 67*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 68*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 69*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 70*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 71*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 72*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 73*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 74*XLEN/8, x2) + +inst_363: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 75*XLEN/8, x2) + +inst_364: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x3, x1, 76*XLEN/8, x2) + +inst_365: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 77*XLEN/8, x2) + +inst_366: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 78*XLEN/8, x2) + +inst_367: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x5, x1, 79*XLEN/8, x2) + +inst_368: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 80*XLEN/8, x2) + +inst_369: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 81*XLEN/8, x2) + +inst_370: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 82*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 83*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x2, x1, 84*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 85*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x0, x1, 86*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x4, x1, 87*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 88*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 89*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 90*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 91*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 92*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x6, x1, 93*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 94*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 95*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 96*XLEN/8, x2) + +inst_385: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 97*XLEN/8, x2) + +inst_386: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 98*XLEN/8, x2) + +inst_387: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 99*XLEN/8, x2) + +inst_388: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 100*XLEN/8, x2) + +inst_389: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 101*XLEN/8, x2) + +inst_390: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 102*XLEN/8, x2) + +inst_391: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 103*XLEN/8, x2) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 104*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 105*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 106*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 107*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 108*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 109*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 110*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 111*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 112*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 113*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 114*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 115*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 116*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 117*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 118*XLEN/8, x2) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 119*XLEN/8, x2) + +inst_408: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x3, x1, 120*XLEN/8, x2) + +inst_409: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 121*XLEN/8, x2) + +inst_410: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 122*XLEN/8, x2) + +inst_411: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x5, x1, 123*XLEN/8, x2) + +inst_412: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 124*XLEN/8, x2) + +inst_413: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 125*XLEN/8, x2) + +inst_414: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 126*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 127*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x2, x1, 128*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 129*XLEN/8, x2) + +inst_418: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 130*XLEN/8, x2) + +inst_419: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x3, x1, 131*XLEN/8, x2) + +inst_420: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 132*XLEN/8, x2) + +inst_421: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 133*XLEN/8, x2) + +inst_422: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x5, x1, 134*XLEN/8, x2) + +inst_423: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 135*XLEN/8, x2) + +inst_424: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 136*XLEN/8, x2) + +inst_425: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 137*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 138*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x2, x1, 139*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 140*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x0, x1, 141*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x4, x1, 142*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 143*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 144*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 145*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 146*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 147*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x6, x1, 148*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 149*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 150*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 151*XLEN/8, x2) + +inst_440: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 152*XLEN/8, x2) + +inst_441: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 153*XLEN/8, x2) + +inst_442: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 154*XLEN/8, x2) + +inst_443: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 155*XLEN/8, x2) + +inst_444: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 156*XLEN/8, x2) + +inst_445: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 157*XLEN/8, x2) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 158*XLEN/8, x2) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 159*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 160*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 161*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 162*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 163*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 164*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 165*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 166*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 167*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 168*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 169*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 170*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 171*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 172*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 173*XLEN/8, x2) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 174*XLEN/8, x2) + +inst_463: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 175*XLEN/8, x2) + +inst_464: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 176*XLEN/8, x2) + +inst_465: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 177*XLEN/8, x2) + +inst_466: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 178*XLEN/8, x2) + +inst_467: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 179*XLEN/8, x2) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 180*XLEN/8, x2) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 181*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 182*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 183*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 184*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 185*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 186*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 187*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 188*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 189*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 190*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 191*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 192*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 193*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 194*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 195*XLEN/8, x2) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 196*XLEN/8, x2) + +inst_485: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 197*XLEN/8, x2) + +inst_486: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 198*XLEN/8, x2) + +inst_487: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 199*XLEN/8, x2) + +inst_488: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 200*XLEN/8, x2) + +inst_489: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 201*XLEN/8, x2) + +inst_490: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 202*XLEN/8, x2) + +inst_491: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 203*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 204*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 205*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 206*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 207*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 208*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 209*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 210*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 211*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 212*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 213*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 214*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 215*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 216*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 217*XLEN/8, x2) + +inst_506: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 218*XLEN/8, x2) + +inst_507: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 219*XLEN/8, x2) + +inst_508: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 220*XLEN/8, x2) + +inst_509: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 221*XLEN/8, x2) + +inst_510: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 222*XLEN/8, x2) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 223*XLEN/8, x2) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 224*XLEN/8, x2) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 225*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 226*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 227*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 228*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 229*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 230*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 231*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 232*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 233*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 234*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 235*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 236*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 237*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 238*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 239*XLEN/8, x2) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 240*XLEN/8, x2) + +inst_529: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 241*XLEN/8, x2) + +inst_530: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 242*XLEN/8, x2) + +inst_531: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 243*XLEN/8, x2) + +inst_532: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 244*XLEN/8, x2) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 245*XLEN/8, x2) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 246*XLEN/8, x2) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 247*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 248*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 249*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 250*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 251*XLEN/8, x2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 252*XLEN/8, x2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 253*XLEN/8, x2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 254*XLEN/8, x2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 0*XLEN/8, x2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 1*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 2*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 3*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 4*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 5*XLEN/8, x2) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 6*XLEN/8, x2) + +inst_551: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x3, x1, 7*XLEN/8, x2) + +inst_552: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 8*XLEN/8, x2) + +inst_553: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 9*XLEN/8, x2) + +inst_554: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x5, x1, 10*XLEN/8, x2) + +inst_555: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 11*XLEN/8, x2) + +inst_556: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 12*XLEN/8, x2) + +inst_557: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 13*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 14*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x2, x1, 15*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 16*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x0, x1, 17*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x4, x1, 18*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 19*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 20*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 21*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 22*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 23*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x6, x1, 24*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 25*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 26*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 27*XLEN/8, x2) + +inst_572: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 28*XLEN/8, x2) + +inst_573: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 29*XLEN/8, x2) + +inst_574: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 30*XLEN/8, x2) + +inst_575: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 31*XLEN/8, x2) + +inst_576: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 32*XLEN/8, x2) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 33*XLEN/8, x2) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 34*XLEN/8, x2) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 35*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 36*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 37*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 38*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 39*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 40*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 41*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 42*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 43*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 44*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 45*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 46*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 47*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 48*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 49*XLEN/8, x2) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 50*XLEN/8, x2) + +inst_595: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 51*XLEN/8, x2) + +inst_596: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 52*XLEN/8, x2) + +inst_597: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 53*XLEN/8, x2) + +inst_598: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 54*XLEN/8, x2) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 55*XLEN/8, x2) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 56*XLEN/8, x2) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 57*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 58*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 59*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 60*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 61*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 62*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 63*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 64*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 65*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 66*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 67*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 68*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 69*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 70*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 71*XLEN/8, x2) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 72*XLEN/8, x2) + +inst_617: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 73*XLEN/8, x2) + +inst_618: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 74*XLEN/8, x2) + +inst_619: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 75*XLEN/8, x2) + +inst_620: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 76*XLEN/8, x2) + +inst_621: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 77*XLEN/8, x2) + +inst_622: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 78*XLEN/8, x2) + +inst_623: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 79*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 80*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 81*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 82*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 83*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 84*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 85*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 86*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 87*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 88*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 89*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 90*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 91*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 92*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 93*XLEN/8, x2) + +inst_638: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 94*XLEN/8, x2) + +inst_639: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 95*XLEN/8, x2) + +inst_640: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 96*XLEN/8, x2) + +inst_641: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 97*XLEN/8, x2) + +inst_642: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 98*XLEN/8, x2) + +inst_643: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 99*XLEN/8, x2) + +inst_644: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 100*XLEN/8, x2) + +inst_645: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 101*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 102*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 103*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 104*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 105*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 106*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 107*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 108*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 109*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 110*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 111*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 112*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 113*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 114*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 115*XLEN/8, x2) + +inst_660: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 116*XLEN/8, x2) + +inst_661: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 117*XLEN/8, x2) + +inst_662: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x0, x1, 118*XLEN/8, x2) + +inst_663: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x4, x1, 119*XLEN/8, x2) + +inst_664: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 120*XLEN/8, x2) + +inst_665: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 121*XLEN/8, x2) + +inst_666: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 122*XLEN/8, x2) + +inst_667: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 123*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 124*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x6, x1, 125*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 126*XLEN/8, x2) + +inst_671: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 127*XLEN/8, x2) + +inst_672: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs2_val == -274877906945, rs1_val == 9223372036854775807 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x7fffffffffffffff, -0x4000000001, x1, 128*XLEN/8, x2) + +inst_673: +// rs2_val == -257, rs1_val == -131073 +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x101 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x20001, -0x101, x1, 129*XLEN/8, x2) + +inst_674: +// rs2_val == -2049, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x801 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, 0x3333333333333332, -0x801, x1, 130*XLEN/8, x2) + +inst_675: +// rs2_val == -65537, +// opcode: mop.rr.3 ; op1:x30; op2:x29; dest:x31; op1val:-0x8; op2val:-0x10001 +TEST_RR_OP(mop.rr.3, x31, x30, x29, 0, -0x8, -0x10001, x1, 131*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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x3_0: + .fill 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 132*((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/Zimop/src/mop.rr.4-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.4-01.S new file mode 100644 index 000000000..8a0399146 --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.4-01.S @@ -0,0 +1,3507 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.4 instruction of the RISC-V RV64Zimop extension for the mop.rr.4 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.4) + +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_0: +// rs1 == rd != rs2, rs1==x8, rs2==x3, rd==x8, rs1_val != rs2_val, rs2_val == 288230376151711744, rs1_val < 0 and rs2_val > 0 +// opcode: mop.rr.4 ; op1:x8; op2:x3; dest:x8; op1val:-0x1; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.4, x8, x8, x3, 0, -0x1, 0x400000000000000, x2, 0*XLEN/8, x1) + +inst_1: +// rs2 == rd != rs1, rs1==x11, rs2==x13, rd==x13, rs1_val < 0 and rs2_val < 0, +// opcode: mop.rr.4 ; op1:x11; op2:x13; dest:x13; op1val:-0xb504f332; op2val:-0x6 +TEST_RR_OP(mop.rr.4, x13, x11, x13, 0, -0xb504f332, -0x6, x2, 1*XLEN/8, x1) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x4, rs2==x24, rd==x26, rs1_val == (-2**(xlen-1)), rs2_val == 18014398509481984, rs1_val == -9223372036854775808 +// opcode: mop.rr.4 ; op1:x4; op2:x24; dest:x26; op1val:-0x8000000000000000; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.4, x26, x4, x24, 0, -0x8000000000000000, 0x40000000000000, x2, 2*XLEN/8, x1) + +inst_3: +// rs1 == rs2 != rd, rs1==x21, rs2==x21, rd==x31, rs1_val == (2**(xlen-1)-1), rs2_val == -144115188075855873, rs1_val > 0 and rs2_val < 0, rs1_val == 9223372036854775807 +// opcode: mop.rr.4 ; op1:x21; op2:x21; dest:x31; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.4, x31, x21, x21, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x2, 3*XLEN/8, x1) + +inst_4: +// rs1 == rs2 == rd, rs1==x18, rs2==x18, rd==x18, rs1_val == 0, rs2_val == 35184372088832 +// opcode: mop.rr.4 ; op1:x18; op2:x18; dest:x18; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.4, x18, x18, x18, 0, 0x0, 0x0, x2, 4*XLEN/8, x1) + +inst_5: +// rs1==x28, rs2==x31, rd==x14, rs1_val == 1, rs1_val > 0 and rs2_val > 0 +// opcode: mop.rr.4 ; op1:x28; op2:x31; dest:x14; op1val:0x1; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x14, x28, x31, 0, 0x1, 0x5555555555555556, x2, 5*XLEN/8, x1) + +inst_6: +// rs1==x16, rs2==x30, rd==x23, rs2_val == -2, +// opcode: mop.rr.4 ; op1:x16; op2:x30; dest:x23; op1val:-0xb504f332; op2val:-0x2 +TEST_RR_OP(mop.rr.4, x23, x16, x30, 0, -0xb504f332, -0x2, x2, 6*XLEN/8, x1) + +inst_7: +// rs1==x26, rs2==x25, rd==x28, rs2_val == -3, +// opcode: mop.rr.4 ; op1:x26; op2:x25; dest:x28; op1val:0x3; op2val:-0x3 +TEST_RR_OP(mop.rr.4, x28, x26, x25, 0, 0x3, -0x3, x2, 7*XLEN/8, x1) + +inst_8: +// rs1==x3, rs2==x10, rd==x19, rs2_val == -5, +// opcode: mop.rr.4 ; op1:x3; op2:x10; dest:x19; op1val:0x3333333333333334; op2val:-0x5 +TEST_RR_OP(mop.rr.4, x19, x3, x10, 0, 0x3333333333333334, -0x5, x2, 8*XLEN/8, x1) + +inst_9: +// rs1==x31, rs2==x5, rd==x15, rs2_val == -9, +// opcode: mop.rr.4 ; op1:x31; op2:x5; dest:x15; op1val:-0xb504f332; op2val:-0x9 +TEST_RR_OP(mop.rr.4, x15, x31, x5, 0, -0xb504f332, -0x9, x2, 9*XLEN/8, x1) + +inst_10: +// rs1==x20, rs2==x27, rd==x6, rs2_val == -17, rs1_val == 2097152 +// opcode: mop.rr.4 ; op1:x20; op2:x27; dest:x6; op1val:0x200000; op2val:-0x11 +TEST_RR_OP(mop.rr.4, x6, x20, x27, 0, 0x200000, -0x11, x2, 10*XLEN/8, x1) + +inst_11: +// rs1==x5, rs2==x9, rd==x17, rs2_val == -33, rs1_val == 17179869184 +// opcode: mop.rr.4 ; op1:x5; op2:x9; dest:x17; op1val:0x400000000; op2val:-0x21 +TEST_RR_OP(mop.rr.4, x17, x5, x9, 0, 0x400000000, -0x21, x2, 11*XLEN/8, x1) + +inst_12: +// rs1==x30, rs2==x14, rd==x9, rs2_val == -65, rs1_val == -1073741825 +// opcode: mop.rr.4 ; op1:x30; op2:x14; dest:x9; op1val:-0x40000001; op2val:-0x41 +TEST_RR_OP(mop.rr.4, x9, x30, x14, 0, -0x40000001, -0x41, x2, 12*XLEN/8, x17) + +inst_13: +// rs1==x29, rs2==x4, rd==x1, rs2_val == -129, rs1_val == 8388608 +// opcode: mop.rr.4 ; op1:x29; op2:x4; dest:x1; op1val:0x800000; op2val:-0x81 +TEST_RR_OP(mop.rr.4, x1, x29, x4, 0, 0x800000, -0x81, x2, 13*XLEN/8, x17) +RVTEST_SIGBASE(x8,signature_x8_0) + +inst_14: +// rs1==x19, rs2==x1, rd==x22, rs2_val == -257, +// opcode: mop.rr.4 ; op1:x19; op2:x1; dest:x22; op1val:0x6; op2val:-0x101 +TEST_RR_OP(mop.rr.4, x22, x19, x1, 0, 0x6, -0x101, x8, 0*XLEN/8, x17) + +inst_15: +// rs1==x14, rs2==x15, rd==x5, rs2_val == -513, rs1_val == 137438953472 +// opcode: mop.rr.4 ; op1:x14; op2:x15; dest:x5; op1val:0x2000000000; op2val:-0x201 +TEST_RR_OP(mop.rr.4, x5, x14, x15, 0, 0x2000000000, -0x201, x8, 1*XLEN/8, x17) + +inst_16: +// rs1==x6, rs2==x20, rd==x25, rs2_val == -1025, rs1_val == 144115188075855872 +// opcode: mop.rr.4 ; op1:x6; op2:x20; dest:x25; op1val:0x200000000000000; op2val:-0x401 +TEST_RR_OP(mop.rr.4, x25, x6, x20, 0, 0x200000000000000, -0x401, x8, 2*XLEN/8, x17) + +inst_17: +// rs1==x22, rs2==x29, rd==x16, rs2_val == -2049, +// opcode: mop.rr.4 ; op1:x22; op2:x29; dest:x16; op1val:-0x40000001; op2val:-0x801 +TEST_RR_OP(mop.rr.4, x16, x22, x29, 0, -0x40000001, -0x801, x8, 3*XLEN/8, x17) + +inst_18: +// rs1==x27, rs2==x7, rd==x3, rs2_val == -4097, +// opcode: mop.rr.4 ; op1:x27; op2:x7; dest:x3; op1val:-0xa; op2val:-0x1001 +TEST_RR_OP(mop.rr.4, x3, x27, x7, 0, -0xa, -0x1001, x8, 4*XLEN/8, x17) + +inst_19: +// rs1==x13, rs2==x22, rd==x20, rs2_val == -8193, +// opcode: mop.rr.4 ; op1:x13; op2:x22; dest:x20; op1val:0x7; op2val:-0x2001 +TEST_RR_OP(mop.rr.4, x20, x13, x22, 0, 0x7, -0x2001, x8, 5*XLEN/8, x17) + +inst_20: +// rs1==x1, rs2==x23, rd==x7, rs2_val == -16385, rs1_val == 16384 +// opcode: mop.rr.4 ; op1:x1; op2:x23; dest:x7; op1val:0x4000; op2val:-0x4001 +TEST_RR_OP(mop.rr.4, x7, x1, x23, 0, 0x4000, -0x4001, x8, 6*XLEN/8, x17) + +inst_21: +// rs1==x10, rs2==x2, rd==x24, rs2_val == -32769, rs1_val == 2251799813685248 +// opcode: mop.rr.4 ; op1:x10; op2:x2; dest:x24; op1val:0x8000000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.4, x24, x10, x2, 0, 0x8000000000000, -0x8001, x8, 7*XLEN/8, x17) + +inst_22: +// rs1==x25, rs2==x0, rd==x12, rs2_val == -65537, rs1_val == -1025 +// opcode: mop.rr.4 ; op1:x25; op2:x0; dest:x12; op1val:-0x401; op2val:0x0 +TEST_RR_OP(mop.rr.4, x12, x25, x0, 0, -0x401, 0x0, x8, 8*XLEN/8, x17) + +inst_23: +// rs1==x0, rs2==x11, rd==x4, rs2_val == -131073, +// opcode: mop.rr.4 ; op1:x0; op2:x11; dest:x4; op1val:0x0; op2val:-0x20001 +TEST_RR_OP(mop.rr.4, x4, x0, x11, 0, 0x0, -0x20001, x8, 9*XLEN/8, x17) + +inst_24: +// rs1==x9, rs2==x6, rd==x27, rs2_val == -262145, rs1_val == -67108865 +// opcode: mop.rr.4 ; op1:x9; op2:x6; dest:x27; op1val:-0x4000001; op2val:-0x40001 +TEST_RR_OP(mop.rr.4, x27, x9, x6, 0, -0x4000001, -0x40001, x8, 10*XLEN/8, x17) + +inst_25: +// rs1==x7, rs2==x16, rd==x2, rs2_val == -524289, rs1_val == -9 +// opcode: mop.rr.4 ; op1:x7; op2:x16; dest:x2; op1val:-0x9; op2val:-0x80001 +TEST_RR_OP(mop.rr.4, x2, x7, x16, 0, -0x9, -0x80001, x8, 11*XLEN/8, x17) + +inst_26: +// rs1==x24, rs2==x12, rd==x10, rs2_val == -1048577, +// opcode: mop.rr.4 ; op1:x24; op2:x12; dest:x10; op1val:-0x9; op2val:-0x100001 +TEST_RR_OP(mop.rr.4, x10, x24, x12, 0, -0x9, -0x100001, x8, 12*XLEN/8, x17) + +inst_27: +// rs1==x12, rs2==x28, rd==x11, rs2_val == -2097153, rs1_val == -4398046511105 +// opcode: mop.rr.4 ; op1:x12; op2:x28; dest:x11; op1val:-0x40000000001; op2val:-0x200001 +TEST_RR_OP(mop.rr.4, x11, x12, x28, 0, -0x40000000001, -0x200001, x8, 13*XLEN/8, x17) + +inst_28: +// rs1==x2, rs2==x17, rd==x0, rs2_val == -4194305, rs1_val == 32 +// opcode: mop.rr.4 ; op1:x2; op2:x17; dest:x0; op1val:0x20; op2val:-0x400001 +TEST_RR_OP(mop.rr.4, x0, x2, x17, 0, 0x20, -0x400001, x8, 14*XLEN/8, x3) + +inst_29: +// rs1==x15, rs2==x26, rd==x21, rs2_val == -8388609, rs1_val == -68719476737 +// opcode: mop.rr.4 ; op1:x15; op2:x26; dest:x21; op1val:-0x1000000001; op2val:-0x800001 +TEST_RR_OP(mop.rr.4, x21, x15, x26, 0, -0x1000000001, -0x800001, x8, 15*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_30: +// rs1==x17, rs2==x8, rd==x30, rs2_val == -16777217, +// opcode: mop.rr.4 ; op1:x17; op2:x8; dest:x30; op1val:0x5; op2val:-0x1000001 +TEST_RR_OP(mop.rr.4, x30, x17, x8, 0, 0x5, -0x1000001, x1, 0*XLEN/8, x3) + +inst_31: +// rs1==x23, rs2==x19, rd==x29, rs2_val == -33554433, rs1_val == -2147483649 +// opcode: mop.rr.4 ; op1:x23; op2:x19; dest:x29; op1val:-0x80000001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.4, x29, x23, x19, 0, -0x80000001, -0x2000001, x1, 1*XLEN/8, x3) + +inst_32: +// rs2_val == -67108865, rs1_val == -3 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x4000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x3, -0x4000001, x1, 2*XLEN/8, x3) + +inst_33: +// rs2_val == -134217729, rs1_val == -33 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:-0x8000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x21, -0x8000001, x1, 3*XLEN/8, x3) + +inst_34: +// rs2_val == -268435457, rs1_val == 512 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:-0x10000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200, -0x10000001, x1, 4*XLEN/8, x3) + +inst_35: +// rs2_val == -536870913, rs1_val == 262144 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40000, -0x20000001, x1, 5*XLEN/8, x3) + +inst_36: +// rs2_val == -1073741825, rs1_val == 64 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:-0x40000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40, -0x40000001, x1, 6*XLEN/8, x3) + +inst_37: +// rs2_val == -2147483649, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x80000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0x80000001, x1, 7*XLEN/8, x3) + +inst_38: +// rs2_val == -4294967297, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x100000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000, -0x100000001, x1, 8*XLEN/8, x3) + +inst_39: +// rs2_val == -8589934593, rs1_val == 17592186044416 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:-0x200000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100000000000, -0x200000001, x1, 9*XLEN/8, x3) + +inst_40: +// rs2_val == -17179869185, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x400000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20, -0x400000001, x1, 10*XLEN/8, x3) + +inst_41: +// rs2_val == -34359738369, rs1_val == 134217728 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x800000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000000, -0x800000001, x1, 11*XLEN/8, x3) + +inst_42: +// rs2_val == -68719476737, rs1_val == -35184372088833 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x200000000001, -0x1000000001, x1, 12*XLEN/8, x3) + +inst_43: +// rs2_val == -137438953473, rs1_val == 288230376151711744 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x400000000000000, -0x2000000001, x1, 13*XLEN/8, x3) + +inst_44: +// rs2_val == -274877906945, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000, -0x4000000001, x1, 14*XLEN/8, x3) + +inst_45: +// rs2_val == -549755813889, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, -0x8000000001, x1, 15*XLEN/8, x3) + +inst_46: +// rs2_val == -1099511627777, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40000000001, -0x10000000001, x1, 16*XLEN/8, x3) + +inst_47: +// rs2_val == -2199023255553, rs1_val == -1099511627777 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10000000001, -0x20000000001, x1, 17*XLEN/8, x3) + +inst_48: +// rs2_val == -4398046511105, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800000, -0x40000000001, x1, 18*XLEN/8, x3) + +inst_49: +// rs2_val == -8796093022209, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000000, -0x80000000001, x1, 19*XLEN/8, x3) + +inst_50: +// rs2_val == -17592186044417, rs1_val == -513 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x201, -0x100000000001, x1, 20*XLEN/8, x3) + +inst_51: +// rs2_val == -35184372088833, rs1_val == 6148914691236517205 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, -0x200000000001, x1, 21*XLEN/8, x3) + +inst_52: +// rs2_val == -70368744177665, rs1_val == 72057594037927936 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100000000000000, -0x400000000001, x1, 22*XLEN/8, x3) + +inst_53: +// rs2_val == -140737488355329, rs1_val == -17179869185 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x400000001, -0x800000000001, x1, 23*XLEN/8, x3) + +inst_54: +// rs2_val == -281474976710657, rs1_val == 1073741824 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40000000, -0x1000000000001, x1, 24*XLEN/8, x3) + +inst_55: +// rs2_val == -562949953421313, rs1_val == -129 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x81, -0x2000000000001, x1, 25*XLEN/8, x3) + +inst_56: +// rs2_val == -1125899906842625, rs1_val == 2 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0x4000000000001, x1, 26*XLEN/8, x3) + +inst_57: +// rs2_val == -2251799813685249, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x81, -0x8000000000001, x1, 27*XLEN/8, x3) + +inst_58: +// rs2_val == -4503599627370497, rs1_val == 4 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0x10000000000001, x1, 28*XLEN/8, x3) + +inst_59: +// rs2_val == -9007199254740993, rs1_val == 1152921504606846976 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000000000000000, -0x20000000000001, x1, 29*XLEN/8, x3) + +inst_60: +// rs2_val == -18014398509481985, rs1_val == -65537 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10001, -0x40000000000001, x1, 30*XLEN/8, x3) + +inst_61: +// rs2_val == -36028797018963969, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40, -0x80000000000001, x1, 31*XLEN/8, x3) + +inst_62: +// rs2_val == -72057594037927937, rs1_val == -576460752303423489 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x800000000000001, -0x100000000000001, x1, 32*XLEN/8, x3) + +inst_63: +// rs2_val == -288230376151711745, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000000000000000, -0x400000000000001, x1, 33*XLEN/8, x3) + +inst_64: +// rs2_val == -576460752303423489, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x201, -0x800000000000001, x1, 34*XLEN/8, x3) + +inst_65: +// rs2_val == -1152921504606846977, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x800000000000001, -0x1000000000000001, x1, 35*XLEN/8, x3) + +inst_66: +// rs2_val == -2305843009213693953, rs1_val == -536870913 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x20000001, -0x2000000000000001, x1, 36*XLEN/8, x3) + +inst_67: +// rs2_val == -4611686018427387905, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x7, -0x4000000000000001, x1, 37*XLEN/8, x3) + +inst_68: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x7fffffffffffffff, x1, 38*XLEN/8, x3) + +inst_69: +// rs1_val == -2, rs2_val == 32768 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:0x8000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2, 0x8000, x1, 39*XLEN/8, x3) + +inst_70: +// rs1_val == -5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:-0x801 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5, -0x801, x1, 40*XLEN/8, x3) + +inst_71: +// rs1_val == -17, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x11, 0x7fffffffffffffff, x1, 41*XLEN/8, x3) + +inst_72: +// rs1_val == -65, rs2_val == 2147483648 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:0x80000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x41, 0x80000000, x1, 42*XLEN/8, x3) + +inst_73: +// rs1_val == -257, rs2_val == 562949953421312 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x101, 0x2000000000000, x1, 43*XLEN/8, x3) + +inst_74: +// rs1_val == -2049, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:-0x8000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x801, -0x8000001, x1, 44*XLEN/8, x3) + +inst_75: +// rs1_val == -4097, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x801 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1001, -0x801, x1, 45*XLEN/8, x3) + +inst_76: +// rs1_val == -8193, rs2_val == 4 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2001, 0x4, x1, 46*XLEN/8, x3) + +inst_77: +// rs1_val == -16385, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x8000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4001, -0x8000001, x1, 47*XLEN/8, x3) + +inst_78: +// rs1_val == -32769, rs2_val == 2199023255552 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x20000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8001, 0x20000000000, x1, 48*XLEN/8, x3) + +inst_79: +// rs1_val == -131073, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x9 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x20001, -0x9, x1, 49*XLEN/8, x3) + +inst_80: +// rs1_val == -262145, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x400000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40001, -0x400000001, x1, 50*XLEN/8, x3) + +inst_81: +// rs1_val == -524289, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x80001, -0x200000000001, x1, 51*XLEN/8, x3) + +inst_82: +// rs1_val == -1048577, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x100001, -0x400000000001, x1, 52*XLEN/8, x3) + +inst_83: +// rs1_val == -2097153, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:-0x41 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x200001, -0x41, x1, 53*XLEN/8, x3) + +inst_84: +// rs1_val == -4194305, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:0x8000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x400001, 0x8000, x1, 54*XLEN/8, x3) + +inst_85: +// rs1_val == -8388609, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x11 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x800001, -0x11, x1, 55*XLEN/8, x3) + +inst_86: +// rs1_val == -16777217, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1000001, -0x3, x1, 56*XLEN/8, x3) + +inst_87: +// rs1_val == -33554433, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x4000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2000001, -0x4000001, x1, 57*XLEN/8, x3) + +inst_88: +// rs1_val == -134217729, rs2_val == 1 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x1 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8000001, 0x1, x1, 58*XLEN/8, x3) + +inst_89: +// rs1_val == -268435457, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10000001, -0x10000000000001, x1, 59*XLEN/8, x3) + +inst_90: +// rs1_val == -4294967297, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x100000001, -0xb504f332, x1, 60*XLEN/8, x3) + +inst_91: +// rs1_val == -8589934593, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x200000001, -0x1000000000001, x1, 61*XLEN/8, x3) + +inst_92: +// rs1_val == -34359738369, rs2_val == -6148914691236517206 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x800000001, -0x5555555555555556, x1, 62*XLEN/8, x3) + +inst_93: +// rs1_val == -137438953473, rs2_val == 0 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2000000001, 0x0, x1, 63*XLEN/8, x3) + +inst_94: +// rs1_val == -274877906945, rs2_val == 6148914691236517205 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000000001, 0x5555555555555555, x1, 64*XLEN/8, x3) + +inst_95: +// rs1_val == -549755813889, rs2_val == 64 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:0x40 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8000000001, 0x40, x1, 65*XLEN/8, x3) + +inst_96: +// rs1_val == -2199023255553, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x20000000001, -0x2000000000001, x1, 66*XLEN/8, x3) + +inst_97: +// rs1_val == -8796093022209, rs2_val == 281474976710656 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000001; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x80000000001, 0x1000000000000, x1, 67*XLEN/8, x3) + +inst_98: +// rs1_val == -17592186044417, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:-0x10000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x100000000001, -0x10000001, x1, 68*XLEN/8, x3) + +inst_99: +// rs1_val == -70368744177665, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x400000000001, -0x80000000001, x1, 69*XLEN/8, x3) + +inst_100: +// rs1_val == -140737488355329, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x8000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x800000000001, -0x8000001, x1, 70*XLEN/8, x3) + +inst_101: +// rs1_val == -281474976710657, rs2_val == 68719476736 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:0x1000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1000000000001, 0x1000000000, x1, 71*XLEN/8, x3) + +inst_102: +// rs1_val == -562949953421313, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:-0x1001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2000000000001, -0x1001, x1, 72*XLEN/8, x3) + +inst_103: +// rs1_val == -1125899906842625, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000000000001, -0x2000000001, x1, 73*XLEN/8, x3) + +inst_104: +// rs1_val == -2251799813685249, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8000000000001, -0x2000001, x1, 74*XLEN/8, x3) + +inst_105: +// rs1_val == -4503599627370497, rs2_val == 262144 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:0x40000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10000000000001, 0x40000, x1, 75*XLEN/8, x3) + +inst_106: +// rs1_val == -9007199254740993, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x200000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x20000000000001, 0x200000000000, x1, 76*XLEN/8, x3) + +inst_107: +// rs1_val == -18014398509481985, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40000000000001, 0x3333333333333333, x1, 77*XLEN/8, x3) + +inst_108: +// rs1_val == -36028797018963969, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:-0x100001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x80000000000001, -0x100001, x1, 78*XLEN/8, x3) + +inst_109: +// rs1_val == -72057594037927937, rs2_val == 1152921504606846976 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x100000000000001, 0x1000000000000000, x1, 79*XLEN/8, x3) + +inst_110: +// rs1_val == -144115188075855873, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x200000000000001, 0xb504f332, x1, 80*XLEN/8, x3) + +inst_111: +// rs1_val == -288230376151711745, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x400000000000001, -0x4000000000000001, x1, 81*XLEN/8, x3) + +inst_112: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:-0x101 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1000000000000001, -0x101, x1, 82*XLEN/8, x3) + +inst_113: +// rs1_val == -2305843009213693953, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2000000000000001, 0x3, x1, 83*XLEN/8, x3) + +inst_114: +// rs1_val == -4611686018427387905, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:-0x200000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000000000000001, -0x200000001, x1, 84*XLEN/8, x3) + +inst_115: +// rs2_val == 2, rs1_val==7378697629483820645 and rs2_val==2 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 85*XLEN/8, x3) + +inst_116: +// rs2_val == 8, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:0x8 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xa, 0x8, x1, 86*XLEN/8, x3) + +inst_117: +// rs2_val == 16, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:0x10 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x200000000000001, 0x10, x1, 87*XLEN/8, x3) + +inst_118: +// rs2_val == 32, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x20 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x20, x1, 88*XLEN/8, x3) + +inst_119: +// rs2_val == 128, rs1_val == 4398046511104 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:0x80 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40000000000, 0x80, x1, 89*XLEN/8, x3) + +inst_120: +// rs2_val == 256, rs1_val == 4194304 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:0x100 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x400000, 0x100, x1, 90*XLEN/8, x3) + +inst_121: +// rs2_val == 512, rs1_val == 16777216 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x200 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000000, 0x200, x1, 91*XLEN/8, x3) + +inst_122: +// rs2_val == 1024, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x400 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10001, 0x400, x1, 92*XLEN/8, x3) + +inst_123: +// rs2_val == 2048, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x800 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x800, x1, 93*XLEN/8, x3) + +inst_124: +// rs2_val == 4096, rs1_val == 33554432 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x1000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000000, 0x1000, x1, 94*XLEN/8, x3) + +inst_125: +// rs2_val == 8192, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x2000, x1, 95*XLEN/8, x3) + +inst_126: +// rs2_val == 16384, rs1_val == 68719476736 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:0x4000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000000000, 0x4000, x1, 96*XLEN/8, x3) + +inst_127: +// rs2_val == 65536, rs1_val == 2147483648 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:0x10000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80000000, 0x10000, x1, 97*XLEN/8, x3) + +inst_128: +// rs2_val == 131072, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:0x20000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40000000001, 0x20000, x1, 98*XLEN/8, x3) + +inst_129: +// rs2_val == 524288, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x80000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x80000, x1, 99*XLEN/8, x3) + +inst_130: +// rs2_val == 1048576, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x100000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2001, 0x100000, x1, 100*XLEN/8, x3) + +inst_131: +// rs2_val == 2097152, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x200000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10001, 0x200000, x1, 101*XLEN/8, x3) + +inst_132: +// rs2_val == 4194304, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x400000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1001, 0x400000, x1, 102*XLEN/8, x3) + +inst_133: +// rs2_val == 8388608, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x800000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200000, 0x800000, x1, 103*XLEN/8, x3) + +inst_134: +// rs2_val == 16777216, rs1_val == 131072 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x1000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20000, 0x1000000, x1, 104*XLEN/8, x3) + +inst_135: +// rs2_val == 33554432, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:0x2000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000000000001, 0x2000000, x1, 105*XLEN/8, x3) + +inst_136: +// rs2_val == 67108864, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:0x4000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x800000001, 0x4000000, x1, 106*XLEN/8, x3) + +inst_137: +// rs2_val == 134217728, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x8000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x40000000000001, 0x8000000, x1, 107*XLEN/8, x3) + +inst_138: +// rs2_val == 268435456, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x10000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1001, 0x10000000, x1, 108*XLEN/8, x3) + +inst_139: +// rs2_val == 536870912, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8; op2val:0x20000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8, 0x20000000, x1, 109*XLEN/8, x3) + +inst_140: +// rs2_val == 1073741824, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x40000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x21, 0x40000000, x1, 110*XLEN/8, x3) + +inst_141: +// rs2_val == 4294967296, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:0x100000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000000000000, 0x100000000, x1, 111*XLEN/8, x3) + +inst_142: +// rs2_val == 8589934592, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x200000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x80001, 0x200000000, x1, 112*XLEN/8, x3) + +inst_143: +// rs2_val == 17179869184, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x400000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x10000001, 0x400000000, x1, 113*XLEN/8, x3) + +inst_144: +// rs2_val == 34359738368, rs1_val == 18014398509481984 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:0x800000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x40000000000000, 0x800000000, x1, 114*XLEN/8, x3) + +inst_145: +// rs2_val == 137438953472, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x2000000000, x1, 115*XLEN/8, x3) + +inst_146: +// rs2_val == 274877906944, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x9; op2val:0x4000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x9, 0x4000000000, x1, 116*XLEN/8, x3) + +inst_147: +// rs2_val == 549755813888, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:0x8000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1000000000000001, 0x8000000000, x1, 117*XLEN/8, x3) + +inst_148: +// rs2_val == 1099511627776, rs1_val == 8796093022208 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x10000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80000000000, 0x10000000000, x1, 118*XLEN/8, x3) + +inst_149: +// rs2_val == 4398046511104, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:0x40000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100000000000, 0x40000000000, x1, 119*XLEN/8, x3) + +inst_150: +// rs2_val == 8796093022208, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:0x80000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x4000000000000000, 0x80000000000, x1, 120*XLEN/8, x3) + +inst_151: +// rs2_val == 17592186044416, rs1_val == 4294967296 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:0x100000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100000000, 0x100000000000, x1, 121*XLEN/8, x3) + +inst_152: +// rs2_val == 70368744177664, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x8000001, 0x400000000000, x1, 122*XLEN/8, x3) + +inst_153: +// rs2_val == 140737488355328, rs1_val == 34359738368 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:0x800000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800000000, 0x800000000000, x1, 123*XLEN/8, x3) + +inst_154: +// rs2_val == 1125899906842624, rs1_val == 256 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100, 0x4000000000000, x1, 124*XLEN/8, x3) + +inst_155: +// rs2_val == 2251799813685248, rs1_val == 35184372088832 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200000000000, 0x8000000000000, x1, 125*XLEN/8, x3) + +inst_156: +// rs2_val == 4503599627370496, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x10000000000000, x1, 126*XLEN/8, x3) + +inst_157: +// rs2_val == 9007199254740992, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x2001, 0x20000000000000, x1, 127*XLEN/8, x3) + +inst_158: +// rs2_val == 36028797018963968, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x1000000001, 0x80000000000000, x1, 128*XLEN/8, x3) + +inst_159: +// rs2_val == 72057594037927936, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000000, 0x100000000000000, x1, 129*XLEN/8, x3) + +inst_160: +// rs2_val == 144115188075855872, rs1_val == 549755813888 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000000000, 0x200000000000000, x1, 130*XLEN/8, x3) + +inst_161: +// rs2_val == 576460752303423488, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x800000000000000, x1, 131*XLEN/8, x3) + +inst_162: +// rs2_val == 2305843009213693952, rs1_val == 4096 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000, 0x2000000000000000, x1, 132*XLEN/8, x3) + +inst_163: +// rs2_val == 4611686018427387904, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000000, 0x4000000000000000, x1, 133*XLEN/8, x3) + +inst_164: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200000, -0x8000000000000000, x1, 134*XLEN/8, x3) + +inst_165: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x3, x1, 135*XLEN/8, x3) + +inst_166: +// rs1_val == 8, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:-0x800001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8, -0x800001, x1, 136*XLEN/8, x3) + +inst_167: +// rs1_val == 16, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x40001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10, -0x40001, x1, 137*XLEN/8, x3) + +inst_168: +// rs1_val == 128, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x20000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80, 0x20000000000, x1, 138*XLEN/8, x3) + +inst_169: +// rs1_val == 1024, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x400, 0x7fffffffffffffff, x1, 139*XLEN/8, x3) + +inst_170: +// rs1_val == 2048, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:-0x101 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800, -0x101, x1, 140*XLEN/8, x3) + +inst_171: +// rs1_val == 8192, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000, -0x20000000001, x1, 141*XLEN/8, x3) + +inst_172: +// rs1_val == 32768, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x8000, -0x10000000000001, x1, 142*XLEN/8, x3) + +inst_173: +// rs1_val == 65536, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000, -0x40000000001, x1, 143*XLEN/8, x3) + +inst_174: +// rs1_val == 524288, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80000, -0x5555555555555556, x1, 144*XLEN/8, x3) + +inst_175: +// rs1_val == 1048576, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:-0x2001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x100000, -0x2001, x1, 145*XLEN/8, x3) + +inst_176: +// rs1_val == 67108864, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000000, 0x2, x1, 146*XLEN/8, x3) + +inst_177: +// rs1_val == 268435456, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:-0x4000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000000, -0x4000001, x1, 147*XLEN/8, x3) + +inst_178: +// rs1_val == 536870912, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20000000, 0x5555555555555556, x1, 148*XLEN/8, x3) + +inst_179: +// rs1_val == 8589934592, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x200001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x200000000, -0x200001, x1, 149*XLEN/8, x3) + +inst_180: +// rs1_val == 274877906944, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x800000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000000000, 0x800000000, x1, 150*XLEN/8, x3) + +inst_181: +// rs1_val == 1099511627776, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x20001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000000000, -0x20001, x1, 151*XLEN/8, x3) + +inst_182: +// rs1_val == 2199023255552, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20000000000, 0x4, x1, 152*XLEN/8, x3) + +inst_183: +// rs1_val == 70368744177664, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000; op2val:-0x8000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x400000000000, -0x8000001, x1, 153*XLEN/8, x3) + +inst_184: +// rs1_val == 140737488355328, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800000000000, 0x800000000000000, x1, 154*XLEN/8, x3) + +inst_185: +// rs1_val == 281474976710656, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:-0x201 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x1000000000000, -0x201, x1, 155*XLEN/8, x3) + +inst_186: +// rs1_val == 562949953421312, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000000000000, -0x800000000001, x1, 156*XLEN/8, x3) + +inst_187: +// rs1_val == 1125899906842624, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:0x8000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000000000000, 0x8000, x1, 157*XLEN/8, x3) + +inst_188: +// rs1_val == 4503599627370496, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000000; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x10000000000000, -0x5555555555555556, x1, 158*XLEN/8, x3) + +inst_189: +// rs1_val == 9007199254740992, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20000000000000, 0x5555555555555554, x1, 159*XLEN/8, x3) + +inst_190: +// rs1_val == 36028797018963968, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x80000000000000, 0x1000000000000, x1, 160*XLEN/8, x3) + +inst_191: +// rs1_val == 576460752303423488, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x800000000000000, -0x1000000000000001, x1, 161*XLEN/8, x3) + +inst_192: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:0x800000 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2000000000000000, 0x800000, x1, 162*XLEN/8, x3) + +inst_193: +// rs1_val == 4611686018427387904, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4000000000000000, 0x7fffffffffffffff, x1, 163*XLEN/8, x3) + +inst_194: +// rs1_val==3 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 164*XLEN/8, x3) + +inst_195: +// rs1_val==3 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 165*XLEN/8, x3) + +inst_196: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x5, x1, 166*XLEN/8, x3) + +inst_197: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 167*XLEN/8, x3) + +inst_198: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 168*XLEN/8, x3) + +inst_199: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 169*XLEN/8, x3) + +inst_200: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 170*XLEN/8, x3) + +inst_201: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x2, x1, 171*XLEN/8, x3) + +inst_202: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 172*XLEN/8, x3) + +inst_203: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x0, x1, 173*XLEN/8, x3) + +inst_204: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x4, x1, 174*XLEN/8, x3) + +inst_205: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 175*XLEN/8, x3) + +inst_206: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 176*XLEN/8, x3) + +inst_207: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 177*XLEN/8, x3) + +inst_208: +// rs1_val == -6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x80000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, -0x80000001, x1, 178*XLEN/8, x3) + +inst_209: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 179*XLEN/8, x3) + +inst_210: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 180*XLEN/8, x3) + +inst_211: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x6, x1, 181*XLEN/8, x3) + +inst_212: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 182*XLEN/8, x3) + +inst_213: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 183*XLEN/8, x3) + +inst_214: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 184*XLEN/8, x3) + +inst_215: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 185*XLEN/8, x3) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 186*XLEN/8, x3) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 187*XLEN/8, x3) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 188*XLEN/8, x3) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 189*XLEN/8, x3) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 190*XLEN/8, x3) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 191*XLEN/8, x3) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 192*XLEN/8, x3) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 193*XLEN/8, x3) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 194*XLEN/8, x3) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 195*XLEN/8, x3) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 196*XLEN/8, x3) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 197*XLEN/8, x3) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 198*XLEN/8, x3) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 199*XLEN/8, x3) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 200*XLEN/8, x3) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 201*XLEN/8, x3) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 202*XLEN/8, x3) + +inst_233: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 203*XLEN/8, x3) + +inst_234: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 204*XLEN/8, x3) + +inst_235: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 205*XLEN/8, x3) + +inst_236: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 206*XLEN/8, x3) + +inst_237: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 207*XLEN/8, x3) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 208*XLEN/8, x3) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 209*XLEN/8, x3) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 210*XLEN/8, x3) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 211*XLEN/8, x3) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 212*XLEN/8, x3) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 213*XLEN/8, x3) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 214*XLEN/8, x3) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 215*XLEN/8, x3) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 216*XLEN/8, x3) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 217*XLEN/8, x3) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 218*XLEN/8, x3) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 219*XLEN/8, x3) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 220*XLEN/8, x3) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 221*XLEN/8, x3) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 222*XLEN/8, x3) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 223*XLEN/8, x3) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 224*XLEN/8, x3) + +inst_255: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 225*XLEN/8, x3) + +inst_256: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 226*XLEN/8, x3) + +inst_257: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 227*XLEN/8, x3) + +inst_258: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 228*XLEN/8, x3) + +inst_259: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 229*XLEN/8, x3) + +inst_260: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x3, x1, 230*XLEN/8, x3) + +inst_261: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 231*XLEN/8, x3) + +inst_262: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 232*XLEN/8, x3) + +inst_263: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x5, x1, 233*XLEN/8, x3) + +inst_264: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 234*XLEN/8, x3) + +inst_265: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 235*XLEN/8, x3) + +inst_266: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 236*XLEN/8, x3) + +inst_267: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 237*XLEN/8, x3) + +inst_268: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x2, x1, 238*XLEN/8, x3) + +inst_269: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 239*XLEN/8, x3) + +inst_270: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x0, x1, 240*XLEN/8, x3) + +inst_271: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x4, x1, 241*XLEN/8, x3) + +inst_272: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 242*XLEN/8, x3) + +inst_273: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 243*XLEN/8, x3) + +inst_274: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 244*XLEN/8, x3) + +inst_275: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 245*XLEN/8, x3) + +inst_276: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 246*XLEN/8, x3) + +inst_277: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x6, x1, 247*XLEN/8, x3) + +inst_278: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 248*XLEN/8, x3) + +inst_279: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 249*XLEN/8, x3) + +inst_280: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 250*XLEN/8, x3) + +inst_281: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 251*XLEN/8, x3) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 252*XLEN/8, x3) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 253*XLEN/8, x3) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 254*XLEN/8, x3) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 255*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 0*XLEN/8, x3) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 1*XLEN/8, x3) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 2*XLEN/8, x3) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 3*XLEN/8, x3) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 4*XLEN/8, x3) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 5*XLEN/8, x3) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 6*XLEN/8, x3) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 7*XLEN/8, x3) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 8*XLEN/8, x3) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 9*XLEN/8, x3) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 10*XLEN/8, x3) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 11*XLEN/8, x3) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 12*XLEN/8, x3) + +inst_299: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 13*XLEN/8, x3) + +inst_300: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 14*XLEN/8, x3) + +inst_301: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 15*XLEN/8, x3) + +inst_302: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 16*XLEN/8, x3) + +inst_303: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 17*XLEN/8, x3) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 18*XLEN/8, x3) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 19*XLEN/8, x3) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 20*XLEN/8, x3) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 21*XLEN/8, x3) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 22*XLEN/8, x3) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 23*XLEN/8, x3) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 24*XLEN/8, x3) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 25*XLEN/8, x3) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 26*XLEN/8, x3) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 27*XLEN/8, x3) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 28*XLEN/8, x3) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 29*XLEN/8, x3) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 30*XLEN/8, x3) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 31*XLEN/8, x3) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 32*XLEN/8, x3) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 33*XLEN/8, x3) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 34*XLEN/8, x3) + +inst_321: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 35*XLEN/8, x3) + +inst_322: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 36*XLEN/8, x3) + +inst_323: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 37*XLEN/8, x3) + +inst_324: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 38*XLEN/8, x3) + +inst_325: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 39*XLEN/8, x3) + +inst_326: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 40*XLEN/8, x3) + +inst_327: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 41*XLEN/8, x3) + +inst_328: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 42*XLEN/8, x3) + +inst_329: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 43*XLEN/8, x3) + +inst_330: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 44*XLEN/8, x3) + +inst_331: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 45*XLEN/8, x3) + +inst_332: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 46*XLEN/8, x3) + +inst_333: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 47*XLEN/8, x3) + +inst_334: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 48*XLEN/8, x3) + +inst_335: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 49*XLEN/8, x3) + +inst_336: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 50*XLEN/8, x3) + +inst_337: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 51*XLEN/8, x3) + +inst_338: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 52*XLEN/8, x3) + +inst_339: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 53*XLEN/8, x3) + +inst_340: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 54*XLEN/8, x3) + +inst_341: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 55*XLEN/8, x3) + +inst_342: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 56*XLEN/8, x3) + +inst_343: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 57*XLEN/8, x3) + +inst_344: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 58*XLEN/8, x3) + +inst_345: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 59*XLEN/8, x3) + +inst_346: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 60*XLEN/8, x3) + +inst_347: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 61*XLEN/8, x3) + +inst_348: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 62*XLEN/8, x3) + +inst_349: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 63*XLEN/8, x3) + +inst_350: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 64*XLEN/8, x3) + +inst_351: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 65*XLEN/8, x3) + +inst_352: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 66*XLEN/8, x3) + +inst_353: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 67*XLEN/8, x3) + +inst_354: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 68*XLEN/8, x3) + +inst_355: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 69*XLEN/8, x3) + +inst_356: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 70*XLEN/8, x3) + +inst_357: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 71*XLEN/8, x3) + +inst_358: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 72*XLEN/8, x3) + +inst_359: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 73*XLEN/8, x3) + +inst_360: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 74*XLEN/8, x3) + +inst_361: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 75*XLEN/8, x3) + +inst_362: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 76*XLEN/8, x3) + +inst_363: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 77*XLEN/8, x3) + +inst_364: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 78*XLEN/8, x3) + +inst_365: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 79*XLEN/8, x3) + +inst_366: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 80*XLEN/8, x3) + +inst_367: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 81*XLEN/8, x3) + +inst_368: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 82*XLEN/8, x3) + +inst_369: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 83*XLEN/8, x3) + +inst_370: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x3, x1, 84*XLEN/8, x3) + +inst_371: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 85*XLEN/8, x3) + +inst_372: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 86*XLEN/8, x3) + +inst_373: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x5, x1, 87*XLEN/8, x3) + +inst_374: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 88*XLEN/8, x3) + +inst_375: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 89*XLEN/8, x3) + +inst_376: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 90*XLEN/8, x3) + +inst_377: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 91*XLEN/8, x3) + +inst_378: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x2, x1, 92*XLEN/8, x3) + +inst_379: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 93*XLEN/8, x3) + +inst_380: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x0, x1, 94*XLEN/8, x3) + +inst_381: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x4, x1, 95*XLEN/8, x3) + +inst_382: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 96*XLEN/8, x3) + +inst_383: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 97*XLEN/8, x3) + +inst_384: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 98*XLEN/8, x3) + +inst_385: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 99*XLEN/8, x3) + +inst_386: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 100*XLEN/8, x3) + +inst_387: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x6, x1, 101*XLEN/8, x3) + +inst_388: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 102*XLEN/8, x3) + +inst_389: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 103*XLEN/8, x3) + +inst_390: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 104*XLEN/8, x3) + +inst_391: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 105*XLEN/8, x3) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 106*XLEN/8, x3) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 107*XLEN/8, x3) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 108*XLEN/8, x3) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 109*XLEN/8, x3) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 110*XLEN/8, x3) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 111*XLEN/8, x3) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 112*XLEN/8, x3) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 113*XLEN/8, x3) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 114*XLEN/8, x3) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 115*XLEN/8, x3) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 116*XLEN/8, x3) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 117*XLEN/8, x3) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 118*XLEN/8, x3) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 119*XLEN/8, x3) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 120*XLEN/8, x3) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 121*XLEN/8, x3) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 122*XLEN/8, x3) + +inst_409: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 123*XLEN/8, x3) + +inst_410: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 124*XLEN/8, x3) + +inst_411: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 125*XLEN/8, x3) + +inst_412: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 126*XLEN/8, x3) + +inst_413: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 127*XLEN/8, x3) + +inst_414: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x3, x1, 128*XLEN/8, x3) + +inst_415: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 129*XLEN/8, x3) + +inst_416: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 130*XLEN/8, x3) + +inst_417: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x5, x1, 131*XLEN/8, x3) + +inst_418: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 132*XLEN/8, x3) + +inst_419: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 133*XLEN/8, x3) + +inst_420: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 134*XLEN/8, x3) + +inst_421: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 135*XLEN/8, x3) + +inst_422: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 136*XLEN/8, x3) + +inst_423: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 137*XLEN/8, x3) + +inst_424: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x3, x1, 138*XLEN/8, x3) + +inst_425: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 139*XLEN/8, x3) + +inst_426: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 140*XLEN/8, x3) + +inst_427: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x5, x1, 141*XLEN/8, x3) + +inst_428: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 142*XLEN/8, x3) + +inst_429: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 143*XLEN/8, x3) + +inst_430: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 144*XLEN/8, x3) + +inst_431: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 145*XLEN/8, x3) + +inst_432: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x2, x1, 146*XLEN/8, x3) + +inst_433: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 147*XLEN/8, x3) + +inst_434: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x0, x1, 148*XLEN/8, x3) + +inst_435: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x4, x1, 149*XLEN/8, x3) + +inst_436: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 150*XLEN/8, x3) + +inst_437: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 151*XLEN/8, x3) + +inst_438: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 152*XLEN/8, x3) + +inst_439: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 153*XLEN/8, x3) + +inst_440: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 154*XLEN/8, x3) + +inst_441: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x6, x1, 155*XLEN/8, x3) + +inst_442: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 156*XLEN/8, x3) + +inst_443: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 157*XLEN/8, x3) + +inst_444: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 158*XLEN/8, x3) + +inst_445: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 159*XLEN/8, x3) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 160*XLEN/8, x3) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 161*XLEN/8, x3) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 162*XLEN/8, x3) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 163*XLEN/8, x3) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 164*XLEN/8, x3) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 165*XLEN/8, x3) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 166*XLEN/8, x3) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 167*XLEN/8, x3) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 168*XLEN/8, x3) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 169*XLEN/8, x3) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 170*XLEN/8, x3) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 171*XLEN/8, x3) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 172*XLEN/8, x3) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 173*XLEN/8, x3) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 174*XLEN/8, x3) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 175*XLEN/8, x3) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 176*XLEN/8, x3) + +inst_463: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 177*XLEN/8, x3) + +inst_464: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 178*XLEN/8, x3) + +inst_465: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 179*XLEN/8, x3) + +inst_466: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 180*XLEN/8, x3) + +inst_467: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 181*XLEN/8, x3) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 182*XLEN/8, x3) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 183*XLEN/8, x3) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 184*XLEN/8, x3) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 185*XLEN/8, x3) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 186*XLEN/8, x3) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 187*XLEN/8, x3) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 188*XLEN/8, x3) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 189*XLEN/8, x3) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 190*XLEN/8, x3) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 191*XLEN/8, x3) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 192*XLEN/8, x3) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 193*XLEN/8, x3) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 194*XLEN/8, x3) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 195*XLEN/8, x3) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 196*XLEN/8, x3) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 197*XLEN/8, x3) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 198*XLEN/8, x3) + +inst_485: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 199*XLEN/8, x3) + +inst_486: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 200*XLEN/8, x3) + +inst_487: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 201*XLEN/8, x3) + +inst_488: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 202*XLEN/8, x3) + +inst_489: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 203*XLEN/8, x3) + +inst_490: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 204*XLEN/8, x3) + +inst_491: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 205*XLEN/8, x3) + +inst_492: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 206*XLEN/8, x3) + +inst_493: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 207*XLEN/8, x3) + +inst_494: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 208*XLEN/8, x3) + +inst_495: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 209*XLEN/8, x3) + +inst_496: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 210*XLEN/8, x3) + +inst_497: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 211*XLEN/8, x3) + +inst_498: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 212*XLEN/8, x3) + +inst_499: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 213*XLEN/8, x3) + +inst_500: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 214*XLEN/8, x3) + +inst_501: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 215*XLEN/8, x3) + +inst_502: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 216*XLEN/8, x3) + +inst_503: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 217*XLEN/8, x3) + +inst_504: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 218*XLEN/8, x3) + +inst_505: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 219*XLEN/8, x3) + +inst_506: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 220*XLEN/8, x3) + +inst_507: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 221*XLEN/8, x3) + +inst_508: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 222*XLEN/8, x3) + +inst_509: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 223*XLEN/8, x3) + +inst_510: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 224*XLEN/8, x3) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 225*XLEN/8, x3) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 226*XLEN/8, x3) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 227*XLEN/8, x3) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 228*XLEN/8, x3) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 229*XLEN/8, x3) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 230*XLEN/8, x3) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 231*XLEN/8, x3) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 232*XLEN/8, x3) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 233*XLEN/8, x3) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 234*XLEN/8, x3) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 235*XLEN/8, x3) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 236*XLEN/8, x3) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 237*XLEN/8, x3) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 238*XLEN/8, x3) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 239*XLEN/8, x3) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 240*XLEN/8, x3) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 241*XLEN/8, x3) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 242*XLEN/8, x3) + +inst_529: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 243*XLEN/8, x3) + +inst_530: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 244*XLEN/8, x3) + +inst_531: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 245*XLEN/8, x3) + +inst_532: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 246*XLEN/8, x3) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 247*XLEN/8, x3) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 248*XLEN/8, x3) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 249*XLEN/8, x3) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 250*XLEN/8, x3) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 251*XLEN/8, x3) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 252*XLEN/8, x3) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 253*XLEN/8, x3) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 254*XLEN/8, x3) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 255*XLEN/8, x3) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 0*XLEN/8, x3) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 1*XLEN/8, x3) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 2*XLEN/8, x3) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 3*XLEN/8, x3) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 4*XLEN/8, x3) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 5*XLEN/8, x3) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 6*XLEN/8, x3) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 7*XLEN/8, x3) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 8*XLEN/8, x3) + +inst_551: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 9*XLEN/8, x3) + +inst_552: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 10*XLEN/8, x3) + +inst_553: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 11*XLEN/8, x3) + +inst_554: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 12*XLEN/8, x3) + +inst_555: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x3, x1, 13*XLEN/8, x3) + +inst_556: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 14*XLEN/8, x3) + +inst_557: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 15*XLEN/8, x3) + +inst_558: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x5, x1, 16*XLEN/8, x3) + +inst_559: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 17*XLEN/8, x3) + +inst_560: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 18*XLEN/8, x3) + +inst_561: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 19*XLEN/8, x3) + +inst_562: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 20*XLEN/8, x3) + +inst_563: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x2, x1, 21*XLEN/8, x3) + +inst_564: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 22*XLEN/8, x3) + +inst_565: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x0, x1, 23*XLEN/8, x3) + +inst_566: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x4, x1, 24*XLEN/8, x3) + +inst_567: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 25*XLEN/8, x3) + +inst_568: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 26*XLEN/8, x3) + +inst_569: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 27*XLEN/8, x3) + +inst_570: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 28*XLEN/8, x3) + +inst_571: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 29*XLEN/8, x3) + +inst_572: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x6, x1, 30*XLEN/8, x3) + +inst_573: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 31*XLEN/8, x3) + +inst_574: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 32*XLEN/8, x3) + +inst_575: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 33*XLEN/8, x3) + +inst_576: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 34*XLEN/8, x3) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 35*XLEN/8, x3) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 36*XLEN/8, x3) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 37*XLEN/8, x3) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 38*XLEN/8, x3) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 39*XLEN/8, x3) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 40*XLEN/8, x3) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 41*XLEN/8, x3) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 42*XLEN/8, x3) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 43*XLEN/8, x3) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 44*XLEN/8, x3) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 45*XLEN/8, x3) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 46*XLEN/8, x3) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 47*XLEN/8, x3) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 48*XLEN/8, x3) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 49*XLEN/8, x3) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 50*XLEN/8, x3) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 51*XLEN/8, x3) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 52*XLEN/8, x3) + +inst_595: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 53*XLEN/8, x3) + +inst_596: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 54*XLEN/8, x3) + +inst_597: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 55*XLEN/8, x3) + +inst_598: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 56*XLEN/8, x3) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 57*XLEN/8, x3) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 58*XLEN/8, x3) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 59*XLEN/8, x3) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 60*XLEN/8, x3) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 61*XLEN/8, x3) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 62*XLEN/8, x3) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 63*XLEN/8, x3) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 64*XLEN/8, x3) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 65*XLEN/8, x3) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 66*XLEN/8, x3) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 67*XLEN/8, x3) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 68*XLEN/8, x3) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 69*XLEN/8, x3) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 70*XLEN/8, x3) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 71*XLEN/8, x3) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 72*XLEN/8, x3) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 73*XLEN/8, x3) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 74*XLEN/8, x3) + +inst_617: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 75*XLEN/8, x3) + +inst_618: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 76*XLEN/8, x3) + +inst_619: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 77*XLEN/8, x3) + +inst_620: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 78*XLEN/8, x3) + +inst_621: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 79*XLEN/8, x3) + +inst_622: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 80*XLEN/8, x3) + +inst_623: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 81*XLEN/8, x3) + +inst_624: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 82*XLEN/8, x3) + +inst_625: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 83*XLEN/8, x3) + +inst_626: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 84*XLEN/8, x3) + +inst_627: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 85*XLEN/8, x3) + +inst_628: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 86*XLEN/8, x3) + +inst_629: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 87*XLEN/8, x3) + +inst_630: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 88*XLEN/8, x3) + +inst_631: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 89*XLEN/8, x3) + +inst_632: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 90*XLEN/8, x3) + +inst_633: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 91*XLEN/8, x3) + +inst_634: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 92*XLEN/8, x3) + +inst_635: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 93*XLEN/8, x3) + +inst_636: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 94*XLEN/8, x3) + +inst_637: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 95*XLEN/8, x3) + +inst_638: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 96*XLEN/8, x3) + +inst_639: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 97*XLEN/8, x3) + +inst_640: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 98*XLEN/8, x3) + +inst_641: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 99*XLEN/8, x3) + +inst_642: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 100*XLEN/8, x3) + +inst_643: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 101*XLEN/8, x3) + +inst_644: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 102*XLEN/8, x3) + +inst_645: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 103*XLEN/8, x3) + +inst_646: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 104*XLEN/8, x3) + +inst_647: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 105*XLEN/8, x3) + +inst_648: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 106*XLEN/8, x3) + +inst_649: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 107*XLEN/8, x3) + +inst_650: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 108*XLEN/8, x3) + +inst_651: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 109*XLEN/8, x3) + +inst_652: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 110*XLEN/8, x3) + +inst_653: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 111*XLEN/8, x3) + +inst_654: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 112*XLEN/8, x3) + +inst_655: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 113*XLEN/8, x3) + +inst_656: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 114*XLEN/8, x3) + +inst_657: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 115*XLEN/8, x3) + +inst_658: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 116*XLEN/8, x3) + +inst_659: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 117*XLEN/8, x3) + +inst_660: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 118*XLEN/8, x3) + +inst_661: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 119*XLEN/8, x3) + +inst_662: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 120*XLEN/8, x3) + +inst_663: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 121*XLEN/8, x3) + +inst_664: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 122*XLEN/8, x3) + +inst_665: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x2, x1, 123*XLEN/8, x3) + +inst_666: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 124*XLEN/8, x3) + +inst_667: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x0, x1, 125*XLEN/8, x3) + +inst_668: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x4, x1, 126*XLEN/8, x3) + +inst_669: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 127*XLEN/8, x3) + +inst_670: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 128*XLEN/8, x3) + +inst_671: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 129*XLEN/8, x3) + +inst_672: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 130*XLEN/8, x3) + +inst_673: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 131*XLEN/8, x3) + +inst_674: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x6, x1, 132*XLEN/8, x3) + +inst_675: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 133*XLEN/8, x3) + +inst_676: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 134*XLEN/8, x3) + +inst_677: +// rs1_val == (2**(xlen-1)-1), rs2_val == -144115188075855873, rs1_val > 0 and rs2_val < 0, rs1_val == 9223372036854775807 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x7fffffffffffffff, -0x200000000000001, x1, 135*XLEN/8, x3) + +inst_678: +// rs2_val == -65537, rs1_val == -1025 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x10001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, -0x401, -0x10001, x1, 136*XLEN/8, x3) + +inst_679: +// rs2_val == -4194305, rs1_val == 32 +// opcode: mop.rr.4 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x400001 +TEST_RR_OP(mop.rr.4, x31, x30, x29, 0, 0x20, -0x400001, x1, 137*XLEN/8, x3) +#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_x2_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x8_0: + .fill 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 138*((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/Zimop/src/mop.rr.5-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.5-01.S new file mode 100644 index 000000000..169bfd60d --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.5-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 : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.5 instruction of the RISC-V RV64Zimop extension for the mop.rr.5 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.5) + +RVTEST_SIGBASE(x14,signature_x14_1) + +inst_0: +// rs1 == rd != rs2, rs1==x1, rs2==x13, rd==x1, rs1_val != rs2_val, rs1_val < 0 and rs2_val < 0, rs2_val == -33 +// opcode: mop.rr.5 ; op1:x1; op2:x13; dest:x1; op1val:-0xb504f333; op2val:-0x21 +TEST_RR_OP(mop.rr.5, x1, x1, x13, 0, -0xb504f333, -0x21, x14, 0*XLEN/8, x12) + +inst_1: +// rs2 == rd != rs1, rs1==x17, rs2==x27, rd==x27, rs1_val < 0 and rs2_val > 0, rs1_val == -1048577, rs2_val == 16384 +// opcode: mop.rr.5 ; op1:x17; op2:x27; dest:x27; op1val:-0x100001; op2val:0x4000 +TEST_RR_OP(mop.rr.5, x27, x17, x27, 0, -0x100001, 0x4000, x14, 1*XLEN/8, x12) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x26, rs2==x19, rd==x9, rs1_val == (-2**(xlen-1)), rs2_val == -9007199254740993, rs1_val == -9223372036854775808 +// opcode: mop.rr.5 ; op1:x26; op2:x19; dest:x9; op1val:-0x8000000000000000; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.5, x9, x26, x19, 0, -0x8000000000000000, -0x20000000000001, x14, 2*XLEN/8, x12) + +inst_3: +// rs1 == rs2 != rd, rs1==x7, rs2==x7, rd==x26, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val > 0, rs1_val == 9223372036854775807 +// opcode: mop.rr.5 ; op1:x7; op2:x7; dest:x26; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.5, x26, x7, x7, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x14, 3*XLEN/8, x12) + +inst_4: +// rs1 == rs2 == rd, rs1==x11, rs2==x11, rd==x11, rs1_val == 0, rs2_val == -32769 +// opcode: mop.rr.5 ; op1:x11; op2:x11; dest:x11; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.5, x11, x11, x11, 0, 0x0, 0x0, x14, 4*XLEN/8, x12) + +inst_5: +// rs1==x6, rs2==x15, rd==x0, rs1_val == 1, +// opcode: mop.rr.5 ; op1:x6; op2:x15; dest:x0; op1val:0x1; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x0, x6, x15, 0, 0x1, 0x6666666666666665, x14, 5*XLEN/8, x12) + +inst_6: +// rs1==x19, rs2==x18, rd==x25, rs2_val == -2, rs1_val > 0 and rs2_val < 0, rs1_val == 4611686018427387904 +// opcode: mop.rr.5 ; op1:x19; op2:x18; dest:x25; op1val:0x4000000000000000; op2val:-0x2 +TEST_RR_OP(mop.rr.5, x25, x19, x18, 0, 0x4000000000000000, -0x2, x14, 6*XLEN/8, x12) + +inst_7: +// rs1==x21, rs2==x25, rd==x10, rs2_val == -3, rs1_val == -2 +// opcode: mop.rr.5 ; op1:x21; op2:x25; dest:x10; op1val:-0x2; op2val:-0x3 +TEST_RR_OP(mop.rr.5, x10, x21, x25, 0, -0x2, -0x3, x14, 7*XLEN/8, x12) + +inst_8: +// rs1==x5, rs2==x10, rd==x8, rs2_val == -5, +// opcode: mop.rr.5 ; op1:x5; op2:x10; dest:x8; op1val:-0x8000000000000000; op2val:-0x5 +TEST_RR_OP(mop.rr.5, x8, x5, x10, 0, -0x8000000000000000, -0x5, x14, 8*XLEN/8, x12) + +inst_9: +// rs1==x16, rs2==x29, rd==x4, rs2_val == -9, rs1_val == 68719476736 +// opcode: mop.rr.5 ; op1:x16; op2:x29; dest:x4; op1val:0x1000000000; op2val:-0x9 +TEST_RR_OP(mop.rr.5, x4, x16, x29, 0, 0x1000000000, -0x9, x14, 9*XLEN/8, x12) + +inst_10: +// rs1==x9, rs2==x28, rd==x31, rs2_val == -17, rs1_val == -67108865 +// opcode: mop.rr.5 ; op1:x9; op2:x28; dest:x31; op1val:-0x4000001; op2val:-0x11 +TEST_RR_OP(mop.rr.5, x31, x9, x28, 0, -0x4000001, -0x11, x14, 10*XLEN/8, x12) + +inst_11: +// rs1==x18, rs2==x16, rd==x17, rs2_val == -65, rs1_val == -3 +// opcode: mop.rr.5 ; op1:x18; op2:x16; dest:x17; op1val:-0x3; op2val:-0x41 +TEST_RR_OP(mop.rr.5, x17, x18, x16, 0, -0x3, -0x41, x14, 11*XLEN/8, x12) + +inst_12: +// rs1==x22, rs2==x5, rd==x2, rs2_val == -129, rs1_val == 134217728 +// opcode: mop.rr.5 ; op1:x22; op2:x5; dest:x2; op1val:0x8000000; op2val:-0x81 +TEST_RR_OP(mop.rr.5, x2, x22, x5, 0, 0x8000000, -0x81, x14, 12*XLEN/8, x12) + +inst_13: +// rs1==x8, rs2==x3, rd==x21, rs2_val == -257, +// opcode: mop.rr.5 ; op1:x8; op2:x3; dest:x21; op1val:0x9; op2val:-0x101 +TEST_RR_OP(mop.rr.5, x21, x8, x3, 0, 0x9, -0x101, x14, 13*XLEN/8, x12) + +inst_14: +// rs1==x24, rs2==x12, rd==x28, rs2_val == -513, rs1_val == -16777217 +// opcode: mop.rr.5 ; op1:x24; op2:x12; dest:x28; op1val:-0x1000001; op2val:-0x201 +TEST_RR_OP(mop.rr.5, x28, x24, x12, 0, -0x1000001, -0x201, x14, 14*XLEN/8, x19) +RVTEST_SIGBASE(x11,signature_x11_0) + +inst_15: +// rs1==x12, rs2==x6, rd==x7, rs2_val == -1025, rs1_val == -33 +// opcode: mop.rr.5 ; op1:x12; op2:x6; dest:x7; op1val:-0x21; op2val:-0x401 +TEST_RR_OP(mop.rr.5, x7, x12, x6, 0, -0x21, -0x401, x11, 0*XLEN/8, x19) + +inst_16: +// rs1==x10, rs2==x8, rd==x20, rs2_val == -2049, rs1_val == -5 +// opcode: mop.rr.5 ; op1:x10; op2:x8; dest:x20; op1val:-0x5; op2val:-0x801 +TEST_RR_OP(mop.rr.5, x20, x10, x8, 0, -0x5, -0x801, x11, 1*XLEN/8, x19) + +inst_17: +// rs1==x30, rs2==x23, rd==x18, rs2_val == -4097, +// opcode: mop.rr.5 ; op1:x30; op2:x23; dest:x18; op1val:0x8000000; op2val:-0x1001 +TEST_RR_OP(mop.rr.5, x18, x30, x23, 0, 0x8000000, -0x1001, x11, 2*XLEN/8, x19) + +inst_18: +// rs1==x15, rs2==x31, rd==x6, rs2_val == -8193, rs1_val == 32 +// opcode: mop.rr.5 ; op1:x15; op2:x31; dest:x6; op1val:0x20; op2val:-0x2001 +TEST_RR_OP(mop.rr.5, x6, x15, x31, 0, 0x20, -0x2001, x11, 3*XLEN/8, x19) + +inst_19: +// rs1==x27, rs2==x30, rd==x3, rs2_val == -16385, +// opcode: mop.rr.5 ; op1:x27; op2:x30; dest:x3; op1val:0x8000000; op2val:-0x4001 +TEST_RR_OP(mop.rr.5, x3, x27, x30, 0, 0x8000000, -0x4001, x11, 4*XLEN/8, x19) + +inst_20: +// rs1==x4, rs2==x14, rd==x15, rs2_val == -65537, rs1_val == 4398046511104 +// opcode: mop.rr.5 ; op1:x4; op2:x14; dest:x15; op1val:0x40000000000; op2val:-0x10001 +TEST_RR_OP(mop.rr.5, x15, x4, x14, 0, 0x40000000000, -0x10001, x11, 5*XLEN/8, x19) + +inst_21: +// rs1==x23, rs2==x0, rd==x29, rs2_val == -131073, rs1_val == -68719476737 +// opcode: mop.rr.5 ; op1:x23; op2:x0; dest:x29; op1val:-0x1000000001; op2val:0x0 +TEST_RR_OP(mop.rr.5, x29, x23, x0, 0, -0x1000000001, 0x0, x11, 6*XLEN/8, x19) + +inst_22: +// rs1==x31, rs2==x4, rd==x5, rs2_val == -262145, rs1_val == 4503599627370496 +// opcode: mop.rr.5 ; op1:x31; op2:x4; dest:x5; op1val:0x10000000000000; op2val:-0x40001 +TEST_RR_OP(mop.rr.5, x5, x31, x4, 0, 0x10000000000000, -0x40001, x11, 7*XLEN/8, x19) + +inst_23: +// rs1==x14, rs2==x22, rd==x12, rs2_val == -524289, rs1_val == 70368744177664 +// opcode: mop.rr.5 ; op1:x14; op2:x22; dest:x12; op1val:0x400000000000; op2val:-0x80001 +TEST_RR_OP(mop.rr.5, x12, x14, x22, 0, 0x400000000000, -0x80001, x11, 8*XLEN/8, x19) + +inst_24: +// rs1==x28, rs2==x2, rd==x13, rs2_val == -1048577, rs1_val == 4096 +// opcode: mop.rr.5 ; op1:x28; op2:x2; dest:x13; op1val:0x1000; op2val:-0x100001 +TEST_RR_OP(mop.rr.5, x13, x28, x2, 0, 0x1000, -0x100001, x11, 9*XLEN/8, x19) + +inst_25: +// rs1==x0, rs2==x24, rd==x23, rs2_val == -2097153, rs1_val == 35184372088832 +// opcode: mop.rr.5 ; op1:x0; op2:x24; dest:x23; op1val:0x0; op2val:-0x200001 +TEST_RR_OP(mop.rr.5, x23, x0, x24, 0, 0x0, -0x200001, x11, 10*XLEN/8, x19) + +inst_26: +// rs1==x2, rs2==x9, rd==x22, rs2_val == -4194305, rs1_val == 6148914691236517205 +// opcode: mop.rr.5 ; op1:x2; op2:x9; dest:x22; op1val:0x5555555555555555; op2val:-0x400001 +TEST_RR_OP(mop.rr.5, x22, x2, x9, 0, 0x5555555555555555, -0x400001, x11, 11*XLEN/8, x19) + +inst_27: +// rs1==x3, rs2==x1, rd==x24, rs2_val == -8388609, rs1_val == -513 +// opcode: mop.rr.5 ; op1:x3; op2:x1; dest:x24; op1val:-0x201; op2val:-0x800001 +TEST_RR_OP(mop.rr.5, x24, x3, x1, 0, -0x201, -0x800001, x11, 12*XLEN/8, x19) + +inst_28: +// rs1==x20, rs2==x17, rd==x16, rs2_val == -16777217, rs1_val == 16384 +// opcode: mop.rr.5 ; op1:x20; op2:x17; dest:x16; op1val:0x4000; op2val:-0x1000001 +TEST_RR_OP(mop.rr.5, x16, x20, x17, 0, 0x4000, -0x1000001, x11, 13*XLEN/8, x19) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_29: +// rs1==x25, rs2==x20, rd==x14, rs2_val == -33554433, rs1_val == 4 +// opcode: mop.rr.5 ; op1:x25; op2:x20; dest:x14; op1val:0x4; op2val:-0x2000001 +TEST_RR_OP(mop.rr.5, x14, x25, x20, 0, 0x4, -0x2000001, x1, 0*XLEN/8, x2) + +inst_30: +// rs1==x29, rs2==x26, rd==x30, rs2_val == -67108865, rs1_val == -4097 +// opcode: mop.rr.5 ; op1:x29; op2:x26; dest:x30; op1val:-0x1001; op2val:-0x4000001 +TEST_RR_OP(mop.rr.5, x30, x29, x26, 0, -0x1001, -0x4000001, x1, 1*XLEN/8, x2) + +inst_31: +// rs1==x13, rs2==x21, rd==x19, rs2_val == -134217729, rs1_val == -257 +// opcode: mop.rr.5 ; op1:x13; op2:x21; dest:x19; op1val:-0x101; op2val:-0x8000001 +TEST_RR_OP(mop.rr.5, x19, x13, x21, 0, -0x101, -0x8000001, x1, 2*XLEN/8, x2) + +inst_32: +// rs2_val == -268435457, rs1_val == -6148914691236517206 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x10000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, -0x10000001, x1, 3*XLEN/8, x2) + +inst_33: +// rs2_val == -536870913, rs1_val == 32768 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8000, -0x20000001, x1, 4*XLEN/8, x2) + +inst_34: +// rs2_val == -1073741825, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:-0x40000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000001, -0x40000001, x1, 5*XLEN/8, x2) + +inst_35: +// rs2_val == -2147483649, rs1_val == 1024 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:-0x80000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x400, -0x80000001, x1, 6*XLEN/8, x2) + +inst_36: +// rs2_val == -4294967297, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x100000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000, -0x100000001, x1, 7*XLEN/8, x2) + +inst_37: +// rs2_val == -8589934593, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:-0x200000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000000000000000, -0x200000001, x1, 8*XLEN/8, x2) + +inst_38: +// rs2_val == -17179869185, rs1_val == -35184372088833 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x400000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x200000000001, -0x400000001, x1, 9*XLEN/8, x2) + +inst_39: +// rs2_val == -34359738369, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:-0x800000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1000000000, -0x800000001, x1, 10*XLEN/8, x2) + +inst_40: +// rs2_val == -68719476737, rs1_val == -131073 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20001, -0x1000000001, x1, 11*XLEN/8, x2) + +inst_41: +// rs2_val == -137438953473, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, -0x2000000001, x1, 12*XLEN/8, x2) + +inst_42: +// rs2_val == -274877906945, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000001, -0x4000000001, x1, 13*XLEN/8, x2) + +inst_43: +// rs2_val == -549755813889, rs1_val == 2 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0x8000000001, x1, 14*XLEN/8, x2) + +inst_44: +// rs2_val == -1099511627777, rs1_val == -9007199254740993 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20000000000001, -0x10000000001, x1, 15*XLEN/8, x2) + +inst_45: +// rs2_val == -2199023255553, rs1_val == -2147483649 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000001, -0x20000000001, x1, 16*XLEN/8, x2) + +inst_46: +// rs2_val == -4398046511105, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, -0x40000000001, x1, 17*XLEN/8, x2) + +inst_47: +// rs2_val == -8796093022209, rs1_val == 288230376151711744 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x400000000000000, -0x80000000001, x1, 18*XLEN/8, x2) + +inst_48: +// rs2_val == -17592186044417, rs1_val == 8388608 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800000, -0x100000000001, x1, 19*XLEN/8, x2) + +inst_49: +// rs2_val == -35184372088833, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, -0x200000000001, x1, 20*XLEN/8, x2) + +inst_50: +// rs2_val == -70368744177665, rs1_val == -2305843009213693953 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000000000001, -0x400000000001, x1, 21*XLEN/8, x2) + +inst_51: +// rs2_val == -140737488355329, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20000000000001, -0x800000000001, x1, 22*XLEN/8, x2) + +inst_52: +// rs2_val == -281474976710657, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8000, -0x1000000000001, x1, 23*XLEN/8, x2) + +inst_53: +// rs2_val == -562949953421313, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0x2000000000001, x1, 24*XLEN/8, x2) + +inst_54: +// rs2_val == -1125899906842625, rs1_val == 2097152 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200000, -0x4000000000001, x1, 25*XLEN/8, x2) + +inst_55: +// rs2_val == -2251799813685249, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, -0x8000000000001, x1, 26*XLEN/8, x2) + +inst_56: +// rs2_val == -4503599627370497, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, -0x10000000000001, x1, 27*XLEN/8, x2) + +inst_57: +// rs2_val == -18014398509481985, rs1_val == 1099511627776 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x10000000000, -0x40000000000001, x1, 28*XLEN/8, x2) + +inst_58: +// rs2_val == -36028797018963969, rs1_val == 9007199254740992 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20000000000000, -0x80000000000001, x1, 29*XLEN/8, x2) + +inst_59: +// rs2_val == -72057594037927937, rs1_val == -1073741825 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000001, -0x100000000000001, x1, 30*XLEN/8, x2) + +inst_60: +// rs2_val == -144115188075855873, rs1_val == -33554433 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000001, -0x200000000000001, x1, 31*XLEN/8, x2) + +inst_61: +// rs2_val == -288230376151711745, rs1_val == -8589934593 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x200000001, -0x400000000000001, x1, 32*XLEN/8, x2) + +inst_62: +// rs2_val == -576460752303423489, rs1_val == 67108864 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000000, -0x800000000000001, x1, 33*XLEN/8, x2) + +inst_63: +// rs2_val == -1152921504606846977, rs1_val == -4398046511105 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000000001, -0x1000000000000001, x1, 34*XLEN/8, x2) + +inst_64: +// rs2_val == -2305843009213693953, rs1_val == -17 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x11, -0x2000000000000001, x1, 35*XLEN/8, x2) + +inst_65: +// rs2_val == -4611686018427387905, rs1_val == -1152921504606846977 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x1000000000000001, -0x4000000000000001, x1, 36*XLEN/8, x2) + +inst_66: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000000, 0x7fffffffffffffff, x1, 37*XLEN/8, x2) + +inst_67: +// rs1_val == -9, rs2_val == 4 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x9, 0x4, x1, 38*XLEN/8, x2) + +inst_68: +// rs1_val == -65, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x41, -0x1000000000001, x1, 39*XLEN/8, x2) + +inst_69: +// rs1_val == -129, rs2_val == 1024 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x400 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x81, 0x400, x1, 40*XLEN/8, x2) + +inst_70: +// rs1_val == -1025, rs2_val == 17179869184 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x400000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x401, 0x400000000, x1, 41*XLEN/8, x2) + +inst_71: +// rs1_val == -2049, rs2_val == 32 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x20 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x801, 0x20, x1, 42*XLEN/8, x2) + +inst_72: +// rs1_val == -8193, rs2_val == 0 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2001, 0x0, x1, 43*XLEN/8, x2) + +inst_73: +// rs1_val == -16385, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4001, -0x2, x1, 44*XLEN/8, x2) + +inst_74: +// rs1_val == -32769, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8001, -0x100000000001, x1, 45*XLEN/8, x2) + +inst_75: +// rs1_val == -65537, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10001, -0x8000000001, x1, 46*XLEN/8, x2) + +inst_76: +// rs1_val == -262145, rs2_val == 6148914691236517205 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40001, 0x5555555555555555, x1, 47*XLEN/8, x2) + +inst_77: +// rs1_val == -524289, rs2_val == 1099511627776 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x10000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80001, 0x10000000000, x1, 48*XLEN/8, x2) + +inst_78: +// rs1_val == -2097153, rs2_val == 8192 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x2000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x200001, 0x2000, x1, 49*XLEN/8, x2) + +inst_79: +// rs1_val == -4194305, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x400001, -0x4000000000000001, x1, 50*XLEN/8, x2) + +inst_80: +// rs1_val == -8388609, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0x8 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x800001, -0x8, x1, 51*XLEN/8, x2) + +inst_81: +// rs1_val == -134217729, rs2_val == 1 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x1 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8000001, 0x1, x1, 52*XLEN/8, x2) + +inst_82: +// rs1_val == -268435457, rs2_val == 137438953472 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x2000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10000001, 0x2000000000, x1, 53*XLEN/8, x2) + +inst_83: +// rs1_val == -536870913, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20000001, 0x6, x1, 54*XLEN/8, x2) + +inst_84: +// rs1_val == -4294967297, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x100000001, -0x2000000000001, x1, 55*XLEN/8, x2) + +inst_85: +// rs1_val == -17179869185, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x400000001, 0x6666666666666667, x1, 56*XLEN/8, x2) + +inst_86: +// rs1_val == -34359738369, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x800000001, 0x0, x1, 57*XLEN/8, x2) + +inst_87: +// rs1_val == -137438953473, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:-0x41 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000001, -0x41, x1, 58*XLEN/8, x2) + +inst_88: +// rs1_val == -274877906945, rs2_val == 34359738368 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x800000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000000001, 0x800000000, x1, 59*XLEN/8, x2) + +inst_89: +// rs1_val == -549755813889, rs2_val == 2199023255552 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:0x20000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8000000001, 0x20000000000, x1, 60*XLEN/8, x2) + +inst_90: +// rs1_val == -1099511627777, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10000000001, -0x800000000001, x1, 61*XLEN/8, x2) + +inst_91: +// rs1_val == -2199023255553, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x20000000001, -0x100000001, x1, 62*XLEN/8, x2) + +inst_92: +// rs1_val == -8796093022209, rs2_val == 288230376151711744 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000001; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000000001, 0x400000000000000, x1, 63*XLEN/8, x2) + +inst_93: +// rs1_val == -17592186044417, rs2_val == 4096 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:0x1000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x100000000001, 0x1000, x1, 64*XLEN/8, x2) + +inst_94: +// rs1_val == -70368744177665, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x400000000001, -0x1000000000000001, x1, 65*XLEN/8, x2) + +inst_95: +// rs1_val == -140737488355329, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x800000000001, -0x100000001, x1, 66*XLEN/8, x2) + +inst_96: +// rs1_val == -281474976710657, rs2_val == 16 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:0x10 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x1000000000001, 0x10, x1, 67*XLEN/8, x2) + +inst_97: +// rs1_val == -562949953421313, rs2_val == 8 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x8 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000000001, 0x8, x1, 68*XLEN/8, x2) + +inst_98: +// rs1_val == -1125899906842625, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000000000001, -0x40000000000001, x1, 69*XLEN/8, x2) + +inst_99: +// rs1_val == -2251799813685249, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8000000000001, -0x1000000001, x1, 70*XLEN/8, x2) + +inst_100: +// rs1_val == -4503599627370497, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10000000000001, 0x3, x1, 71*XLEN/8, x2) + +inst_101: +// rs1_val == -18014398509481985, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000000000001, -0x1000000000001, x1, 72*XLEN/8, x2) + +inst_102: +// rs1_val == -36028797018963969, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:-0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000000000001, -0x4, x1, 73*XLEN/8, x2) + +inst_103: +// rs1_val == -72057594037927937, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:-0x8000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x100000000000001, -0x8000001, x1, 74*XLEN/8, x2) + +inst_104: +// rs1_val == -144115188075855873, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:-0x7 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x200000000000001, -0x7, x1, 75*XLEN/8, x2) + +inst_105: +// rs1_val == -288230376151711745, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x400000000000001, -0x20000000000001, x1, 76*XLEN/8, x2) + +inst_106: +// rs1_val == -576460752303423489, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x800000000000001, 0x400000000000000, x1, 77*XLEN/8, x2) + +inst_107: +// rs1_val == -4611686018427387905, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4000000000000001, -0x20000000001, x1, 78*XLEN/8, x2) + +inst_108: +// rs2_val == 2, rs1_val == 512 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200, 0x2, x1, 79*XLEN/8, x2) + +inst_109: +// rs2_val == 64, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x40 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000000001, 0x40, x1, 80*XLEN/8, x2) + +inst_110: +// rs2_val == 128, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x80 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x80, x1, 81*XLEN/8, x2) + +inst_111: +// rs2_val == 256, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x100 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2001, 0x100, x1, 82*XLEN/8, x2) + +inst_112: +// rs2_val == 512, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:0x200 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000001, 0x200, x1, 83*XLEN/8, x2) + +inst_113: +// rs2_val == 2048, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x800 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000000001, 0x800, x1, 84*XLEN/8, x2) + +inst_114: +// rs2_val == 32768, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x8000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000000000001, 0x8000, x1, 85*XLEN/8, x2) + +inst_115: +// rs2_val == 65536, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x10000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x10000, x1, 86*XLEN/8, x2) + +inst_116: +// rs2_val == 131072, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x20000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x20000, x1, 87*XLEN/8, x2) + +inst_117: +// rs2_val == 262144, rs1_val == 18014398509481984 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:0x40000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x40000000000000, 0x40000, x1, 88*XLEN/8, x2) + +inst_118: +// rs2_val == 524288, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x80000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x201, 0x80000, x1, 89*XLEN/8, x2) + +inst_119: +// rs2_val == 1048576, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x100000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x800001, 0x100000, x1, 90*XLEN/8, x2) + +inst_120: +// rs2_val == 2097152, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x200000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10000001, 0x200000, x1, 91*XLEN/8, x2) + +inst_121: +// rs2_val == 4194304, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x400000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x400000, x1, 92*XLEN/8, x2) + +inst_122: +// rs2_val == 8388608, rs1_val == 8589934592 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:0x800000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200000000, 0x800000, x1, 93*XLEN/8, x2) + +inst_123: +// rs2_val == 16777216, rs1_val == 8796093022208 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x1000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000000000, 0x1000000, x1, 94*XLEN/8, x2) + +inst_124: +// rs2_val == 33554432, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x2000000, x1, 95*XLEN/8, x2) + +inst_125: +// rs2_val == 67108864, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x4000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x40000001, 0x4000000, x1, 96*XLEN/8, x2) + +inst_126: +// rs2_val == 134217728, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:0x8000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20, 0x8000000, x1, 97*XLEN/8, x2) + +inst_127: +// rs2_val == 268435456, rs1_val == 2199023255552 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20000000000, 0x10000000, x1, 98*XLEN/8, x2) + +inst_128: +// rs2_val == 536870912, rs1_val == 65536 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x20000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x10000, 0x20000000, x1, 99*XLEN/8, x2) + +inst_129: +// rs2_val == 1073741824, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x40000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x81, 0x40000000, x1, 100*XLEN/8, x2) + +inst_130: +// rs2_val == 2147483648, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x80000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x4001, 0x80000000, x1, 101*XLEN/8, x2) + +inst_131: +// rs2_val == 4294967296, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x9; op2val:0x100000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x9, 0x100000000, x1, 102*XLEN/8, x2) + +inst_132: +// rs2_val == 8589934592, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x200000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000001, 0x200000000, x1, 103*XLEN/8, x2) + +inst_133: +// rs2_val == 68719476736, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:0x1000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000000000001, 0x1000000000, x1, 104*XLEN/8, x2) + +inst_134: +// rs2_val == 274877906944, rs1_val == 281474976710656 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x4000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1000000000000, 0x4000000000, x1, 105*XLEN/8, x2) + +inst_135: +// rs2_val == 549755813888, rs1_val == 256 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x8000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100, 0x8000000000, x1, 106*XLEN/8, x2) + +inst_136: +// rs2_val == 4398046511104, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:0x40000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x8000000000000000, 0x40000000000, x1, 107*XLEN/8, x2) + +inst_137: +// rs2_val == 8796093022208, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x80000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000000001, 0x80000000000, x1, 108*XLEN/8, x2) + +inst_138: +// rs2_val == 17592186044416, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x100000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x100000000000, x1, 109*XLEN/8, x2) + +inst_139: +// rs2_val == 35184372088832, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:0x200000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8000000, 0x200000000000, x1, 110*XLEN/8, x2) + +inst_140: +// rs2_val == 70368744177664, rs1_val == 2048 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x400000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800, 0x400000000000, x1, 111*XLEN/8, x2) + +inst_141: +// rs2_val == 140737488355328, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:0x800000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x200000001, 0x800000000000, x1, 112*XLEN/8, x2) + +inst_142: +// rs2_val == 281474976710656, rs1_val == 1048576 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100000, 0x1000000000000, x1, 113*XLEN/8, x2) + +inst_143: +// rs2_val == 562949953421312, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x2000000000000, x1, 114*XLEN/8, x2) + +inst_144: +// rs2_val == 1125899906842624, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x800001, 0x4000000000000, x1, 115*XLEN/8, x2) + +inst_145: +// rs2_val == 2251799813685248, rs1_val == 4294967296 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100000000, 0x8000000000000, x1, 116*XLEN/8, x2) + +inst_146: +// rs2_val == 4503599627370496, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x10000001, 0x10000000000000, x1, 117*XLEN/8, x2) + +inst_147: +// rs2_val == 9007199254740992, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x20000000000000, x1, 118*XLEN/8, x2) + +inst_148: +// rs2_val == 18014398509481984, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2000000001, 0x40000000000000, x1, 119*XLEN/8, x2) + +inst_149: +// rs2_val == 36028797018963968, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x2001, 0x80000000000000, x1, 120*XLEN/8, x2) + +inst_150: +// rs2_val == 72057594037927936, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x7fffffffffffffff, 0x100000000000000, x1, 121*XLEN/8, x2) + +inst_151: +// rs2_val == 144115188075855872, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000001, 0x200000000000000, x1, 122*XLEN/8, x2) + +inst_152: +// rs2_val == 576460752303423488, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100, 0x800000000000000, x1, 123*XLEN/8, x2) + +inst_153: +// rs2_val == 1152921504606846976, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x1000000001, 0x1000000000000000, x1, 124*XLEN/8, x2) + +inst_154: +// rs2_val == 2305843009213693952, rs1_val == 274877906944 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000000000, 0x2000000000000000, x1, 125*XLEN/8, x2) + +inst_155: +// rs2_val == 4611686018427387904, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000000000, 0x4000000000000000, x1, 126*XLEN/8, x2) + +inst_156: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)) +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x80000001, -0x8000000000000000, x1, 127*XLEN/8, x2) + +inst_157: +// rs1_val==3 and rs2_val==3, rs1_val == rs2_val +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x3, x1, 128*XLEN/8, x2) + +inst_158: +// rs1_val == 8, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8, -0xb504f332, x1, 129*XLEN/8, x2) + +inst_159: +// rs1_val == 16, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x41 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x10, -0x41, x1, 130*XLEN/8, x2) + +inst_160: +// rs1_val == 64, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x40, 0x5555555555555555, x1, 131*XLEN/8, x2) + +inst_161: +// rs1_val == 128, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:0x8000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80, 0x8000000, x1, 132*XLEN/8, x2) + +inst_162: +// rs1_val == 8192, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:0x20000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000, 0x20000000000, x1, 133*XLEN/8, x2) + +inst_163: +// rs1_val == 131072, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x200000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20000, 0x200000, x1, 134*XLEN/8, x2) + +inst_164: +// rs1_val == 262144, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x40000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x40000, 0x40000000000, x1, 135*XLEN/8, x2) + +inst_165: +// rs1_val == 524288, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000, 0x2000000000000000, x1, 136*XLEN/8, x2) + +inst_166: +// rs1_val == 4194304, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x100000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x400000, -0x100000001, x1, 137*XLEN/8, x2) + +inst_167: +// rs1_val == 16777216, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x800000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1000000, 0x800000000, x1, 138*XLEN/8, x2) + +inst_168: +// rs1_val == 33554432, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000000, 0x2000000000, x1, 139*XLEN/8, x2) + +inst_169: +// rs1_val == 268435456, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x10000000, -0x20000000000001, x1, 140*XLEN/8, x2) + +inst_170: +// rs1_val == 536870912, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x20000000, -0x2000000000000001, x1, 141*XLEN/8, x2) + +inst_171: +// rs1_val == 1073741824, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:0x10000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x40000000, 0x10000, x1, 142*XLEN/8, x2) + +inst_172: +// rs1_val == 2147483648, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:-0xa +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000000, -0xa, x1, 143*XLEN/8, x2) + +inst_173: +// rs1_val == 17179869184, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:-0x7 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x400000000, -0x7, x1, 144*XLEN/8, x2) + +inst_174: +// rs1_val == 34359738368, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800000000, 0x3, x1, 145*XLEN/8, x2) + +inst_175: +// rs1_val == 137438953472, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000000000, -0x5555555555555555, x1, 146*XLEN/8, x2) + +inst_176: +// rs1_val == 549755813888, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:-0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8000000000, -0x5, x1, 147*XLEN/8, x2) + +inst_177: +// rs1_val == 17592186044416, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100000000000, 0x2000000000000, x1, 148*XLEN/8, x2) + +inst_178: +// rs1_val == 140737488355328, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:-0x11 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800000000000, -0x11, x1, 149*XLEN/8, x2) + +inst_179: +// rs1_val == 562949953421312, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000000000000, -0x400000000000001, x1, 150*XLEN/8, x2) + +inst_180: +// rs1_val == 1125899906842624, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4000000000000, 0x3, x1, 151*XLEN/8, x2) + +inst_181: +// rs1_val == 2251799813685248, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:-0x81 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x8000000000000, -0x81, x1, 152*XLEN/8, x2) + +inst_182: +// rs1_val == 36028797018963968, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x80000000000000, 0x0, x1, 153*XLEN/8, x2) + +inst_183: +// rs1_val == 72057594037927936, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x100000000000000, -0x100000000000001, x1, 154*XLEN/8, x2) + +inst_184: +// rs1_val == 144115188075855872, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200000000000000, -0x10000000001, x1, 155*XLEN/8, x2) + +inst_185: +// rs1_val == 576460752303423488, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:-0x21 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x800000000000000, -0x21, x1, 156*XLEN/8, x2) + +inst_186: +// rs1_val == 1152921504606846976, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1000000000000000, -0x20000001, x1, 157*XLEN/8, x2) + +inst_187: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2000000000000000, 0x1000000000000, x1, 158*XLEN/8, x2) + +inst_188: +// rs1_val==3 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 159*XLEN/8, x2) + +inst_189: +// rs1_val==3 and rs2_val==-6148914691236517206, rs2_val == -6148914691236517206 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 160*XLEN/8, x2) + +inst_190: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x5, x1, 161*XLEN/8, x2) + +inst_191: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 162*XLEN/8, x2) + +inst_192: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 163*XLEN/8, x2) + +inst_193: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 164*XLEN/8, x2) + +inst_194: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 165*XLEN/8, x2) + +inst_195: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x2, x1, 166*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 167*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x0, x1, 168*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x4, x1, 169*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 170*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 171*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 172*XLEN/8, x2) + +inst_202: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 173*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 174*XLEN/8, x2) + +inst_204: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x6, x1, 175*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 176*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 177*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 178*XLEN/8, x2) + +inst_208: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 179*XLEN/8, x2) + +inst_209: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 180*XLEN/8, x2) + +inst_210: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 181*XLEN/8, x2) + +inst_211: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 182*XLEN/8, x2) + +inst_212: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 183*XLEN/8, x2) + +inst_213: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 184*XLEN/8, x2) + +inst_214: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 185*XLEN/8, x2) + +inst_215: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 186*XLEN/8, x2) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 187*XLEN/8, x2) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 188*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 189*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 190*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 191*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 192*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 193*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 194*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 195*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 196*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 197*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 198*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 199*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 200*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 201*XLEN/8, x2) + +inst_231: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 202*XLEN/8, x2) + +inst_232: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 203*XLEN/8, x2) + +inst_233: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 204*XLEN/8, x2) + +inst_234: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 205*XLEN/8, x2) + +inst_235: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 206*XLEN/8, x2) + +inst_236: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 207*XLEN/8, x2) + +inst_237: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 208*XLEN/8, x2) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 209*XLEN/8, x2) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 210*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 211*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 212*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 213*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 214*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 215*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 216*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 217*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 218*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 219*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 220*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 221*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 222*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 223*XLEN/8, x2) + +inst_253: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x3, x1, 224*XLEN/8, x2) + +inst_254: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 225*XLEN/8, x2) + +inst_255: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 226*XLEN/8, x2) + +inst_256: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x5, x1, 227*XLEN/8, x2) + +inst_257: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 228*XLEN/8, x2) + +inst_258: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 229*XLEN/8, x2) + +inst_259: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 230*XLEN/8, x2) + +inst_260: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 231*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x2, x1, 232*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 233*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x0, x1, 234*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x4, x1, 235*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 236*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 237*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 238*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 239*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 240*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x6, x1, 241*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 242*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 243*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 244*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 245*XLEN/8, x2) + +inst_275: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 246*XLEN/8, x2) + +inst_276: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 247*XLEN/8, x2) + +inst_277: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 248*XLEN/8, x2) + +inst_278: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 249*XLEN/8, x2) + +inst_279: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 250*XLEN/8, x2) + +inst_280: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 251*XLEN/8, x2) + +inst_281: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 252*XLEN/8, x2) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 253*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 254*XLEN/8, x2) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 0*XLEN/8, x2) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 1*XLEN/8, x2) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 2*XLEN/8, x2) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 3*XLEN/8, x2) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 4*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 5*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 6*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 7*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 8*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 9*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 10*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 11*XLEN/8, x2) + +inst_297: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 12*XLEN/8, x2) + +inst_298: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 13*XLEN/8, x2) + +inst_299: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 14*XLEN/8, x2) + +inst_300: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 15*XLEN/8, x2) + +inst_301: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 16*XLEN/8, x2) + +inst_302: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 17*XLEN/8, x2) + +inst_303: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 18*XLEN/8, x2) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 19*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 20*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 21*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 22*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 23*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 24*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 25*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 26*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 27*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 28*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 29*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 30*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 31*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 32*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 33*XLEN/8, x2) + +inst_319: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 34*XLEN/8, x2) + +inst_320: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 35*XLEN/8, x2) + +inst_321: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 36*XLEN/8, x2) + +inst_322: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 37*XLEN/8, x2) + +inst_323: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 38*XLEN/8, x2) + +inst_324: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 39*XLEN/8, x2) + +inst_325: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 40*XLEN/8, x2) + +inst_326: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 41*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 42*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 43*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 44*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 45*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 46*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 47*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 48*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 49*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 50*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 51*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 52*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 53*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 54*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 55*XLEN/8, x2) + +inst_341: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 56*XLEN/8, x2) + +inst_342: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 57*XLEN/8, x2) + +inst_343: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 58*XLEN/8, x2) + +inst_344: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 59*XLEN/8, x2) + +inst_345: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 60*XLEN/8, x2) + +inst_346: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 61*XLEN/8, x2) + +inst_347: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 62*XLEN/8, x2) + +inst_348: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 63*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 64*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 65*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 66*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 67*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 68*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 69*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 70*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 71*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 72*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 73*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 74*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 75*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 76*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 77*XLEN/8, x2) + +inst_363: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x3, x1, 78*XLEN/8, x2) + +inst_364: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 79*XLEN/8, x2) + +inst_365: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 80*XLEN/8, x2) + +inst_366: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x5, x1, 81*XLEN/8, x2) + +inst_367: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 82*XLEN/8, x2) + +inst_368: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 83*XLEN/8, x2) + +inst_369: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 84*XLEN/8, x2) + +inst_370: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 85*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x2, x1, 86*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 87*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x0, x1, 88*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x4, x1, 89*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 90*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 91*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 92*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 93*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 94*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x6, x1, 95*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 96*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 97*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 98*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 99*XLEN/8, x2) + +inst_385: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 100*XLEN/8, x2) + +inst_386: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 101*XLEN/8, x2) + +inst_387: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 102*XLEN/8, x2) + +inst_388: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 103*XLEN/8, x2) + +inst_389: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 104*XLEN/8, x2) + +inst_390: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 105*XLEN/8, x2) + +inst_391: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 106*XLEN/8, x2) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 107*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 108*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 109*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 110*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 111*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 112*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 113*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 114*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 115*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 116*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 117*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 118*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 119*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 120*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 121*XLEN/8, x2) + +inst_407: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x3, x1, 122*XLEN/8, x2) + +inst_408: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 123*XLEN/8, x2) + +inst_409: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 124*XLEN/8, x2) + +inst_410: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x5, x1, 125*XLEN/8, x2) + +inst_411: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 126*XLEN/8, x2) + +inst_412: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 127*XLEN/8, x2) + +inst_413: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 128*XLEN/8, x2) + +inst_414: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 129*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x2, x1, 130*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 131*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 132*XLEN/8, x2) + +inst_418: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x3, x1, 133*XLEN/8, x2) + +inst_419: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 134*XLEN/8, x2) + +inst_420: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 135*XLEN/8, x2) + +inst_421: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x5, x1, 136*XLEN/8, x2) + +inst_422: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 137*XLEN/8, x2) + +inst_423: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 138*XLEN/8, x2) + +inst_424: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 139*XLEN/8, x2) + +inst_425: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 140*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x2, x1, 141*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 142*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x0, x1, 143*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x4, x1, 144*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 145*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 146*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 147*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 148*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 149*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x6, x1, 150*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 151*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 152*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 153*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 154*XLEN/8, x2) + +inst_440: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 155*XLEN/8, x2) + +inst_441: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 156*XLEN/8, x2) + +inst_442: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 157*XLEN/8, x2) + +inst_443: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 158*XLEN/8, x2) + +inst_444: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 159*XLEN/8, x2) + +inst_445: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 160*XLEN/8, x2) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 161*XLEN/8, x2) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 162*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 163*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 164*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 165*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 166*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 167*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 168*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 169*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 170*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 171*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 172*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 173*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 174*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 175*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 176*XLEN/8, x2) + +inst_462: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 177*XLEN/8, x2) + +inst_463: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 178*XLEN/8, x2) + +inst_464: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 179*XLEN/8, x2) + +inst_465: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 180*XLEN/8, x2) + +inst_466: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 181*XLEN/8, x2) + +inst_467: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 182*XLEN/8, x2) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 183*XLEN/8, x2) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 184*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 185*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 186*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 187*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 188*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 189*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 190*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 191*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 192*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 193*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 194*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 195*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 196*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 197*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 198*XLEN/8, x2) + +inst_484: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 199*XLEN/8, x2) + +inst_485: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 200*XLEN/8, x2) + +inst_486: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 201*XLEN/8, x2) + +inst_487: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 202*XLEN/8, x2) + +inst_488: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 203*XLEN/8, x2) + +inst_489: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 204*XLEN/8, x2) + +inst_490: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 205*XLEN/8, x2) + +inst_491: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 206*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 207*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 208*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 209*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 210*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 211*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 212*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 213*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 214*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 215*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 216*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 217*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 218*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 219*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 220*XLEN/8, x2) + +inst_506: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 221*XLEN/8, x2) + +inst_507: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 222*XLEN/8, x2) + +inst_508: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 223*XLEN/8, x2) + +inst_509: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 224*XLEN/8, x2) + +inst_510: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 225*XLEN/8, x2) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 226*XLEN/8, x2) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 227*XLEN/8, x2) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 228*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 229*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 230*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 231*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 232*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 233*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 234*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 235*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 236*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 237*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 238*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 239*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 240*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 241*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 242*XLEN/8, x2) + +inst_528: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 243*XLEN/8, x2) + +inst_529: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 244*XLEN/8, x2) + +inst_530: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 245*XLEN/8, x2) + +inst_531: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 246*XLEN/8, x2) + +inst_532: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 247*XLEN/8, x2) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 248*XLEN/8, x2) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 249*XLEN/8, x2) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 250*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 251*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 252*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 253*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 254*XLEN/8, x2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 0*XLEN/8, x2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 1*XLEN/8, x2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 2*XLEN/8, x2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 3*XLEN/8, x2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 4*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 5*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 6*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 7*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 8*XLEN/8, x2) + +inst_550: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x3, x1, 9*XLEN/8, x2) + +inst_551: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 10*XLEN/8, x2) + +inst_552: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 11*XLEN/8, x2) + +inst_553: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x5, x1, 12*XLEN/8, x2) + +inst_554: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 13*XLEN/8, x2) + +inst_555: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 14*XLEN/8, x2) + +inst_556: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 15*XLEN/8, x2) + +inst_557: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 16*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x2, x1, 17*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 18*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x0, x1, 19*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x4, x1, 20*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 21*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 22*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 23*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 24*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 25*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x6, x1, 26*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 27*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 28*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 29*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 30*XLEN/8, x2) + +inst_572: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 31*XLEN/8, x2) + +inst_573: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 32*XLEN/8, x2) + +inst_574: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 33*XLEN/8, x2) + +inst_575: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 34*XLEN/8, x2) + +inst_576: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 35*XLEN/8, x2) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 36*XLEN/8, x2) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 37*XLEN/8, x2) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 38*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 39*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 40*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 41*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 42*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 43*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 44*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 45*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 46*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 47*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 48*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 49*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 50*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 51*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 52*XLEN/8, x2) + +inst_594: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 53*XLEN/8, x2) + +inst_595: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 54*XLEN/8, x2) + +inst_596: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 55*XLEN/8, x2) + +inst_597: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 56*XLEN/8, x2) + +inst_598: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 57*XLEN/8, x2) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 58*XLEN/8, x2) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 59*XLEN/8, x2) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 60*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 61*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 62*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 63*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 64*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 65*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 66*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 67*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 68*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 69*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 70*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 71*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 72*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 73*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 74*XLEN/8, x2) + +inst_616: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 75*XLEN/8, x2) + +inst_617: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 76*XLEN/8, x2) + +inst_618: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 77*XLEN/8, x2) + +inst_619: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 78*XLEN/8, x2) + +inst_620: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 79*XLEN/8, x2) + +inst_621: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 80*XLEN/8, x2) + +inst_622: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 81*XLEN/8, x2) + +inst_623: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 82*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 83*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 84*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 85*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 86*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 87*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 88*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 89*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 90*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 91*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 92*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 93*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 94*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 95*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 96*XLEN/8, x2) + +inst_638: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 97*XLEN/8, x2) + +inst_639: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 98*XLEN/8, x2) + +inst_640: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 99*XLEN/8, x2) + +inst_641: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 100*XLEN/8, x2) + +inst_642: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 101*XLEN/8, x2) + +inst_643: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 102*XLEN/8, x2) + +inst_644: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 103*XLEN/8, x2) + +inst_645: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 104*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 105*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 106*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 107*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 108*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 109*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 110*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 111*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 112*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 113*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 114*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 115*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 116*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 117*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 118*XLEN/8, x2) + +inst_660: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 119*XLEN/8, x2) + +inst_661: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x0, x1, 120*XLEN/8, x2) + +inst_662: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x4, x1, 121*XLEN/8, x2) + +inst_663: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 122*XLEN/8, x2) + +inst_664: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 123*XLEN/8, x2) + +inst_665: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 124*XLEN/8, x2) + +inst_666: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 125*XLEN/8, x2) + +inst_667: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 126*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x6, x1, 127*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 128*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 129*XLEN/8, x2) + +inst_671: +// rs1_val == 0, rs2_val == -32769 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x8001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x0, -0x8001, x1, 130*XLEN/8, x2) + +inst_672: +// rs1_val == 1, +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x1, 0x6666666666666665, x1, 131*XLEN/8, x2) + +inst_673: +// rs2_val == -131073, rs1_val == -68719476737 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, -0x1000000001, -0x20001, x1, 132*XLEN/8, x2) + +inst_674: +// rs2_val == -2097153, rs1_val == 35184372088832 +// opcode: mop.rr.5 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:-0x200001 +TEST_RR_OP(mop.rr.5, x31, x30, x29, 0, 0x200000000000, -0x200001, x1, 133*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_x14_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x14_1: + .fill 15*((XLEN/8)/4),4,0xdeadbeef + + +signature_x11_0: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .fill 134*((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/Zimop/src/mop.rr.6-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.6-01.S new file mode 100644 index 000000000..981fb5fbb --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.6-01.S @@ -0,0 +1,3477 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.6 instruction of the RISC-V RV64Zimop extension for the mop.rr.6 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.6) + +RVTEST_SIGBASE(x6,signature_x6_1) + +inst_0: +// rs1 == rd != rs2, rs1==x15, rs2==x10, rd==x15, rs1_val != rs2_val, rs1_val < 0 and rs2_val < 0, rs1_val == -65 +// opcode: mop.rr.6 ; op1:x15; op2:x10; dest:x15; op1val:-0x41; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x15, x15, x10, 0, -0x41, -0x5555555555555555, x6, 0*XLEN/8, x2) + +inst_1: +// rs2 == rd != rs1, rs1==x10, rs2==x16, rd==x16, rs1_val < 0 and rs2_val > 0, rs2_val == 576460752303423488, rs1_val == -9 +// opcode: mop.rr.6 ; op1:x10; op2:x16; dest:x16; op1val:-0x9; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.6, x16, x10, x16, 0, -0x9, 0x800000000000000, x6, 1*XLEN/8, x2) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x13, rs2==x9, rd==x21, rs1_val == (-2**(xlen-1)), rs2_val == 33554432, rs1_val == -9223372036854775808 +// opcode: mop.rr.6 ; op1:x13; op2:x9; dest:x21; op1val:-0x8000000000000000; op2val:0x2000000 +TEST_RR_OP(mop.rr.6, x21, x13, x9, 0, -0x8000000000000000, 0x2000000, x6, 2*XLEN/8, x2) + +inst_3: +// rs1 == rs2 != rd, rs1==x29, rs2==x29, rd==x25, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs1_val == 9223372036854775807, rs2_val == -129 +// opcode: mop.rr.6 ; op1:x29; op2:x29; dest:x25; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.6, x25, x29, x29, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x6, 3*XLEN/8, x2) + +inst_4: +// rs1 == rs2 == rd, rs1==x7, rs2==x7, rd==x7, rs1_val == 0, +// opcode: mop.rr.6 ; op1:x7; op2:x7; dest:x7; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.6, x7, x7, x7, 0, 0x0, 0x0, x6, 4*XLEN/8, x2) + +inst_5: +// rs1==x19, rs2==x21, rd==x18, rs1_val == 1, rs1_val > 0 and rs2_val > 0 +// opcode: mop.rr.6 ; op1:x19; op2:x21; dest:x18; op1val:0x1; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x18, x19, x21, 0, 0x1, 0x6666666666666666, x6, 5*XLEN/8, x2) + +inst_6: +// rs1==x17, rs2==x11, rd==x27, rs2_val == -2, rs1_val == 268435456 +// opcode: mop.rr.6 ; op1:x17; op2:x11; dest:x27; op1val:0x10000000; op2val:-0x2 +TEST_RR_OP(mop.rr.6, x27, x17, x11, 0, 0x10000000, -0x2, x6, 6*XLEN/8, x2) + +inst_7: +// rs1==x24, rs2==x20, rd==x5, rs2_val == -3, rs1_val == 64 +// opcode: mop.rr.6 ; op1:x24; op2:x20; dest:x5; op1val:0x40; op2val:-0x3 +TEST_RR_OP(mop.rr.6, x5, x24, x20, 0, 0x40, -0x3, x6, 7*XLEN/8, x2) + +inst_8: +// rs1==x25, rs2==x13, rd==x20, rs2_val == -5, rs1_val == 256 +// opcode: mop.rr.6 ; op1:x25; op2:x13; dest:x20; op1val:0x100; op2val:-0x5 +TEST_RR_OP(mop.rr.6, x20, x25, x13, 0, 0x100, -0x5, x6, 8*XLEN/8, x2) + +inst_9: +// rs1==x30, rs2==x12, rd==x4, rs2_val == -9, +// opcode: mop.rr.6 ; op1:x30; op2:x12; dest:x4; op1val:-0x4000000000000000; op2val:-0x9 +TEST_RR_OP(mop.rr.6, x4, x30, x12, 0, -0x4000000000000000, -0x9, x6, 9*XLEN/8, x2) + +inst_10: +// rs1==x1, rs2==x3, rd==x0, rs2_val == -17, rs1_val == -549755813889 +// opcode: mop.rr.6 ; op1:x1; op2:x3; dest:x0; op1val:-0x8000000001; op2val:-0x11 +TEST_RR_OP(mop.rr.6, x0, x1, x3, 0, -0x8000000001, -0x11, x6, 10*XLEN/8, x2) + +inst_11: +// rs1==x21, rs2==x25, rd==x13, rs2_val == -33, rs1_val == 6148914691236517205 +// opcode: mop.rr.6 ; op1:x21; op2:x25; dest:x13; op1val:0x5555555555555555; op2val:-0x21 +TEST_RR_OP(mop.rr.6, x13, x21, x25, 0, 0x5555555555555555, -0x21, x6, 11*XLEN/8, x2) + +inst_12: +// rs1==x20, rs2==x19, rd==x17, rs2_val == -65, rs1_val == -9007199254740993 +// opcode: mop.rr.6 ; op1:x20; op2:x19; dest:x17; op1val:-0x20000000000001; op2val:-0x41 +TEST_RR_OP(mop.rr.6, x17, x20, x19, 0, -0x20000000000001, -0x41, x6, 12*XLEN/8, x2) + +inst_13: +// rs1==x22, rs2==x0, rd==x30, rs2_val == -257, rs1_val == 1152921504606846976 +// opcode: mop.rr.6 ; op1:x22; op2:x0; dest:x30; op1val:0x1000000000000000; op2val:0x0 +TEST_RR_OP(mop.rr.6, x30, x22, x0, 0, 0x1000000000000000, 0x0, x6, 13*XLEN/8, x2) + +inst_14: +// rs1==x23, rs2==x14, rd==x29, rs2_val == -513, rs1_val == -2097153 +// opcode: mop.rr.6 ; op1:x23; op2:x14; dest:x29; op1val:-0x200001; op2val:-0x201 +TEST_RR_OP(mop.rr.6, x29, x23, x14, 0, -0x200001, -0x201, x6, 14*XLEN/8, x2) + +inst_15: +// rs1==x4, rs2==x24, rd==x1, rs2_val == -1025, rs1_val == 274877906944 +// opcode: mop.rr.6 ; op1:x4; op2:x24; dest:x1; op1val:0x4000000000; op2val:-0x401 +TEST_RR_OP(mop.rr.6, x1, x4, x24, 0, 0x4000000000, -0x401, x6, 15*XLEN/8, x13) + +inst_16: +// rs1==x2, rs2==x22, rd==x3, rs2_val == -2049, rs1_val == -268435457 +// opcode: mop.rr.6 ; op1:x2; op2:x22; dest:x3; op1val:-0x10000001; op2val:-0x801 +TEST_RR_OP(mop.rr.6, x3, x2, x22, 0, -0x10000001, -0x801, x6, 16*XLEN/8, x13) +RVTEST_SIGBASE(x7,signature_x7_0) + +inst_17: +// rs1==x5, rs2==x30, rd==x14, rs2_val == -4097, rs1_val == -34359738369 +// opcode: mop.rr.6 ; op1:x5; op2:x30; dest:x14; op1val:-0x800000001; op2val:-0x1001 +TEST_RR_OP(mop.rr.6, x14, x5, x30, 0, -0x800000001, -0x1001, x7, 0*XLEN/8, x13) + +inst_18: +// rs1==x9, rs2==x15, rd==x26, rs2_val == -8193, +// opcode: mop.rr.6 ; op1:x9; op2:x15; dest:x26; op1val:0x0; op2val:-0x2001 +TEST_RR_OP(mop.rr.6, x26, x9, x15, 0, 0x0, -0x2001, x7, 1*XLEN/8, x13) + +inst_19: +// rs1==x31, rs2==x2, rd==x6, rs2_val == -16385, rs1_val == -17592186044417 +// opcode: mop.rr.6 ; op1:x31; op2:x2; dest:x6; op1val:-0x100000000001; op2val:-0x4001 +TEST_RR_OP(mop.rr.6, x6, x31, x2, 0, -0x100000000001, -0x4001, x7, 2*XLEN/8, x13) + +inst_20: +// rs1==x0, rs2==x18, rd==x2, rs2_val == -32769, +// opcode: mop.rr.6 ; op1:x0; op2:x18; dest:x2; op1val:0x0; op2val:-0x8001 +TEST_RR_OP(mop.rr.6, x2, x0, x18, 0, 0x0, -0x8001, x7, 3*XLEN/8, x13) + +inst_21: +// rs1==x28, rs2==x23, rd==x22, rs2_val == -65537, rs1_val == 144115188075855872 +// opcode: mop.rr.6 ; op1:x28; op2:x23; dest:x22; op1val:0x200000000000000; op2val:-0x10001 +TEST_RR_OP(mop.rr.6, x22, x28, x23, 0, 0x200000000000000, -0x10001, x7, 4*XLEN/8, x13) + +inst_22: +// rs1==x18, rs2==x17, rd==x28, rs2_val == -131073, rs1_val == -16385 +// opcode: mop.rr.6 ; op1:x18; op2:x17; dest:x28; op1val:-0x4001; op2val:-0x20001 +TEST_RR_OP(mop.rr.6, x28, x18, x17, 0, -0x4001, -0x20001, x7, 5*XLEN/8, x13) + +inst_23: +// rs1==x8, rs2==x4, rd==x31, rs2_val == -262145, rs1_val == -5 +// opcode: mop.rr.6 ; op1:x8; op2:x4; dest:x31; op1val:-0x5; op2val:-0x40001 +TEST_RR_OP(mop.rr.6, x31, x8, x4, 0, -0x5, -0x40001, x7, 6*XLEN/8, x13) + +inst_24: +// rs1==x26, rs2==x1, rd==x19, rs2_val == -524289, rs1_val == 68719476736 +// opcode: mop.rr.6 ; op1:x26; op2:x1; dest:x19; op1val:0x1000000000; op2val:-0x80001 +TEST_RR_OP(mop.rr.6, x19, x26, x1, 0, 0x1000000000, -0x80001, x7, 7*XLEN/8, x13) + +inst_25: +// rs1==x12, rs2==x27, rd==x11, rs2_val == -1048577, rs1_val == 32768 +// opcode: mop.rr.6 ; op1:x12; op2:x27; dest:x11; op1val:0x8000; op2val:-0x100001 +TEST_RR_OP(mop.rr.6, x11, x12, x27, 0, 0x8000, -0x100001, x7, 8*XLEN/8, x13) + +inst_26: +// rs1==x11, rs2==x8, rd==x9, rs2_val == -2097153, +// opcode: mop.rr.6 ; op1:x11; op2:x8; dest:x9; op1val:-0x10000001; op2val:-0x200001 +TEST_RR_OP(mop.rr.6, x9, x11, x8, 0, -0x10000001, -0x200001, x7, 9*XLEN/8, x13) + +inst_27: +// rs1==x14, rs2==x26, rd==x12, rs2_val == -4194305, +// opcode: mop.rr.6 ; op1:x14; op2:x26; dest:x12; op1val:-0xa; op2val:-0x400001 +TEST_RR_OP(mop.rr.6, x12, x14, x26, 0, -0xa, -0x400001, x7, 10*XLEN/8, x13) + +inst_28: +// rs1==x27, rs2==x6, rd==x10, rs2_val == -8388609, +// opcode: mop.rr.6 ; op1:x27; op2:x6; dest:x10; op1val:0x4000000000; op2val:-0x800001 +TEST_RR_OP(mop.rr.6, x10, x27, x6, 0, 0x4000000000, -0x800001, x7, 11*XLEN/8, x13) + +inst_29: +// rs1==x16, rs2==x31, rd==x23, rs2_val == -16777217, rs1_val == -129 +// opcode: mop.rr.6 ; op1:x16; op2:x31; dest:x23; op1val:-0x81; op2val:-0x1000001 +TEST_RR_OP(mop.rr.6, x23, x16, x31, 0, -0x81, -0x1000001, x7, 12*XLEN/8, x13) + +inst_30: +// rs1==x3, rs2==x5, rd==x8, rs2_val == -33554433, rs1_val == 70368744177664 +// opcode: mop.rr.6 ; op1:x3; op2:x5; dest:x8; op1val:0x400000000000; op2val:-0x2000001 +TEST_RR_OP(mop.rr.6, x8, x3, x5, 0, 0x400000000000, -0x2000001, x7, 13*XLEN/8, x2) + +inst_31: +// rs1==x6, rs2==x28, rd==x24, rs2_val == -67108865, +// opcode: mop.rr.6 ; op1:x6; op2:x28; dest:x24; op1val:-0x1; op2val:-0x4000001 +TEST_RR_OP(mop.rr.6, x24, x6, x28, 0, -0x1, -0x4000001, x7, 14*XLEN/8, x2) + +inst_32: +// rs2_val == -134217729, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:-0x8000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000000000000, -0x8000001, x7, 15*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_33: +// rs2_val == -268435457, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x10000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x10000001, x1, 0*XLEN/8, x2) + +inst_34: +// rs2_val == -536870913, rs1_val == -4503599627370497 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:-0x20000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x10000000000001, -0x20000001, x1, 1*XLEN/8, x2) + +inst_35: +// rs2_val == -1073741825, rs1_val == 72057594037927936 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000000; op2val:-0x40000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x100000000000000, -0x40000001, x1, 2*XLEN/8, x2) + +inst_36: +// rs2_val == -2147483649, rs1_val == -131073 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x80000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20001, -0x80000001, x1, 3*XLEN/8, x2) + +inst_37: +// rs2_val == -4294967297, rs1_val == -513 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x100000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x201, -0x100000001, x1, 4*XLEN/8, x2) + +inst_38: +// rs2_val == -8589934593, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:-0x200000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x201, -0x200000001, x1, 5*XLEN/8, x2) + +inst_39: +// rs2_val == -17179869185, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x400000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x400000001, x1, 6*XLEN/8, x2) + +inst_40: +// rs2_val == -34359738369, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xa; op2val:-0x800000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xa, -0x800000001, x1, 7*XLEN/8, x2) + +inst_41: +// rs2_val == -68719476737, rs1_val == 4194304 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x400000; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x400000, -0x1000000001, x1, 8*XLEN/8, x2) + +inst_42: +// rs2_val == -137438953473, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20001, -0x2000000001, x1, 9*XLEN/8, x2) + +inst_43: +// rs2_val == -274877906945, rs1_val == 36028797018963968 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x80000000000000, -0x4000000001, x1, 10*XLEN/8, x2) + +inst_44: +// rs2_val == -549755813889, rs1_val == 1048576 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x100000, -0x8000000001, x1, 11*XLEN/8, x2) + +inst_45: +// rs2_val == -1099511627777, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x6; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x6, -0x10000000001, x1, 12*XLEN/8, x2) + +inst_46: +// rs2_val == -2199023255553, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, -0x20000000001, x1, 13*XLEN/8, x2) + +inst_47: +// rs2_val == -4398046511105, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x800000001, -0x40000000001, x1, 14*XLEN/8, x2) + +inst_48: +// rs2_val == -8796093022209, rs1_val == 32 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20, -0x80000000001, x1, 15*XLEN/8, x2) + +inst_49: +// rs2_val == -17592186044417, rs1_val == 4 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x100000000001, x1, 16*XLEN/8, x2) + +inst_50: +// rs2_val == -35184372088833, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x200000000001, x1, 17*XLEN/8, x2) + +inst_51: +// rs2_val == -70368744177665, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0x400000000001, x1, 18*XLEN/8, x2) + +inst_52: +// rs2_val == -140737488355329, rs1_val == 8388608 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000, -0x800000000001, x1, 19*XLEN/8, x2) + +inst_53: +// rs2_val == -281474976710657, rs1_val == -35184372088833 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x200000000001, -0x1000000000001, x1, 20*XLEN/8, x2) + +inst_54: +// rs2_val == -562949953421313, rs1_val == 4096 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000, -0x2000000000001, x1, 21*XLEN/8, x2) + +inst_55: +// rs2_val == -1125899906842625, rs1_val == -140737488355329 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x800000000001, -0x4000000000001, x1, 22*XLEN/8, x2) + +inst_56: +// rs2_val == -2251799813685249, rs1_val == 16 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10, -0x8000000000001, x1, 23*XLEN/8, x2) + +inst_57: +// rs2_val == -4503599627370497, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0x10000000000001, x1, 24*XLEN/8, x2) + +inst_58: +// rs2_val == -9007199254740993, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x7; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x7, -0x20000000000001, x1, 25*XLEN/8, x2) + +inst_59: +// rs2_val == -18014398509481985, rs1_val == 34359738368 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000000, -0x40000000000001, x1, 26*XLEN/8, x2) + +inst_60: +// rs2_val == -36028797018963969, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x80000000000001, x1, 27*XLEN/8, x2) + +inst_61: +// rs2_val == -72057594037927937, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x800000001, -0x100000000000001, x1, 28*XLEN/8, x2) + +inst_62: +// rs2_val == -144115188075855873, rs1_val == -36028797018963969 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x80000000000001, -0x200000000000001, x1, 29*XLEN/8, x2) + +inst_63: +// rs2_val == -288230376151711745, rs1_val == -562949953421313 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2000000000001, -0x400000000000001, x1, 30*XLEN/8, x2) + +inst_64: +// rs2_val == -576460752303423489, rs1_val == -2199023255553 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20000000001, -0x800000000000001, x1, 31*XLEN/8, x2) + +inst_65: +// rs2_val == -1152921504606846977, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0x1000000000000001, x1, 32*XLEN/8, x2) + +inst_66: +// rs2_val == -2305843009213693953, rs1_val == 1099511627776 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10000000000, -0x2000000000000001, x1, 33*XLEN/8, x2) + +inst_67: +// rs2_val == -4611686018427387905, rs1_val == 4503599627370496 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000000; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10000000000000, -0x4000000000000001, x1, 34*XLEN/8, x2) + +inst_68: +// rs2_val == 9223372036854775807, rs1_val == 2048, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800, 0x7fffffffffffffff, x1, 35*XLEN/8, x2) + +inst_69: +// rs1_val == -2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:-0xa +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2, -0xa, x1, 36*XLEN/8, x2) + +inst_70: +// rs1_val == -3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x800000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x3, -0x800000001, x1, 37*XLEN/8, x2) + +inst_71: +// rs1_val == -17, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0x10000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x11, -0x10000001, x1, 38*XLEN/8, x2) + +inst_72: +// rs1_val == -33, rs2_val == 1073741824 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x40000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x21, 0x40000000, x1, 39*XLEN/8, x2) + +inst_73: +// rs1_val == -257, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x101, -0x200000000000001, x1, 40*XLEN/8, x2) + +inst_74: +// rs1_val == -1025, rs2_val == -6148914691236517206 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x401, -0x5555555555555556, x1, 41*XLEN/8, x2) + +inst_75: +// rs1_val == -2049, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x801, -0x20000000001, x1, 42*XLEN/8, x2) + +inst_76: +// rs1_val == -4097, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1001, 0x6666666666666665, x1, 43*XLEN/8, x2) + +inst_77: +// rs1_val == -8193, rs2_val == 512 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:0x200 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2001, 0x200, x1, 44*XLEN/8, x2) + +inst_78: +// rs1_val == -32769, rs2_val == 8388608 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:0x800000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8001, 0x800000, x1, 45*XLEN/8, x2) + +inst_79: +// rs1_val == -65537, rs2_val == 18014398509481984 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x10001, 0x40000000000000, x1, 46*XLEN/8, x2) + +inst_80: +// rs1_val == -262145, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:0x800000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x40001, 0x800000, x1, 47*XLEN/8, x2) + +inst_81: +// rs1_val == -524289, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x80001, 0x5, x1, 48*XLEN/8, x2) + +inst_82: +// rs1_val == -1048577, rs2_val == 4 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x100001, 0x4, x1, 49*XLEN/8, x2) + +inst_83: +// rs1_val == -4194305, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x200000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400001, -0x200000001, x1, 50*XLEN/8, x2) + +inst_84: +// rs1_val == -8388609, rs2_val == 67108864 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:0x4000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x800001, 0x4000000, x1, 51*XLEN/8, x2) + +inst_85: +// rs1_val == -16777217, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1000001, -0x5, x1, 52*XLEN/8, x2) + +inst_86: +// rs1_val == -33554433, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:0x2000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2000001, 0x2000000, x1, 53*XLEN/8, x2) + +inst_87: +// rs1_val == -67108865, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000001, -0x8000000001, x1, 54*XLEN/8, x2) + +inst_88: +// rs1_val == -134217729, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8000001, -0x80000000000001, x1, 55*XLEN/8, x2) + +inst_89: +// rs1_val == -536870913, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x40000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20000001, 0x40000000, x1, 56*XLEN/8, x2) + +inst_90: +// rs1_val == -1073741825, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x40000001, 0x4, x1, 57*XLEN/8, x2) + +inst_91: +// rs1_val == -2147483649, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x80000001, -0x100000000001, x1, 58*XLEN/8, x2) + +inst_92: +// rs1_val == -4294967297, rs2_val == 32768 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:0x8000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x100000001, 0x8000, x1, 59*XLEN/8, x2) + +inst_93: +// rs1_val == -8589934593, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:0x40000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x200000001, 0x40000000, x1, 60*XLEN/8, x2) + +inst_94: +// rs1_val == -17179869185, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400000001, 0x6666666666666666, x1, 61*XLEN/8, x2) + +inst_95: +// rs1_val == -68719476737, rs2_val == 131072 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000001; op2val:0x20000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1000000001, 0x20000, x1, 62*XLEN/8, x2) + +inst_96: +// rs1_val == -137438953473, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2000000001, 0x3333333333333332, x1, 63*XLEN/8, x2) + +inst_97: +// rs1_val == -274877906945, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000000001, 0x5, x1, 64*XLEN/8, x2) + +inst_98: +// rs1_val == -1099511627777, rs2_val == 281474976710656 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x10000000001, 0x1000000000000, x1, 65*XLEN/8, x2) + +inst_99: +// rs1_val == -4398046511105, rs2_val == 549755813888 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:0x8000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x40000000001, 0x8000000000, x1, 66*XLEN/8, x2) + +inst_100: +// rs1_val == -8796093022209, rs2_val == 2305843009213693952 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000001; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x80000000001, 0x2000000000000000, x1, 67*XLEN/8, x2) + +inst_101: +// rs1_val == -70368744177665, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:-0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400000000001, -0x5, x1, 68*XLEN/8, x2) + +inst_102: +// rs1_val == -281474976710657, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1000000000001, -0x8000000001, x1, 69*XLEN/8, x2) + +inst_103: +// rs1_val == -1125899906842625, rs2_val == 2048 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:0x800 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000000000001, 0x800, x1, 70*XLEN/8, x2) + +inst_104: +// rs1_val == -2251799813685249, rs2_val == 34359738368 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:0x800000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8000000000001, 0x800000000, x1, 71*XLEN/8, x2) + +inst_105: +// rs1_val == -18014398509481985, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:-0x81 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x40000000000001, -0x81, x1, 72*XLEN/8, x2) + +inst_106: +// rs1_val == -72057594037927937, rs2_val == 274877906944 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:0x4000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x100000000000001, 0x4000000000, x1, 73*XLEN/8, x2) + +inst_107: +// rs1_val == -144115188075855873, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x200000000000001, -0x1000000000001, x1, 74*XLEN/8, x2) + +inst_108: +// rs1_val == -288230376151711745, rs2_val == 8192 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:0x2000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400000000000001, 0x2000, x1, 75*XLEN/8, x2) + +inst_109: +// rs1_val == -576460752303423489, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x800000000000001, 0x6666666666666666, x1, 76*XLEN/8, x2) + +inst_110: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:0x200 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x1000000000000001, 0x200, x1, 77*XLEN/8, x2) + +inst_111: +// rs1_val == -2305843009213693953, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x2000000000000001, 0xb504f333, x1, 78*XLEN/8, x2) + +inst_112: +// rs1_val == -4611686018427387905, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000000000000001, 0x5, x1, 79*XLEN/8, x2) + +inst_113: +// rs2_val == 1, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:0x1 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x400000000000001, 0x1, x1, 80*XLEN/8, x2) + +inst_114: +// rs2_val == 2, rs1_val==0 and rs2_val==2 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x2, x1, 81*XLEN/8, x2) + +inst_115: +// rs2_val == 8, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:0x8 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x200000000001, 0x8, x1, 82*XLEN/8, x2) + +inst_116: +// rs2_val == 16, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:0x10 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000000, 0x10, x1, 83*XLEN/8, x2) + +inst_117: +// rs2_val == 32, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:0x20 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000000000000001, 0x20, x1, 84*XLEN/8, x2) + +inst_118: +// rs2_val == 64, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:0x40 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200000000000000, 0x40, x1, 85*XLEN/8, x2) + +inst_119: +// rs2_val == 128, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x80 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x80, x1, 86*XLEN/8, x2) + +inst_120: +// rs2_val == 256, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x100 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4001, 0x100, x1, 87*XLEN/8, x2) + +inst_121: +// rs2_val == 1024, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:0x400 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x10001, 0x400, x1, 88*XLEN/8, x2) + +inst_122: +// rs2_val == 4096, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:0x1000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000000000000000, 0x1000, x1, 89*XLEN/8, x2) + +inst_123: +// rs2_val == 16384, rs1_val == 512 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:0x4000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200, 0x4000, x1, 90*XLEN/8, x2) + +inst_124: +// rs2_val == 65536, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x7; op2val:0x10000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x7, 0x10000, x1, 91*XLEN/8, x2) + +inst_125: +// rs2_val == 262144, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x40000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x40000, x1, 92*XLEN/8, x2) + +inst_126: +// rs2_val == 524288, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000001; op2val:0x80000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000001, 0x80000, x1, 93*XLEN/8, x2) + +inst_127: +// rs2_val == 1048576, rs1_val == 2251799813685248 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:0x100000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8000000000000, 0x100000, x1, 94*XLEN/8, x2) + +inst_128: +// rs2_val == 2097152, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x200000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x200000, x1, 95*XLEN/8, x2) + +inst_129: +// rs2_val == 4194304, rs1_val == 1125899906842624 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:0x400000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4000000000000, 0x400000, x1, 96*XLEN/8, x2) + +inst_130: +// rs2_val == 16777216, rs1_val == 262144 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:0x1000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40000, 0x1000000, x1, 97*XLEN/8, x2) + +inst_131: +// rs2_val == 134217728, rs1_val == 137438953472 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:0x8000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000000000, 0x8000000, x1, 98*XLEN/8, x2) + +inst_132: +// rs2_val == 268435456, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x7; op2val:0x10000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x7, 0x10000000, x1, 99*XLEN/8, x2) + +inst_133: +// rs2_val == 536870912, rs1_val == 17179869184 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x400000000, 0x20000000, x1, 100*XLEN/8, x2) + +inst_134: +// rs2_val == 2147483648, rs1_val == 536870912 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:0x80000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20000000, 0x80000000, x1, 101*XLEN/8, x2) + +inst_135: +// rs2_val == 4294967296, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:0x100000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1, 0x100000000, x1, 102*XLEN/8, x2) + +inst_136: +// rs2_val == 8589934592, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000000001; op2val:0x200000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x100000000000001, 0x200000000, x1, 103*XLEN/8, x2) + +inst_137: +// rs2_val == 17179869184, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:0x400000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000000, 0x400000000, x1, 104*XLEN/8, x2) + +inst_138: +// rs2_val == 68719476736, rs1_val == 281474976710656 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x1000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000000000, 0x1000000000, x1, 105*XLEN/8, x2) + +inst_139: +// rs2_val == 137438953472, rs1_val == 4611686018427387904 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4000000000000000, 0x2000000000, x1, 106*XLEN/8, x2) + +inst_140: +// rs2_val == 1099511627776, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4; op2val:0x10000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4, 0x10000000000, x1, 107*XLEN/8, x2) + +inst_141: +// rs2_val == 2199023255552, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x20000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4000000000, 0x20000000000, x1, 108*XLEN/8, x2) + +inst_142: +// rs2_val == 4398046511104, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x40000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x40000000000, x1, 109*XLEN/8, x2) + +inst_143: +// rs2_val == 8796093022208, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x80000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x201, 0x80000000000, x1, 110*XLEN/8, x2) + +inst_144: +// rs2_val == 17592186044416, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:0x100000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000000, 0x100000000000, x1, 111*XLEN/8, x2) + +inst_145: +// rs2_val == 35184372088832, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x200000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20000001, 0x200000000000, x1, 112*XLEN/8, x2) + +inst_146: +// rs2_val == 70368744177664, rs1_val == 140737488355328 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:0x400000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000000000, 0x400000000000, x1, 113*XLEN/8, x2) + +inst_147: +// rs2_val == 140737488355328, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x800000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x800000000000, x1, 114*XLEN/8, x2) + +inst_148: +// rs2_val == 562949953421312, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8000, 0x2000000000000, x1, 115*XLEN/8, x2) + +inst_149: +// rs2_val == 1125899906842624, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8000001, 0x4000000000000, x1, 116*XLEN/8, x2) + +inst_150: +// rs2_val == 2251799813685248, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x8000000000000, x1, 117*XLEN/8, x2) + +inst_151: +// rs2_val == 4503599627370496, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000000000, 0x10000000000000, x1, 118*XLEN/8, x2) + +inst_152: +// rs2_val == 9007199254740992, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x20000000000000, x1, 119*XLEN/8, x2) + +inst_153: +// rs2_val == 36028797018963968, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x401, 0x80000000000000, x1, 120*XLEN/8, x2) + +inst_154: +// rs2_val == 72057594037927936, rs1_val == 549755813888 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8000000000, 0x100000000000000, x1, 121*XLEN/8, x2) + +inst_155: +// rs2_val == 144115188075855872, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000, 0x200000000000000, x1, 122*XLEN/8, x2) + +inst_156: +// rs2_val == 288230376151711744, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x4000000000000001, 0x400000000000000, x1, 123*XLEN/8, x2) + +inst_157: +// rs2_val == 1152921504606846976, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x20000000001, 0x1000000000000000, x1, 124*XLEN/8, x2) + +inst_158: +// rs2_val == 4611686018427387904, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x4000000000000000, x1, 125*XLEN/8, x2) + +inst_159: +// rs2_val == -9223372036854775808, rs2_val == (-2**(xlen-1)), rs1_val == rs2_val +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8000000000000000, -0x8000000000000000, x1, 126*XLEN/8, x2) + +inst_160: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x3, x1, 127*XLEN/8, x2) + +inst_161: +// rs1_val == 2, rs1_val==2 and rs2_val==5 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x5, x1, 128*XLEN/8, x2) + +inst_162: +// rs1_val == 8, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x400 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8, 0x400, x1, 129*XLEN/8, x2) + +inst_163: +// rs1_val == 128, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x80; op2val:-0x200000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x80, -0x200000001, x1, 130*XLEN/8, x2) + +inst_164: +// rs1_val == 1024, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:0x8 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x400, 0x8, x1, 131*XLEN/8, x2) + +inst_165: +// rs1_val == 8192, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x41 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000, -0x41, x1, 132*XLEN/8, x2) + +inst_166: +// rs1_val == 16384, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:-0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4000, -0x5, x1, 133*XLEN/8, x2) + +inst_167: +// rs1_val == 65536, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:0x7 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x10000, 0x7, x1, 134*XLEN/8, x2) + +inst_168: +// rs1_val == 131072, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20000; op2val:0x20000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20000, 0x20000, x1, 135*XLEN/8, x2) + +inst_169: +// rs1_val == 524288, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x80000, 0x80000000000000, x1, 136*XLEN/8, x2) + +inst_170: +// rs1_val == 2097152, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200000, 0x5555555555555556, x1, 137*XLEN/8, x2) + +inst_171: +// rs1_val == 16777216, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x1000000, 0x3333333333333334, x1, 138*XLEN/8, x2) + +inst_172: +// rs1_val == 33554432, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000000, 0x4, x1, 139*XLEN/8, x2) + +inst_173: +// rs1_val == 67108864, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:0x2000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4000000, 0x2000000000, x1, 140*XLEN/8, x2) + +inst_174: +// rs1_val == 134217728, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:0x80000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x8000000, 0x80000, x1, 141*XLEN/8, x2) + +inst_175: +// rs1_val == 1073741824, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40000000, -0x10000000001, x1, 142*XLEN/8, x2) + +inst_176: +// rs1_val == 2147483648, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:0x20000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x80000000, 0x20000000, x1, 143*XLEN/8, x2) + +inst_177: +// rs1_val == 4294967296, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x100000000, 0x3, x1, 144*XLEN/8, x2) + +inst_178: +// rs1_val == 8589934592, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200000000, -0x8001, x1, 145*XLEN/8, x2) + +inst_179: +// rs1_val == 2199023255552, rs2_val == 6148914691236517205 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20000000000, 0x5555555555555555, x1, 146*XLEN/8, x2) + +inst_180: +// rs1_val == 4398046511104, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000; op2val:-0x40001 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40000000000, -0x40001, x1, 147*XLEN/8, x2) + +inst_181: +// rs1_val == 8796093022208, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x200000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x80000000000, 0x200000000, x1, 148*XLEN/8, x2) + +inst_182: +// rs1_val == 17592186044416, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:-0x101 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x100000000000, -0x101, x1, 149*XLEN/8, x2) + +inst_183: +// rs1_val == 35184372088832, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:0x7 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x200000000000, 0x7, x1, 150*XLEN/8, x2) + +inst_184: +// rs1_val == 562949953421312, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:0x400000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000000000000, 0x400000, x1, 151*XLEN/8, x2) + +inst_185: +// rs1_val == 9007199254740992, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:-0xa +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x20000000000000, -0xa, x1, 152*XLEN/8, x2) + +inst_186: +// rs1_val == 18014398509481984, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x40000000000000, 0x3, x1, 153*XLEN/8, x2) + +inst_187: +// rs1_val == 288230376151711744, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x400000000000000, 0x6, x1, 154*XLEN/8, x2) + +inst_188: +// rs1_val == 576460752303423488, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:0x100000000000 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x800000000000000, 0x100000000000, x1, 155*XLEN/8, x2) + +inst_189: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2000000000000000, -0xb504f333, x1, 156*XLEN/8, x2) + +inst_190: +// rs1_val==3 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x5555555555555555, x1, 157*XLEN/8, x2) + +inst_191: +// rs1_val==3 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0x5555555555555556, x1, 158*XLEN/8, x2) + +inst_192: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x5, x1, 159*XLEN/8, x2) + +inst_193: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x3333333333333333, x1, 160*XLEN/8, x2) + +inst_194: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x6666666666666666, x1, 161*XLEN/8, x2) + +inst_195: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0xb504f333, x1, 162*XLEN/8, x2) + +inst_196: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0xb504f333, x1, 163*XLEN/8, x2) + +inst_197: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x2, x1, 164*XLEN/8, x2) + +inst_198: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x5555555555555554, x1, 165*XLEN/8, x2) + +inst_199: +// rs1_val==3 and rs2_val==0, rs2_val == 0 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x0, x1, 166*XLEN/8, x2) + +inst_200: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x4, x1, 167*XLEN/8, x2) + +inst_201: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x3333333333333332, x1, 168*XLEN/8, x2) + +inst_202: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x6666666666666665, x1, 169*XLEN/8, x2) + +inst_203: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0xb504f332, x1, 170*XLEN/8, x2) + +inst_204: +// rs1_val == -6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x7 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x7, x1, 171*XLEN/8, x2) + +inst_205: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x5555555555555556, x1, 172*XLEN/8, x2) + +inst_206: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0x5555555555555555, x1, 173*XLEN/8, x2) + +inst_207: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x6, x1, 174*XLEN/8, x2) + +inst_208: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x3333333333333334, x1, 175*XLEN/8, x2) + +inst_209: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0x6666666666666667, x1, 176*XLEN/8, x2) + +inst_210: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, -0xb504f332, x1, 177*XLEN/8, x2) + +inst_211: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3, 0xb504f334, x1, 178*XLEN/8, x2) + +inst_212: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x3, x1, 179*XLEN/8, x2) + +inst_213: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x1, 180*XLEN/8, x2) + +inst_214: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x1, 181*XLEN/8, x2) + +inst_215: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x5, x1, 182*XLEN/8, x2) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x1, 183*XLEN/8, x2) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x1, 184*XLEN/8, x2) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x1, 185*XLEN/8, x2) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x1, 186*XLEN/8, x2) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x2, x1, 187*XLEN/8, x2) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x1, 188*XLEN/8, x2) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x0, x1, 189*XLEN/8, x2) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x4, x1, 190*XLEN/8, x2) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x1, 191*XLEN/8, x2) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x1, 192*XLEN/8, x2) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x1, 193*XLEN/8, x2) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x1, 194*XLEN/8, x2) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x1, 195*XLEN/8, x2) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x6, x1, 196*XLEN/8, x2) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x1, 197*XLEN/8, x2) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x1, 198*XLEN/8, x2) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x1, 199*XLEN/8, x2) + +inst_233: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x1, 200*XLEN/8, x2) + +inst_234: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x3, x1, 201*XLEN/8, x2) + +inst_235: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x1, 202*XLEN/8, x2) + +inst_236: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x1, 203*XLEN/8, x2) + +inst_237: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x5, x1, 204*XLEN/8, x2) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x1, 205*XLEN/8, x2) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x1, 206*XLEN/8, x2) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x1, 207*XLEN/8, x2) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x1, 208*XLEN/8, x2) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x2, x1, 209*XLEN/8, x2) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x1, 210*XLEN/8, x2) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x0, x1, 211*XLEN/8, x2) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x4, x1, 212*XLEN/8, x2) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x1, 213*XLEN/8, x2) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x1, 214*XLEN/8, x2) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x1, 215*XLEN/8, x2) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x1, 216*XLEN/8, x2) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x1, 217*XLEN/8, x2) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x6, x1, 218*XLEN/8, x2) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x1, 219*XLEN/8, x2) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x1, 220*XLEN/8, x2) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x1, 221*XLEN/8, x2) + +inst_255: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x1, 222*XLEN/8, x2) + +inst_256: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x3, x1, 223*XLEN/8, x2) + +inst_257: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x5555555555555555, x1, 224*XLEN/8, x2) + +inst_258: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0x5555555555555556, x1, 225*XLEN/8, x2) + +inst_259: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x5, x1, 226*XLEN/8, x2) + +inst_260: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x3333333333333333, x1, 227*XLEN/8, x2) + +inst_261: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x6666666666666666, x1, 228*XLEN/8, x2) + +inst_262: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0xb504f333, x1, 229*XLEN/8, x2) + +inst_263: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0xb504f333, x1, 230*XLEN/8, x2) + +inst_264: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x2, x1, 231*XLEN/8, x2) + +inst_265: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x5555555555555554, x1, 232*XLEN/8, x2) + +inst_266: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x0, x1, 233*XLEN/8, x2) + +inst_267: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x4, x1, 234*XLEN/8, x2) + +inst_268: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x3333333333333332, x1, 235*XLEN/8, x2) + +inst_269: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x6666666666666665, x1, 236*XLEN/8, x2) + +inst_270: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0xb504f332, x1, 237*XLEN/8, x2) + +inst_271: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x5555555555555556, x1, 238*XLEN/8, x2) + +inst_272: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0x5555555555555555, x1, 239*XLEN/8, x2) + +inst_273: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x6, x1, 240*XLEN/8, x2) + +inst_274: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x3333333333333334, x1, 241*XLEN/8, x2) + +inst_275: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0x6666666666666667, x1, 242*XLEN/8, x2) + +inst_276: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, -0xb504f332, x1, 243*XLEN/8, x2) + +inst_277: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5, 0xb504f334, x1, 244*XLEN/8, x2) + +inst_278: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x3, x1, 245*XLEN/8, x2) + +inst_279: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x1, 246*XLEN/8, x2) + +inst_280: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x1, 247*XLEN/8, x2) + +inst_281: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x5, x1, 248*XLEN/8, x2) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x1, 249*XLEN/8, x2) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x1, 250*XLEN/8, x2) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x1, 251*XLEN/8, x2) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x1, 252*XLEN/8, x2) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x2, x1, 253*XLEN/8, x2) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x1, 254*XLEN/8, x2) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x0, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_1) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x4, x1, 0*XLEN/8, x2) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x1, 1*XLEN/8, x2) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x1, 2*XLEN/8, x2) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x1, 3*XLEN/8, x2) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x1, 4*XLEN/8, x2) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x1, 5*XLEN/8, x2) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x6, x1, 6*XLEN/8, x2) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x1, 7*XLEN/8, x2) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x1, 8*XLEN/8, x2) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x1, 9*XLEN/8, x2) + +inst_299: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x1, 10*XLEN/8, x2) + +inst_300: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x3, x1, 11*XLEN/8, x2) + +inst_301: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x1, 12*XLEN/8, x2) + +inst_302: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x1, 13*XLEN/8, x2) + +inst_303: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x5, x1, 14*XLEN/8, x2) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x1, 15*XLEN/8, x2) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x1, 16*XLEN/8, x2) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x1, 17*XLEN/8, x2) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x1, 18*XLEN/8, x2) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x2, x1, 19*XLEN/8, x2) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x1, 20*XLEN/8, x2) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x0, x1, 21*XLEN/8, x2) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x4, x1, 22*XLEN/8, x2) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x1, 23*XLEN/8, x2) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x1, 24*XLEN/8, x2) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x1, 25*XLEN/8, x2) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x1, 26*XLEN/8, x2) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x1, 27*XLEN/8, x2) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x6, x1, 28*XLEN/8, x2) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x1, 29*XLEN/8, x2) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x1, 30*XLEN/8, x2) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x1, 31*XLEN/8, x2) + +inst_321: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x1, 32*XLEN/8, x2) + +inst_322: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x3, x1, 33*XLEN/8, x2) + +inst_323: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x1, 34*XLEN/8, x2) + +inst_324: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x1, 35*XLEN/8, x2) + +inst_325: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x5, x1, 36*XLEN/8, x2) + +inst_326: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x1, 37*XLEN/8, x2) + +inst_327: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x1, 38*XLEN/8, x2) + +inst_328: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x1, 39*XLEN/8, x2) + +inst_329: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x1, 40*XLEN/8, x2) + +inst_330: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x2, x1, 41*XLEN/8, x2) + +inst_331: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x1, 42*XLEN/8, x2) + +inst_332: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x0, x1, 43*XLEN/8, x2) + +inst_333: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x4, x1, 44*XLEN/8, x2) + +inst_334: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x1, 45*XLEN/8, x2) + +inst_335: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x1, 46*XLEN/8, x2) + +inst_336: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x1, 47*XLEN/8, x2) + +inst_337: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x1, 48*XLEN/8, x2) + +inst_338: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x1, 49*XLEN/8, x2) + +inst_339: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x6, x1, 50*XLEN/8, x2) + +inst_340: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x1, 51*XLEN/8, x2) + +inst_341: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x1, 52*XLEN/8, x2) + +inst_342: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x1, 53*XLEN/8, x2) + +inst_343: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x1, 54*XLEN/8, x2) + +inst_344: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x3, x1, 55*XLEN/8, x2) + +inst_345: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x1, 56*XLEN/8, x2) + +inst_346: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x1, 57*XLEN/8, x2) + +inst_347: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x5, x1, 58*XLEN/8, x2) + +inst_348: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x1, 59*XLEN/8, x2) + +inst_349: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x1, 60*XLEN/8, x2) + +inst_350: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x1, 61*XLEN/8, x2) + +inst_351: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x1, 62*XLEN/8, x2) + +inst_352: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x2, x1, 63*XLEN/8, x2) + +inst_353: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x1, 64*XLEN/8, x2) + +inst_354: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x0, x1, 65*XLEN/8, x2) + +inst_355: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x4, x1, 66*XLEN/8, x2) + +inst_356: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x1, 67*XLEN/8, x2) + +inst_357: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x1, 68*XLEN/8, x2) + +inst_358: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x1, 69*XLEN/8, x2) + +inst_359: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x1, 70*XLEN/8, x2) + +inst_360: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x1, 71*XLEN/8, x2) + +inst_361: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x6, x1, 72*XLEN/8, x2) + +inst_362: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x1, 73*XLEN/8, x2) + +inst_363: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x1, 74*XLEN/8, x2) + +inst_364: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x1, 75*XLEN/8, x2) + +inst_365: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x1, 76*XLEN/8, x2) + +inst_366: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x3, x1, 77*XLEN/8, x2) + +inst_367: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x5555555555555555, x1, 78*XLEN/8, x2) + +inst_368: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0x5555555555555556, x1, 79*XLEN/8, x2) + +inst_369: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x3333333333333333, x1, 80*XLEN/8, x2) + +inst_370: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x6666666666666666, x1, 81*XLEN/8, x2) + +inst_371: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0xb504f333, x1, 82*XLEN/8, x2) + +inst_372: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0xb504f333, x1, 83*XLEN/8, x2) + +inst_373: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x2, x1, 84*XLEN/8, x2) + +inst_374: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x5555555555555554, x1, 85*XLEN/8, x2) + +inst_375: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x0, x1, 86*XLEN/8, x2) + +inst_376: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x4, x1, 87*XLEN/8, x2) + +inst_377: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x3333333333333332, x1, 88*XLEN/8, x2) + +inst_378: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x6666666666666665, x1, 89*XLEN/8, x2) + +inst_379: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0xb504f332, x1, 90*XLEN/8, x2) + +inst_380: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x5555555555555556, x1, 91*XLEN/8, x2) + +inst_381: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0x5555555555555555, x1, 92*XLEN/8, x2) + +inst_382: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x6, x1, 93*XLEN/8, x2) + +inst_383: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x3333333333333334, x1, 94*XLEN/8, x2) + +inst_384: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0x6666666666666667, x1, 95*XLEN/8, x2) + +inst_385: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, -0xb504f332, x1, 96*XLEN/8, x2) + +inst_386: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x2, 0xb504f334, x1, 97*XLEN/8, x2) + +inst_387: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x3, x1, 98*XLEN/8, x2) + +inst_388: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x1, 99*XLEN/8, x2) + +inst_389: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x1, 100*XLEN/8, x2) + +inst_390: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x5, x1, 101*XLEN/8, x2) + +inst_391: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x1, 102*XLEN/8, x2) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x1, 103*XLEN/8, x2) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x1, 104*XLEN/8, x2) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x1, 105*XLEN/8, x2) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x2, x1, 106*XLEN/8, x2) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x1, 107*XLEN/8, x2) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x0, x1, 108*XLEN/8, x2) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x4, x1, 109*XLEN/8, x2) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x1, 110*XLEN/8, x2) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x1, 111*XLEN/8, x2) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x1, 112*XLEN/8, x2) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x1, 113*XLEN/8, x2) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x1, 114*XLEN/8, x2) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x6, x1, 115*XLEN/8, x2) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x1, 116*XLEN/8, x2) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x1, 117*XLEN/8, x2) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x1, 118*XLEN/8, x2) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x1, 119*XLEN/8, x2) + +inst_409: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x3, x1, 120*XLEN/8, x2) + +inst_410: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x5555555555555555, x1, 121*XLEN/8, x2) + +inst_411: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x5555555555555556, x1, 122*XLEN/8, x2) + +inst_412: +// rs1_val==0 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x5, x1, 123*XLEN/8, x2) + +inst_413: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x3333333333333333, x1, 124*XLEN/8, x2) + +inst_414: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x6666666666666666, x1, 125*XLEN/8, x2) + +inst_415: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0xb504f333, x1, 126*XLEN/8, x2) + +inst_416: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0xb504f333, x1, 127*XLEN/8, x2) + +inst_417: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0xb504f332, x1, 128*XLEN/8, x2) + +inst_418: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0xb504f334, x1, 129*XLEN/8, x2) + +inst_419: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x3, x1, 130*XLEN/8, x2) + +inst_420: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x5555555555555555, x1, 131*XLEN/8, x2) + +inst_421: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x5555555555555556, x1, 132*XLEN/8, x2) + +inst_422: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x5, x1, 133*XLEN/8, x2) + +inst_423: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x3333333333333333, x1, 134*XLEN/8, x2) + +inst_424: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x6666666666666666, x1, 135*XLEN/8, x2) + +inst_425: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0xb504f333, x1, 136*XLEN/8, x2) + +inst_426: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0xb504f333, x1, 137*XLEN/8, x2) + +inst_427: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x2, x1, 138*XLEN/8, x2) + +inst_428: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x5555555555555554, x1, 139*XLEN/8, x2) + +inst_429: +// rs1_val==4 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x0, x1, 140*XLEN/8, x2) + +inst_430: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x4, x1, 141*XLEN/8, x2) + +inst_431: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x3333333333333332, x1, 142*XLEN/8, x2) + +inst_432: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x6666666666666665, x1, 143*XLEN/8, x2) + +inst_433: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0xb504f332, x1, 144*XLEN/8, x2) + +inst_434: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x5555555555555556, x1, 145*XLEN/8, x2) + +inst_435: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0x5555555555555555, x1, 146*XLEN/8, x2) + +inst_436: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x6, x1, 147*XLEN/8, x2) + +inst_437: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x3333333333333334, x1, 148*XLEN/8, x2) + +inst_438: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0x6666666666666667, x1, 149*XLEN/8, x2) + +inst_439: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, -0xb504f332, x1, 150*XLEN/8, x2) + +inst_440: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x4, 0xb504f334, x1, 151*XLEN/8, x2) + +inst_441: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x3, x1, 152*XLEN/8, x2) + +inst_442: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x1, 153*XLEN/8, x2) + +inst_443: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x1, 154*XLEN/8, x2) + +inst_444: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x5, x1, 155*XLEN/8, x2) + +inst_445: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x1, 156*XLEN/8, x2) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x1, 157*XLEN/8, x2) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x1, 158*XLEN/8, x2) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x1, 159*XLEN/8, x2) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x2, x1, 160*XLEN/8, x2) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x1, 161*XLEN/8, x2) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x0, x1, 162*XLEN/8, x2) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x4, x1, 163*XLEN/8, x2) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x1, 164*XLEN/8, x2) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x1, 165*XLEN/8, x2) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x1, 166*XLEN/8, x2) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x1, 167*XLEN/8, x2) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x1, 168*XLEN/8, x2) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x6, x1, 169*XLEN/8, x2) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x1, 170*XLEN/8, x2) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x1, 171*XLEN/8, x2) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x1, 172*XLEN/8, x2) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x1, 173*XLEN/8, x2) + +inst_463: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x3, x1, 174*XLEN/8, x2) + +inst_464: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x1, 175*XLEN/8, x2) + +inst_465: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x1, 176*XLEN/8, x2) + +inst_466: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x5, x1, 177*XLEN/8, x2) + +inst_467: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x1, 178*XLEN/8, x2) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x1, 179*XLEN/8, x2) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x1, 180*XLEN/8, x2) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x1, 181*XLEN/8, x2) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x2, x1, 182*XLEN/8, x2) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x1, 183*XLEN/8, x2) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x0, x1, 184*XLEN/8, x2) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x4, x1, 185*XLEN/8, x2) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x1, 186*XLEN/8, x2) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x1, 187*XLEN/8, x2) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x1, 188*XLEN/8, x2) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x1, 189*XLEN/8, x2) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x1, 190*XLEN/8, x2) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x6, x1, 191*XLEN/8, x2) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x1, 192*XLEN/8, x2) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x1, 193*XLEN/8, x2) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x1, 194*XLEN/8, x2) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x1, 195*XLEN/8, x2) + +inst_485: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x3, x1, 196*XLEN/8, x2) + +inst_486: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x1, 197*XLEN/8, x2) + +inst_487: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x1, 198*XLEN/8, x2) + +inst_488: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x5, x1, 199*XLEN/8, x2) + +inst_489: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x1, 200*XLEN/8, x2) + +inst_490: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x1, 201*XLEN/8, x2) + +inst_491: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x1, 202*XLEN/8, x2) + +inst_492: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x1, 203*XLEN/8, x2) + +inst_493: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x2, x1, 204*XLEN/8, x2) + +inst_494: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x1, 205*XLEN/8, x2) + +inst_495: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x0, x1, 206*XLEN/8, x2) + +inst_496: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x4, x1, 207*XLEN/8, x2) + +inst_497: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x1, 208*XLEN/8, x2) + +inst_498: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x1, 209*XLEN/8, x2) + +inst_499: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x1, 210*XLEN/8, x2) + +inst_500: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x1, 211*XLEN/8, x2) + +inst_501: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x1, 212*XLEN/8, x2) + +inst_502: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x6, x1, 213*XLEN/8, x2) + +inst_503: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x1, 214*XLEN/8, x2) + +inst_504: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x1, 215*XLEN/8, x2) + +inst_505: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x1, 216*XLEN/8, x2) + +inst_506: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x1, 217*XLEN/8, x2) + +inst_507: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x3, x1, 218*XLEN/8, x2) + +inst_508: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x1, 219*XLEN/8, x2) + +inst_509: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x1, 220*XLEN/8, x2) + +inst_510: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x5, x1, 221*XLEN/8, x2) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x1, 222*XLEN/8, x2) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x1, 223*XLEN/8, x2) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x1, 224*XLEN/8, x2) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x1, 225*XLEN/8, x2) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x2, x1, 226*XLEN/8, x2) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x1, 227*XLEN/8, x2) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x0, x1, 228*XLEN/8, x2) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x4, x1, 229*XLEN/8, x2) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x1, 230*XLEN/8, x2) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x1, 231*XLEN/8, x2) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x1, 232*XLEN/8, x2) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x1, 233*XLEN/8, x2) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x1, 234*XLEN/8, x2) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x6, x1, 235*XLEN/8, x2) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x1, 236*XLEN/8, x2) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x1, 237*XLEN/8, x2) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x1, 238*XLEN/8, x2) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x1, 239*XLEN/8, x2) + +inst_529: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x3, x1, 240*XLEN/8, x2) + +inst_530: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x1, 241*XLEN/8, x2) + +inst_531: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x1, 242*XLEN/8, x2) + +inst_532: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x5, x1, 243*XLEN/8, x2) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x1, 244*XLEN/8, x2) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x1, 245*XLEN/8, x2) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x1, 246*XLEN/8, x2) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x1, 247*XLEN/8, x2) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x2, x1, 248*XLEN/8, x2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x1, 249*XLEN/8, x2) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x0, x1, 250*XLEN/8, x2) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x4, x1, 251*XLEN/8, x2) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x1, 252*XLEN/8, x2) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x1, 253*XLEN/8, x2) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x1, 254*XLEN/8, x2) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x1, 255*XLEN/8, x2) +RVTEST_SIGBASE(x1,signature_x1_2) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x1, 0*XLEN/8, x2) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x6, x1, 1*XLEN/8, x2) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x1, 2*XLEN/8, x2) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x1, 3*XLEN/8, x2) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x1, 4*XLEN/8, x2) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x1, 5*XLEN/8, x2) + +inst_551: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x3, x1, 6*XLEN/8, x2) + +inst_552: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x5555555555555555, x1, 7*XLEN/8, x2) + +inst_553: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0x5555555555555556, x1, 8*XLEN/8, x2) + +inst_554: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x5, x1, 9*XLEN/8, x2) + +inst_555: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x3333333333333333, x1, 10*XLEN/8, x2) + +inst_556: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x6666666666666666, x1, 11*XLEN/8, x2) + +inst_557: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0xb504f333, x1, 12*XLEN/8, x2) + +inst_558: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0xb504f333, x1, 13*XLEN/8, x2) + +inst_559: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x2, x1, 14*XLEN/8, x2) + +inst_560: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x5555555555555554, x1, 15*XLEN/8, x2) + +inst_561: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x0, x1, 16*XLEN/8, x2) + +inst_562: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x4, x1, 17*XLEN/8, x2) + +inst_563: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x3333333333333332, x1, 18*XLEN/8, x2) + +inst_564: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x6666666666666665, x1, 19*XLEN/8, x2) + +inst_565: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0xb504f332, x1, 20*XLEN/8, x2) + +inst_566: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x5555555555555556, x1, 21*XLEN/8, x2) + +inst_567: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0x5555555555555555, x1, 22*XLEN/8, x2) + +inst_568: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x6, x1, 23*XLEN/8, x2) + +inst_569: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x3333333333333334, x1, 24*XLEN/8, x2) + +inst_570: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0x6666666666666667, x1, 25*XLEN/8, x2) + +inst_571: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, -0xb504f332, x1, 26*XLEN/8, x2) + +inst_572: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6, 0xb504f334, x1, 27*XLEN/8, x2) + +inst_573: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x3, x1, 28*XLEN/8, x2) + +inst_574: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x1, 29*XLEN/8, x2) + +inst_575: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x1, 30*XLEN/8, x2) + +inst_576: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x5, x1, 31*XLEN/8, x2) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x1, 32*XLEN/8, x2) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x1, 33*XLEN/8, x2) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x1, 34*XLEN/8, x2) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x1, 35*XLEN/8, x2) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x2, x1, 36*XLEN/8, x2) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x1, 37*XLEN/8, x2) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x0, x1, 38*XLEN/8, x2) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x4, x1, 39*XLEN/8, x2) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x1, 40*XLEN/8, x2) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x1, 41*XLEN/8, x2) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x1, 42*XLEN/8, x2) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x1, 43*XLEN/8, x2) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x1, 44*XLEN/8, x2) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x6, x1, 45*XLEN/8, x2) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x1, 46*XLEN/8, x2) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x1, 47*XLEN/8, x2) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x1, 48*XLEN/8, x2) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x1, 49*XLEN/8, x2) + +inst_595: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x3, x1, 50*XLEN/8, x2) + +inst_596: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x1, 51*XLEN/8, x2) + +inst_597: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x1, 52*XLEN/8, x2) + +inst_598: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x5, x1, 53*XLEN/8, x2) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x1, 54*XLEN/8, x2) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x1, 55*XLEN/8, x2) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x1, 56*XLEN/8, x2) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x1, 57*XLEN/8, x2) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x2, x1, 58*XLEN/8, x2) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x1, 59*XLEN/8, x2) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x0, x1, 60*XLEN/8, x2) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x4, x1, 61*XLEN/8, x2) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x1, 62*XLEN/8, x2) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x1, 63*XLEN/8, x2) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x1, 64*XLEN/8, x2) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x1, 65*XLEN/8, x2) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x1, 66*XLEN/8, x2) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x6, x1, 67*XLEN/8, x2) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x1, 68*XLEN/8, x2) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x1, 69*XLEN/8, x2) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x1, 70*XLEN/8, x2) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x1, 71*XLEN/8, x2) + +inst_617: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x3, x1, 72*XLEN/8, x2) + +inst_618: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x1, 73*XLEN/8, x2) + +inst_619: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x1, 74*XLEN/8, x2) + +inst_620: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x5, x1, 75*XLEN/8, x2) + +inst_621: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x1, 76*XLEN/8, x2) + +inst_622: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x1, 77*XLEN/8, x2) + +inst_623: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x1, 78*XLEN/8, x2) + +inst_624: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x1, 79*XLEN/8, x2) + +inst_625: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x2, x1, 80*XLEN/8, x2) + +inst_626: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x1, 81*XLEN/8, x2) + +inst_627: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x0, x1, 82*XLEN/8, x2) + +inst_628: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x4, x1, 83*XLEN/8, x2) + +inst_629: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x1, 84*XLEN/8, x2) + +inst_630: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x1, 85*XLEN/8, x2) + +inst_631: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x1, 86*XLEN/8, x2) + +inst_632: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x1, 87*XLEN/8, x2) + +inst_633: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x1, 88*XLEN/8, x2) + +inst_634: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x6, x1, 89*XLEN/8, x2) + +inst_635: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x1, 90*XLEN/8, x2) + +inst_636: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x1, 91*XLEN/8, x2) + +inst_637: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x1, 92*XLEN/8, x2) + +inst_638: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x1, 93*XLEN/8, x2) + +inst_639: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x3, x1, 94*XLEN/8, x2) + +inst_640: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x1, 95*XLEN/8, x2) + +inst_641: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x1, 96*XLEN/8, x2) + +inst_642: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x5, x1, 97*XLEN/8, x2) + +inst_643: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x1, 98*XLEN/8, x2) + +inst_644: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x1, 99*XLEN/8, x2) + +inst_645: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x1, 100*XLEN/8, x2) + +inst_646: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x1, 101*XLEN/8, x2) + +inst_647: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x2, x1, 102*XLEN/8, x2) + +inst_648: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x1, 103*XLEN/8, x2) + +inst_649: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x0, x1, 104*XLEN/8, x2) + +inst_650: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x4, x1, 105*XLEN/8, x2) + +inst_651: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x1, 106*XLEN/8, x2) + +inst_652: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x1, 107*XLEN/8, x2) + +inst_653: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x1, 108*XLEN/8, x2) + +inst_654: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x1, 109*XLEN/8, x2) + +inst_655: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x1, 110*XLEN/8, x2) + +inst_656: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x6, x1, 111*XLEN/8, x2) + +inst_657: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x1, 112*XLEN/8, x2) + +inst_658: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x1, 113*XLEN/8, x2) + +inst_659: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x1, 114*XLEN/8, x2) + +inst_660: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x1, 115*XLEN/8, x2) + +inst_661: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x5555555555555554, x1, 116*XLEN/8, x2) + +inst_662: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x0, x1, 117*XLEN/8, x2) + +inst_663: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x4, x1, 118*XLEN/8, x2) + +inst_664: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x3333333333333332, x1, 119*XLEN/8, x2) + +inst_665: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x6666666666666665, x1, 120*XLEN/8, x2) + +inst_666: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0xb504f332, x1, 121*XLEN/8, x2) + +inst_667: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x5555555555555556, x1, 122*XLEN/8, x2) + +inst_668: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, -0x5555555555555555, x1, 123*XLEN/8, x2) + +inst_669: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x6, x1, 124*XLEN/8, x2) + +inst_670: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x3333333333333334, x1, 125*XLEN/8, x2) + +inst_671: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x0, 0x6666666666666667, x1, 126*XLEN/8, x2) + +inst_672: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs1_val == 9223372036854775807, rs2_val == -129 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:-0x81 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, 0x7fffffffffffffff, -0x81, x1, 127*XLEN/8, x2) + +inst_673: +// rs2_val == -17, rs1_val == -549755813889 +// opcode: mop.rr.6 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:-0x11 +TEST_RR_OP(mop.rr.6, x31, x30, x29, 0, -0x8000000001, -0x11, 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_x6_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x6_1: + .fill 17*((XLEN/8)/4),4,0xdeadbeef + + +signature_x7_0: + .fill 16*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_2: + .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/Zimop/src/mop.rr.7-01.S b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.7-01.S new file mode 100644 index 000000000..beaff0c2c --- /dev/null +++ b/riscv-test-suite/rv64i_m/Zimop/src/mop.rr.7-01.S @@ -0,0 +1,3497 @@ + +// ----------- +// This file was generated by riscv_ctg (https://github.com/riscv-software-src/riscv-ctg) +// version : 0.11.1 +// timestamp : Fri Sep 22 00:56:54 2023 GMT +// usage : riscv_ctg \ +// -- cgf // --cgf /riscv-ctg/sample_cgfs/dataset.cgf \ +// --cgf /riscv-ctg/sample_cgfs/zimop.cgf \ + \ +// -- xlen 64 \ +// --randomize \ +// ----------- +// +// ----------- +// Copyright (c) 2020. RISC-V International. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause +// ----------- +// +// This assembly file tests the mop.rr.7 instruction of the RISC-V RV64Zimop extension for the mop.rr.7 covergroup. +// +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV64IZimop") + +.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(.*Zimop.*);def TEST_CASE_1=True;",mop.rr.7) + +RVTEST_SIGBASE(x10,signature_x10_1) + +inst_0: +// rs1 == rd != rs2, rs1==x8, rs2==x28, rd==x8, rs1_val != rs2_val, rs1_val == 4, rs2_val == 0, rs1_val==4 and rs2_val==0 +// opcode: mop.rr.7 ; op1:x8; op2:x28; dest:x8; op1val:0x4; op2val:0x0 +TEST_RR_OP(mop.rr.7, x8, x8, x28, 0, 0x4, 0x0, x10, 0*XLEN/8, x11) + +inst_1: +// rs2 == rd != rs1, rs1==x29, rs2==x9, rd==x9, rs1_val < 0 and rs2_val < 0, rs1_val == -6148914691236517206, rs2_val == -8193 +// opcode: mop.rr.7 ; op1:x29; op2:x9; dest:x9; op1val:-0x5555555555555556; op2val:-0x2001 +TEST_RR_OP(mop.rr.7, x9, x29, x9, 0, -0x5555555555555556, -0x2001, x10, 1*XLEN/8, x11) + +inst_2: +// rs1 != rs2 and rs1 != rd and rs2 != rd, rs1==x4, rs2==x20, rd==x3, rs1_val < 0 and rs2_val > 0, rs1_val == -17, rs2_val == 549755813888 +// opcode: mop.rr.7 ; op1:x4; op2:x20; dest:x3; op1val:-0x11; op2val:0x8000000000 +TEST_RR_OP(mop.rr.7, x3, x4, x20, 0, -0x11, 0x8000000000, x10, 2*XLEN/8, x11) + +inst_3: +// rs1 == rs2 != rd, rs1==x31, rs2==x31, rd==x1, rs1_val == (-2**(xlen-1)), rs2_val == -16385, rs1_val == -9223372036854775808 +// opcode: mop.rr.7 ; op1:x31; op2:x31; dest:x1; op1val:-0x8000000000000000; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.7, x1, x31, x31, 0, -0x8000000000000000, -0x8000000000000000, x10, 3*XLEN/8, x11) + +inst_4: +// rs1 == rs2 == rd, rs1==x24, rs2==x24, rd==x24, rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs1_val == 9223372036854775807, rs2_val == -72057594037927937 +// opcode: mop.rr.7 ; op1:x24; op2:x24; dest:x24; op1val:0x7fffffffffffffff; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.7, x24, x24, x24, 0, 0x7fffffffffffffff, 0x7fffffffffffffff, x10, 4*XLEN/8, x11) + +inst_5: +// rs1==x1, rs2==x0, rd==x23, rs1_val == 0, rs1_val==0 and rs2_val==5 +// opcode: mop.rr.7 ; op1:x1; op2:x0; dest:x23; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.7, x23, x1, x0, 0, 0x0, 0x0, x10, 5*XLEN/8, x11) + +inst_6: +// rs1==x30, rs2==x6, rd==x2, rs1_val == 1, rs1_val > 0 and rs2_val > 0, rs2_val == 32768 +// opcode: mop.rr.7 ; op1:x30; op2:x6; dest:x2; op1val:0x1; op2val:0x8000 +TEST_RR_OP(mop.rr.7, x2, x30, x6, 0, 0x1, 0x8000, x10, 6*XLEN/8, x11) + +inst_7: +// rs1==x21, rs2==x23, rd==x22, rs2_val == -2, rs1_val == 128 +// opcode: mop.rr.7 ; op1:x21; op2:x23; dest:x22; op1val:0x80; op2val:-0x2 +TEST_RR_OP(mop.rr.7, x22, x21, x23, 0, 0x80, -0x2, x10, 7*XLEN/8, x11) + +inst_8: +// rs1==x7, rs2==x16, rd==x15, rs2_val == -3, rs1_val == 72057594037927936 +// opcode: mop.rr.7 ; op1:x7; op2:x16; dest:x15; op1val:0x100000000000000; op2val:-0x3 +TEST_RR_OP(mop.rr.7, x15, x7, x16, 0, 0x100000000000000, -0x3, x10, 8*XLEN/8, x11) + +inst_9: +// rs1==x5, rs2==x13, rd==x26, rs2_val == -5, +// opcode: mop.rr.7 ; op1:x5; op2:x13; dest:x26; op1val:0x4; op2val:-0x5 +TEST_RR_OP(mop.rr.7, x26, x5, x13, 0, 0x4, -0x5, x10, 9*XLEN/8, x11) + +inst_10: +// rs1==x20, rs2==x17, rd==x31, rs2_val == -9, rs1_val == 131072 +// opcode: mop.rr.7 ; op1:x20; op2:x17; dest:x31; op1val:0x20000; op2val:-0x9 +TEST_RR_OP(mop.rr.7, x31, x20, x17, 0, 0x20000, -0x9, x10, 10*XLEN/8, x11) + +inst_11: +// rs1==x16, rs2==x30, rd==x4, rs2_val == -17, rs1_val == -72057594037927937 +// opcode: mop.rr.7 ; op1:x16; op2:x30; dest:x4; op1val:-0x100000000000001; op2val:-0x11 +TEST_RR_OP(mop.rr.7, x4, x16, x30, 0, -0x100000000000001, -0x11, x10, 11*XLEN/8, x11) + +inst_12: +// rs1==x27, rs2==x21, rd==x19, rs2_val == -33, +// opcode: mop.rr.7 ; op1:x27; op2:x21; dest:x19; op1val:-0xb504f332; op2val:-0x21 +TEST_RR_OP(mop.rr.7, x19, x27, x21, 0, -0xb504f332, -0x21, x10, 12*XLEN/8, x11) + +inst_13: +// rs1==x14, rs2==x29, rd==x5, rs2_val == -65, rs1_val == 4194304 +// opcode: mop.rr.7 ; op1:x14; op2:x29; dest:x5; op1val:0x400000; op2val:-0x41 +TEST_RR_OP(mop.rr.7, x5, x14, x29, 0, 0x400000, -0x41, x10, 13*XLEN/8, x7) +RVTEST_SIGBASE(x1,signature_x1_0) + +inst_14: +// rs1==x15, rs2==x4, rd==x18, rs2_val == -129, +// opcode: mop.rr.7 ; op1:x15; op2:x4; dest:x18; op1val:-0x5555555555555556; op2val:-0x81 +TEST_RR_OP(mop.rr.7, x18, x15, x4, 0, -0x5555555555555556, -0x81, x1, 0*XLEN/8, x7) + +inst_15: +// rs1==x12, rs2==x26, rd==x13, rs2_val == -257, rs1_val == -2049 +// opcode: mop.rr.7 ; op1:x12; op2:x26; dest:x13; op1val:-0x801; op2val:-0x101 +TEST_RR_OP(mop.rr.7, x13, x12, x26, 0, -0x801, -0x101, x1, 1*XLEN/8, x7) + +inst_16: +// rs1==x2, rs2==x18, rd==x30, rs2_val == -513, rs1_val == 268435456 +// opcode: mop.rr.7 ; op1:x2; op2:x18; dest:x30; op1val:0x10000000; op2val:-0x201 +TEST_RR_OP(mop.rr.7, x30, x2, x18, 0, 0x10000000, -0x201, x1, 2*XLEN/8, x7) + +inst_17: +// rs1==x6, rs2==x2, rd==x27, rs2_val == -1025, +// opcode: mop.rr.7 ; op1:x6; op2:x2; dest:x27; op1val:0x5; op2val:-0x401 +TEST_RR_OP(mop.rr.7, x27, x6, x2, 0, 0x5, -0x401, x1, 3*XLEN/8, x7) + +inst_18: +// rs1==x17, rs2==x15, rd==x12, rs2_val == -2049, rs1_val == -68719476737 +// opcode: mop.rr.7 ; op1:x17; op2:x15; dest:x12; op1val:-0x1000000001; op2val:-0x801 +TEST_RR_OP(mop.rr.7, x12, x17, x15, 0, -0x1000000001, -0x801, x1, 4*XLEN/8, x7) + +inst_19: +// rs1==x19, rs2==x27, rd==x25, rs2_val == -4097, rs1_val == -67108865 +// opcode: mop.rr.7 ; op1:x19; op2:x27; dest:x25; op1val:-0x4000001; op2val:-0x1001 +TEST_RR_OP(mop.rr.7, x25, x19, x27, 0, -0x4000001, -0x1001, x1, 5*XLEN/8, x7) + +inst_20: +// rs1==x9, rs2==x11, rd==x28, rs2_val == -32769, rs1_val == 4398046511104 +// opcode: mop.rr.7 ; op1:x9; op2:x11; dest:x28; op1val:0x40000000000; op2val:-0x8001 +TEST_RR_OP(mop.rr.7, x28, x9, x11, 0, 0x40000000000, -0x8001, x1, 6*XLEN/8, x7) + +inst_21: +// rs1==x22, rs2==x5, rd==x0, rs2_val == -65537, +// opcode: mop.rr.7 ; op1:x22; op2:x5; dest:x0; op1val:-0x8000000000000000; op2val:-0x10001 +TEST_RR_OP(mop.rr.7, x0, x22, x5, 0, -0x8000000000000000, -0x10001, x1, 7*XLEN/8, x7) + +inst_22: +// rs1==x26, rs2==x3, rd==x20, rs2_val == -131073, rs1_val == -8796093022209 +// opcode: mop.rr.7 ; op1:x26; op2:x3; dest:x20; op1val:-0x80000000001; op2val:-0x20001 +TEST_RR_OP(mop.rr.7, x20, x26, x3, 0, -0x80000000001, -0x20001, x1, 8*XLEN/8, x7) + +inst_23: +// rs1==x10, rs2==x14, rd==x29, rs2_val == -262145, +// opcode: mop.rr.7 ; op1:x10; op2:x14; dest:x29; op1val:-0xb504f332; op2val:-0x40001 +TEST_RR_OP(mop.rr.7, x29, x10, x14, 0, -0xb504f332, -0x40001, x1, 9*XLEN/8, x7) + +inst_24: +// rs1==x25, rs2==x8, rd==x16, rs2_val == -524289, rs1_val == 6148914691236517205 +// opcode: mop.rr.7 ; op1:x25; op2:x8; dest:x16; op1val:0x5555555555555555; op2val:-0x80001 +TEST_RR_OP(mop.rr.7, x16, x25, x8, 0, 0x5555555555555555, -0x80001, x1, 10*XLEN/8, x7) + +inst_25: +// rs1==x23, rs2==x19, rd==x7, rs2_val == -1048577, +// opcode: mop.rr.7 ; op1:x23; op2:x19; dest:x7; op1val:0x6666666666666667; op2val:-0x100001 +TEST_RR_OP(mop.rr.7, x7, x23, x19, 0, 0x6666666666666667, -0x100001, x1, 11*XLEN/8, x4) +RVTEST_SIGBASE(x2,signature_x2_0) + +inst_26: +// rs1==x13, rs2==x25, rd==x11, rs2_val == -2097153, +// opcode: mop.rr.7 ; op1:x13; op2:x25; dest:x11; op1val:0x6666666666666666; op2val:-0x200001 +TEST_RR_OP(mop.rr.7, x11, x13, x25, 0, 0x6666666666666666, -0x200001, x2, 0*XLEN/8, x4) + +inst_27: +// rs1==x0, rs2==x7, rd==x21, rs2_val == -4194305, rs1_val == 36028797018963968 +// opcode: mop.rr.7 ; op1:x0; op2:x7; dest:x21; op1val:0x0; op2val:-0x400001 +TEST_RR_OP(mop.rr.7, x21, x0, x7, 0, 0x0, -0x400001, x2, 1*XLEN/8, x4) + +inst_28: +// rs1==x28, rs2==x10, rd==x6, rs2_val == -8388609, +// opcode: mop.rr.7 ; op1:x28; op2:x10; dest:x6; op1val:0x5555555555555556; op2val:-0x800001 +TEST_RR_OP(mop.rr.7, x6, x28, x10, 0, 0x5555555555555556, -0x800001, x2, 2*XLEN/8, x4) + +inst_29: +// rs1==x11, rs2==x22, rd==x10, rs2_val == -16777217, +// opcode: mop.rr.7 ; op1:x11; op2:x22; dest:x10; op1val:-0xa; op2val:-0x1000001 +TEST_RR_OP(mop.rr.7, x10, x11, x22, 0, -0xa, -0x1000001, x2, 3*XLEN/8, x4) + +inst_30: +// rs1==x18, rs2==x12, rd==x17, rs2_val == -33554433, rs1_val == -262145 +// opcode: mop.rr.7 ; op1:x18; op2:x12; dest:x17; op1val:-0x40001; op2val:-0x2000001 +TEST_RR_OP(mop.rr.7, x17, x18, x12, 0, -0x40001, -0x2000001, x2, 4*XLEN/8, x4) + +inst_31: +// rs1==x3, rs2==x1, rd==x14, rs2_val == -67108865, rs1_val == 70368744177664 +// opcode: mop.rr.7 ; op1:x3; op2:x1; dest:x14; op1val:0x400000000000; op2val:-0x4000001 +TEST_RR_OP(mop.rr.7, x14, x3, x1, 0, 0x400000000000, -0x4000001, x2, 5*XLEN/8, x4) + +inst_32: +// rs2_val == -134217729, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x11; op2val:-0x8000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x11, -0x8000001, x2, 6*XLEN/8, x4) + +inst_33: +// rs2_val == -268435457, rs1_val == 67108864 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:-0x10000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000000, -0x10000001, x2, 7*XLEN/8, x4) + +inst_34: +// rs2_val == -536870913, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40001; op2val:-0x20000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40001, -0x20000001, x2, 8*XLEN/8, x4) + +inst_35: +// rs2_val == -1073741825, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1; op2val:-0x40000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1, -0x40000001, x2, 9*XLEN/8, x4) + +inst_36: +// rs2_val == -2147483649, rs1_val == -9 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:-0x80000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x9, -0x80000001, x2, 10*XLEN/8, x4) + +inst_37: +// rs2_val == -4294967297, rs1_val == -4194305 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x400001; op2val:-0x100000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x400001, -0x100000001, x2, 11*XLEN/8, x4) + +inst_38: +// rs2_val == -8589934593, rs1_val == 2097152 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200000; op2val:-0x200000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200000, -0x200000001, x2, 12*XLEN/8, x4) + +inst_39: +// rs2_val == -17179869185, rs1_val == -1099511627777 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:-0x400000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10000000001, -0x400000001, x2, 13*XLEN/8, x4) + +inst_40: +// rs2_val == -34359738369, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000; op2val:-0x800000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000000, -0x800000001, x2, 14*XLEN/8, x4) + +inst_41: +// rs2_val == -68719476737, rs1_val == 8388608 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800000; op2val:-0x1000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800000, -0x1000000001, x2, 15*XLEN/8, x4) + +inst_42: +// rs2_val == -137438953473, rs1_val == -4398046511105 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000001; op2val:-0x2000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40000000001, -0x2000000001, x2, 16*XLEN/8, x4) + +inst_43: +// rs2_val == -274877906945, rs1_val == -2147483649 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x4000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x80000001, -0x4000000001, x2, 17*XLEN/8, x4) + +inst_44: +// rs2_val == -549755813889, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:-0x8000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x7fffffffffffffff, -0x8000000001, x2, 18*XLEN/8, x4) + +inst_45: +// rs2_val == -1099511627777, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x10000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0x10000000001, x2, 19*XLEN/8, x4) + +inst_46: +// rs2_val == -2199023255553, rs1_val == -524289 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x20000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x80001, -0x20000000001, x2, 20*XLEN/8, x4) + +inst_47: +// rs2_val == -4398046511105, rs1_val == -4294967297 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:-0x40000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x100000001, -0x40000000001, x2, 21*XLEN/8, x4) + +inst_48: +// rs2_val == -8796093022209, rs1_val == -33554433 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000001, -0x80000000001, x2, 22*XLEN/8, x4) + +inst_49: +// rs2_val == -17592186044417, rs1_val == -70368744177665 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x400000000001, -0x100000000001, x2, 23*XLEN/8, x4) + +inst_50: +// rs2_val == -35184372088833, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x200000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x200000000001, x2, 24*XLEN/8, x4) + +inst_51: +// rs2_val == -70368744177665, rs1_val == 34359738368 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800000000, -0x400000000001, x2, 25*XLEN/8, x4) + +inst_52: +// rs2_val == -140737488355329, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x80001; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x80001, -0x800000000001, x2, 26*XLEN/8, x4) + +inst_53: +// rs2_val == -281474976710657, rs1_val == -16385 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:-0x1000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4001, -0x1000000000001, x2, 27*XLEN/8, x4) + +inst_54: +// rs2_val == -562949953421313, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, -0x2000000000001, x2, 28*XLEN/8, x4) + +inst_55: +// rs2_val == -1125899906842625, rs1_val == 4294967296 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000; op2val:-0x4000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x100000000, -0x4000000000001, x2, 29*XLEN/8, x4) + +inst_56: +// rs2_val == -2251799813685249, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000001; op2val:-0x8000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x400000000001, -0x8000000000001, x2, 30*XLEN/8, x4) + +inst_57: +// rs2_val == -4503599627370497, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x10000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x10000000000001, x2, 31*XLEN/8, x4) + +inst_58: +// rs2_val == -9007199254740993, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, -0x20000000000001, x2, 32*XLEN/8, x4) + +inst_59: +// rs2_val == -18014398509481985, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x40000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, -0x40000000000001, x2, 33*XLEN/8, x4) + +inst_60: +// rs2_val == -36028797018963969, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000001; op2val:-0x80000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10000000001, -0x80000000000001, x2, 34*XLEN/8, x4) + +inst_61: +// rs2_val == -144115188075855873, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x200000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x200000000000001, x2, 35*XLEN/8, x4) + +inst_62: +// rs2_val == -288230376151711745, rs1_val == 512 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200; op2val:-0x400000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200, -0x400000000000001, x2, 36*XLEN/8, x4) + +inst_63: +// rs2_val == -576460752303423489, rs1_val == 134217728 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8000000, -0x800000000000001, x2, 37*XLEN/8, x4) + +inst_64: +// rs2_val == -1152921504606846977, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000001; op2val:-0x1000000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x80000001, -0x1000000000000001, x2, 38*XLEN/8, x4) + +inst_65: +// rs2_val == -2305843009213693953, rs1_val == 32 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20, -0x2000000000000001, x2, 39*XLEN/8, x4) + +inst_66: +// rs2_val == -4611686018427387905, rs1_val == 8589934592 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200000000, -0x4000000000000001, x2, 40*XLEN/8, x4) + +inst_67: +// rs2_val == 9223372036854775807, rs2_val == (2**(xlen-1)-1) +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x7fffffffffffffff +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x7fffffffffffffff, x2, 41*XLEN/8, x4) + +inst_68: +// rs1_val == -2, rs2_val == 33554432 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2; op2val:0x2000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2, 0x2000000, x2, 42*XLEN/8, x4) + +inst_69: +// rs1_val == -3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x3; op2val:-0x800000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x3, -0x800000000001, x2, 43*XLEN/8, x4) + +inst_70: +// rs1_val == -5, rs2_val == 288230376151711744 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5; op2val:0x400000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5, 0x400000000000000, x2, 44*XLEN/8, x4) + +inst_71: +// rs1_val == -33, rs2_val == 68719476736 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x21; op2val:0x1000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x21, 0x1000000000, x2, 45*XLEN/8, x4) + +inst_72: +// rs1_val == -65, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x41; op2val:-0x8001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x41, -0x8001, x2, 46*XLEN/8, x4) + +inst_73: +// rs1_val == -129, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:-0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x81, -0x3, x2, 47*XLEN/8, x4) + +inst_74: +// rs1_val == -257, rs2_val == 281474976710656 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x101; op2val:0x1000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x101, 0x1000000000000, x2, 48*XLEN/8, x4) + +inst_75: +// rs1_val == -513, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x8000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x201, 0x8000000000, x2, 49*XLEN/8, x4) + +inst_76: +// rs1_val == -1025, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x401; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x401, -0x2000000000000001, x2, 50*XLEN/8, x4) + +inst_77: +// rs1_val == -4097, rs2_val == (-2**(xlen-1)), rs2_val == -9223372036854775808 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1001; op2val:-0x8000000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1001, -0x8000000000000000, x2, 51*XLEN/8, x4) + +inst_78: +// rs1_val == -8193, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2001; op2val:-0x4000000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2001, -0x4000000000000001, x2, 52*XLEN/8, x4) + +inst_79: +// rs1_val == -32769, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8001; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8001, -0x800000000000001, x2, 53*XLEN/8, x4) + +inst_80: +// rs1_val == -65537, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10001; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10001, -0x100000000001, x2, 54*XLEN/8, x4) + +inst_81: +// rs1_val == -131073, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20001; op2val:-0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20001, -0x6, x2, 55*XLEN/8, x4) + +inst_82: +// rs1_val == -1048577, rs2_val == 2305843009213693952 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x100001; op2val:0x2000000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x100001, 0x2000000000000000, x2, 56*XLEN/8, x4) + +inst_83: +// rs1_val == -2097153, rs2_val == 64 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x200001; op2val:0x40 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x200001, 0x40, x2, 57*XLEN/8, x4) + +inst_84: +// rs1_val == -8388609, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x800001; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x800001, -0xb504f333, x2, 58*XLEN/8, x4) + +inst_85: +// rs1_val == -16777217, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000001; op2val:-0x21 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1000001, -0x21, x2, 59*XLEN/8, x4) + +inst_86: +// rs1_val == -134217729, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000001, 0x0, x2, 60*XLEN/8, x4) + +inst_87: +// rs1_val == -268435457, rs2_val == 36028797018963968 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000001; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10000001, 0x80000000000000, x2, 61*XLEN/8, x4) + +inst_88: +// rs1_val == -536870913, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:-0x201 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000001, -0x201, x2, 62*XLEN/8, x4) + +inst_89: +// rs1_val == -1073741825, rs2_val == 274877906944 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000001; op2val:0x4000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40000001, 0x4000000000, x2, 63*XLEN/8, x4) + +inst_90: +// rs1_val == -8589934593, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000001; op2val:-0x800000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x200000001, -0x800000000000001, x2, 64*XLEN/8, x4) + +inst_91: +// rs1_val == -17179869185, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000001; op2val:-0x80000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x400000001, -0x80000000001, x2, 65*XLEN/8, x4) + +inst_92: +// rs1_val == -34359738369, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000001; op2val:0x4000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x800000001, 0x4000000000, x2, 66*XLEN/8, x4) + +inst_93: +// rs1_val == -137438953473, rs2_val == 8 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x8 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000000001, 0x8, x2, 67*XLEN/8, x4) + +inst_94: +// rs1_val == -274877906945, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4000000001, 0x5, x2, 68*XLEN/8, x4) + +inst_95: +// rs1_val == -549755813889, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:-0x80000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000001, -0x80000001, x2, 69*XLEN/8, x4) + +inst_96: +// rs1_val == -2199023255553, rs2_val == 17179869184 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000001; op2val:0x400000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000000001, 0x400000000, x2, 70*XLEN/8, x4) + +inst_97: +// rs1_val == -17592186044417, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000000001; op2val:0x40 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x100000000001, 0x40, x2, 71*XLEN/8, x4) + +inst_98: +// rs1_val == -35184372088833, rs2_val == 8192 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000001; op2val:0x2000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x200000000001, 0x2000, x2, 72*XLEN/8, x4) + +inst_99: +// rs1_val == -140737488355329, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000001; op2val:-0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x800000000001, -0x3, x2, 73*XLEN/8, x4) + +inst_100: +// rs1_val == -281474976710657, rs2_val == 4 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000001; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1000000000001, 0x4, x2, 74*XLEN/8, x4) + +inst_101: +// rs1_val == -562949953421313, rs2_val == 137438953472 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x2000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000000000001, 0x2000000000, x2, 75*XLEN/8, x4) + +inst_102: +// rs1_val == -1125899906842625, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000001; op2val:-0x2000000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4000000000001, -0x2000000000000001, x2, 76*XLEN/8, x4) + +inst_103: +// rs1_val == -2251799813685249, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:-0x101 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000000001, -0x101, x2, 77*XLEN/8, x4) + +inst_104: +// rs1_val == -4503599627370497, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:-0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10000000000001, -0x6, x2, 78*XLEN/8, x4) + +inst_105: +// rs1_val == -9007199254740993, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x2000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000000000001, 0x2000, x2, 79*XLEN/8, x4) + +inst_106: +// rs1_val == -18014398509481985, rs2_val == 1024 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x40000000000001; op2val:0x400 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x40000000000001, 0x400, x2, 80*XLEN/8, x4) + +inst_107: +// rs1_val == -36028797018963969, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x80000000000001; op2val:0x8 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x80000000000001, 0x8, x2, 81*XLEN/8, x4) + +inst_108: +// rs1_val == -144115188075855873, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x200000000000001; op2val:-0x1 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x200000000000001, -0x1, x2, 82*XLEN/8, x4) + +inst_109: +// rs1_val == -288230376151711745, rs2_val == 4398046511104 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x400000000000001; op2val:0x40000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x400000000000001, 0x40000000000, x2, 83*XLEN/8, x4) + +inst_110: +// rs1_val == -576460752303423489, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x800000000000001, 0x5, x2, 84*XLEN/8, x4) + +inst_111: +// rs1_val == -1152921504606846977, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1000000000000001; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1000000000000001, 0x5555555555555556, x2, 85*XLEN/8, x4) + +inst_112: +// rs1_val == -2305843009213693953, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000000001; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000000000000001, 0x4, x2, 86*XLEN/8, x4) + +inst_113: +// rs1_val == -4611686018427387905, rs2_val == 70368744177664 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000001; op2val:0x400000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4000000000000001, 0x400000000000, x2, 87*XLEN/8, x4) + +inst_114: +// rs2_val == 1, rs1_val == 32768 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8000; op2val:0x1 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8000, 0x1, x2, 88*XLEN/8, x4) + +inst_115: +// rs2_val == 2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x1; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x1, 0x2, x2, 89*XLEN/8, x4) + +inst_116: +// rs2_val == 16, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000001; op2val:0x10 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000000001, 0x10, x2, 90*XLEN/8, x4) + +inst_117: +// rs2_val == 32, rs1_val == 1152921504606846976 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:0x20 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000000000000000, 0x20, x2, 91*XLEN/8, x4) + +inst_118: +// rs2_val == 128, rs1_val == 8 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x80 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8, 0x80, x2, 92*XLEN/8, x4) + +inst_119: +// rs2_val == 256, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000001; op2val:0x100 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000001, 0x100, x2, 93*XLEN/8, x4) + +inst_120: +// rs2_val == 512, rs1_val == 281474976710656 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000; op2val:0x200 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000000000000, 0x200, x2, 94*XLEN/8, x4) + +inst_121: +// rs2_val == 2048, rs1_val == 68719476736 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000; op2val:0x800 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000000000, 0x800, x2, 95*XLEN/8, x4) + +inst_122: +// rs2_val == 4096, rs1_val == 524288 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000; op2val:0x1000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000, 0x1000, x2, 96*XLEN/8, x4) + +inst_123: +// rs2_val == 16384, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x4000, x2, 97*XLEN/8, x4) + +inst_124: +// rs2_val == 65536, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x10000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000001, 0x10000, x2, 98*XLEN/8, x4) + +inst_125: +// rs2_val == 131072, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000001; op2val:0x20000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4000000001, 0x20000, x2, 99*XLEN/8, x4) + +inst_126: +// rs2_val == 262144, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x40000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x40000, x2, 100*XLEN/8, x4) + +inst_127: +// rs2_val == 524288, rs1_val == 140737488355328 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000; op2val:0x80000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800000000000, 0x80000, x2, 101*XLEN/8, x4) + +inst_128: +// rs2_val == 1048576, rs1_val == 2 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x100000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x100000, x2, 102*XLEN/8, x4) + +inst_129: +// rs2_val == 2097152, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x800000000000001; op2val:0x200000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x800000000000001, 0x200000, x2, 103*XLEN/8, x4) + +inst_130: +// rs2_val == 4194304, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x400000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x400000, x2, 104*XLEN/8, x4) + +inst_131: +// rs2_val == 8388608, rs1_val == 2048 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x800000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800, 0x800000, x2, 105*XLEN/8, x4) + +inst_132: +// rs2_val == 16777216, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x100000001; op2val:0x1000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x100000001, 0x1000000, x2, 106*XLEN/8, x4) + +inst_133: +// rs2_val == 67108864, rs1_val == 16384 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000; op2val:0x4000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000, 0x4000000, x2, 107*XLEN/8, x4) + +inst_134: +// rs2_val == 134217728, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x8000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x8000000, x2, 108*XLEN/8, x4) + +inst_135: +// rs2_val == 268435456, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4000000000000000; op2val:0x10000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4000000000000000, 0x10000000, x2, 109*XLEN/8, x4) + +inst_136: +// rs2_val == 536870912, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000001; op2val:0x20000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000001, 0x20000000, x2, 110*XLEN/8, x4) + +inst_137: +// rs2_val == 1073741824, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800; op2val:0x40000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800, 0x40000000, x2, 111*XLEN/8, x4) + +inst_138: +// rs2_val == 2147483648, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x80000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x80000000, x2, 112*XLEN/8, x4) + +inst_139: +// rs2_val == 4294967296, rs1_val == 35184372088832 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000; op2val:0x100000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200000000000, 0x100000000, x2, 113*XLEN/8, x4) + +inst_140: +// rs2_val == 8589934592, rs1_val == 137438953472 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000; op2val:0x200000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2000000000, 0x200000000, x2, 114*XLEN/8, x4) + +inst_141: +// rs2_val == 34359738368, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:0x800000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000000001, 0x800000000, x2, 115*XLEN/8, x4) + +inst_142: +// rs2_val == 1099511627776, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x81; op2val:0x10000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x81, 0x10000000000, x2, 116*XLEN/8, x4) + +inst_143: +// rs2_val == 2199023255552, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x2000000000001; op2val:0x20000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x2000000000001, 0x20000000000, x2, 117*XLEN/8, x4) + +inst_144: +// rs2_val == 8796093022208, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x4001; op2val:0x80000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x4001, 0x80000000000, x2, 118*XLEN/8, x4) + +inst_145: +// rs2_val == 17592186044416, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x801; op2val:0x100000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x801, 0x100000000000, x2, 119*XLEN/8, x4) + +inst_146: +// rs2_val == 35184372088832, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8; op2val:0x200000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8, 0x200000000000, x2, 120*XLEN/8, x4) + +inst_147: +// rs2_val == 140737488355328, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x201; op2val:0x800000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x201, 0x800000000000, x2, 121*XLEN/8, x4) + +inst_148: +// rs2_val == 562949953421312, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000001; op2val:0x2000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000000001, 0x2000000000000, x2, 122*XLEN/8, x4) + +inst_149: +// rs2_val == 1125899906842624, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000001; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000001, 0x4000000000000, x2, 123*XLEN/8, x4) + +inst_150: +// rs2_val == 2251799813685248, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x9; op2val:0x8000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x9, 0x8000000000000, x2, 124*XLEN/8, x4) + +inst_151: +// rs2_val == 4503599627370496, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:0x10000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000000000000, 0x10000000000000, x2, 125*XLEN/8, x4) + +inst_152: +// rs2_val == 9007199254740992, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x20000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x20000000000000, x2, 126*XLEN/8, x4) + +inst_153: +// rs2_val == 18014398509481984, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x40000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x40000000000000, x2, 127*XLEN/8, x4) + +inst_154: +// rs2_val == 72057594037927936, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:0x100000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000000000000, 0x100000000000000, x2, 128*XLEN/8, x4) + +inst_155: +// rs2_val == 144115188075855872, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x20000000000001; op2val:0x200000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x20000000000001, 0x200000000000000, x2, 129*XLEN/8, x4) + +inst_156: +// rs2_val == 576460752303423488, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x800000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x800000000000000, x2, 130*XLEN/8, x4) + +inst_157: +// rs2_val == 1152921504606846976, rs1_val == rs2_val +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000000000000; op2val:0x1000000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000000000000000, 0x1000000000000000, x2, 131*XLEN/8, x4) + +inst_158: +// rs2_val == 4611686018427387904, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x10000000000001; op2val:0x4000000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x10000000000001, 0x4000000000000000, x2, 132*XLEN/8, x4) + +inst_159: +// rs1_val==3 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x3, x2, 133*XLEN/8, x4) + +inst_160: +// rs1_val == 16, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10; op2val:0x80000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10, 0x80000000000000, x2, 134*XLEN/8, x4) + +inst_161: +// rs1_val == 64, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x40; op2val:0x400000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x40, 0x400000000000, x2, 135*XLEN/8, x4) + +inst_162: +// rs1_val == 256, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x100; op2val:-0x2000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x100, -0x2000000000001, x2, 136*XLEN/8, x4) + +inst_163: +// rs1_val == 1024, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x400; op2val:-0x400000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x400, -0x400000000001, x2, 137*XLEN/8, x4) + +inst_164: +// rs1_val == 4096, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000; op2val:0x400000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000, 0x400000000, x2, 138*XLEN/8, x4) + +inst_165: +// rs1_val == 8192, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2000; op2val:-0x101 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2000, -0x101, x2, 139*XLEN/8, x4) + +inst_166: +// rs1_val == 65536, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10000; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10000, -0xb504f332, x2, 140*XLEN/8, x4) + +inst_167: +// rs1_val == 262144, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x40000; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x40000, -0xb504f332, x2, 141*XLEN/8, x4) + +inst_168: +// rs1_val == 1048576, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x100000; op2val:0x4000000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x100000, 0x4000000000000, x2, 142*XLEN/8, x4) + +inst_169: +// rs1_val == 16777216, rs2_val == 6148914691236517205 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x1000000; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x1000000, 0x5555555555555555, x2, 143*XLEN/8, x4) + +inst_170: +// rs1_val == 33554432, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000; op2val:0x10000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2000000, 0x10000, x2, 144*XLEN/8, x4) + +inst_171: +// rs1_val == 536870912, rs2_val == -6148914691236517206 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20000000, -0x5555555555555556, x2, 145*XLEN/8, x4) + +inst_172: +// rs1_val == 1073741824, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000; op2val:0x40000000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x40000000, 0x40000000000, x2, 146*XLEN/8, x4) + +inst_173: +// rs1_val == 2147483648, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000; op2val:0x1 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000000, 0x1, x2, 147*XLEN/8, x4) + +inst_174: +// rs1_val == 17179869184, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000; op2val:0x80000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x400000000, 0x80000000, x2, 148*XLEN/8, x4) + +inst_175: +// rs1_val == 274877906944, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000000000, 0x5555555555555554, x2, 149*XLEN/8, x4) + +inst_176: +// rs1_val == 549755813888, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000; op2val:-0x21 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8000000000, -0x21, x2, 150*XLEN/8, x4) + +inst_177: +// rs1_val == 1099511627776, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000; op2val:-0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10000000000, -0x6, x2, 151*XLEN/8, x4) + +inst_178: +// rs1_val == 2199023255552, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000; op2val:-0x100000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20000000000, -0x100000000001, x2, 152*XLEN/8, x4) + +inst_179: +// rs1_val == 8796093022208, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000000000, 0x6666666666666665, x2, 153*XLEN/8, x4) + +inst_180: +// rs1_val == 17592186044416, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x100000000000; op2val:0x100000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x100000000000, 0x100000, x2, 154*XLEN/8, x4) + +inst_181: +// rs1_val == 562949953421312, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000; op2val:0x40000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2000000000000, 0x40000, x2, 155*XLEN/8, x4) + +inst_182: +// rs1_val == 1125899906842624, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000; op2val:0x1000000 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000000000000, 0x1000000, x2, 156*XLEN/8, x4) + +inst_183: +// rs1_val == 2251799813685248, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x8000000000000; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x8000000000000, 0xb504f332, x2, 157*XLEN/8, x4) + +inst_184: +// rs1_val == 4503599627370496, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x10000000000000; op2val:-0x4001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x10000000000000, -0x4001, x2, 158*XLEN/8, x4) + +inst_185: +// rs1_val == 9007199254740992, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x20000000000000; op2val:-0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x20000000000000, -0x6, x2, 159*XLEN/8, x4) + +inst_186: +// rs1_val == 18014398509481984, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x40000000000000; op2val:-0x800001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x40000000000000, -0x800001, x2, 160*XLEN/8, x4) + +inst_187: +// rs1_val == 144115188075855872, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x200000000000000; op2val:-0x20000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x200000000000000, -0x20000000000001, x2, 161*XLEN/8, x4) + +inst_188: +// rs1_val == 288230376151711744, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x400000000000000; op2val:0x10 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x400000000000000, 0x10, x2, 162*XLEN/8, x4) + +inst_189: +// rs1_val == 576460752303423488, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x800000000000000; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x800000000000000, 0xb504f333, x2, 163*XLEN/8, x4) + +inst_190: +// rs1_val == 2305843009213693952, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2000000000000000; op2val:-0x20000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2000000000000000, -0x20000001, x2, 164*XLEN/8, x4) + +inst_191: +// rs1_val == 4611686018427387904, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4000000000000000; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4000000000000000, 0x5555555555555555, x2, 165*XLEN/8, x4) + +inst_192: +// rs1_val==3 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x5555555555555555, x2, 166*XLEN/8, x4) + +inst_193: +// rs1_val==3 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0x5555555555555556, x2, 167*XLEN/8, x4) + +inst_194: +// rs1_val==3 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x5, x2, 168*XLEN/8, x4) + +inst_195: +// rs1_val==3 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x3333333333333333, x2, 169*XLEN/8, x4) + +inst_196: +// rs1_val==3 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x6666666666666666, x2, 170*XLEN/8, x4) + +inst_197: +// rs1_val==3 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0xb504f333, x2, 171*XLEN/8, x4) + +inst_198: +// rs1_val==3 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0xb504f333, x2, 172*XLEN/8, x4) + +inst_199: +// rs1_val==3 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x2, x2, 173*XLEN/8, x4) + +inst_200: +// rs1_val==3 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x5555555555555554, x2, 174*XLEN/8, x4) + +inst_201: +// rs1_val==3 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x0, x2, 175*XLEN/8, x4) + +inst_202: +// rs1_val==3 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x4, x2, 176*XLEN/8, x4) + +inst_203: +// rs1_val==3 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x3333333333333332, x2, 177*XLEN/8, x4) + +inst_204: +// rs1_val==3 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x6666666666666665, x2, 178*XLEN/8, x4) + +inst_205: +// rs1_val==3 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0xb504f332, x2, 179*XLEN/8, x4) + +inst_206: +// rs1_val==3 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x5555555555555556, x2, 180*XLEN/8, x4) + +inst_207: +// rs1_val==3 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0x5555555555555555, x2, 181*XLEN/8, x4) + +inst_208: +// rs1_val==3 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x6, x2, 182*XLEN/8, x4) + +inst_209: +// rs1_val==3 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x3333333333333334, x2, 183*XLEN/8, x4) + +inst_210: +// rs1_val==3 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0x6666666666666667, x2, 184*XLEN/8, x4) + +inst_211: +// rs1_val==3 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, -0xb504f332, x2, 185*XLEN/8, x4) + +inst_212: +// rs1_val==3 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3, 0xb504f334, x2, 186*XLEN/8, x4) + +inst_213: +// rs1_val==6148914691236517205 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x3, x2, 187*XLEN/8, x4) + +inst_214: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555555, x2, 188*XLEN/8, x4) + +inst_215: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555556, x2, 189*XLEN/8, x4) + +inst_216: +// rs1_val==6148914691236517205 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x5, x2, 190*XLEN/8, x4) + +inst_217: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333333, x2, 191*XLEN/8, x4) + +inst_218: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666666, x2, 192*XLEN/8, x4) + +inst_219: +// rs1_val==6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, -0xb504f333, x2, 193*XLEN/8, x4) + +inst_220: +// rs1_val==6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0xb504f333, x2, 194*XLEN/8, x4) + +inst_221: +// rs1_val==6148914691236517205 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x2, x2, 195*XLEN/8, x4) + +inst_222: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555554, x2, 196*XLEN/8, x4) + +inst_223: +// rs1_val==6148914691236517205 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x0, x2, 197*XLEN/8, x4) + +inst_224: +// rs1_val==6148914691236517205 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x4, x2, 198*XLEN/8, x4) + +inst_225: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333332, x2, 199*XLEN/8, x4) + +inst_226: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666665, x2, 200*XLEN/8, x4) + +inst_227: +// rs1_val==6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0xb504f332, x2, 201*XLEN/8, x4) + +inst_228: +// rs1_val==6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x5555555555555556, x2, 202*XLEN/8, x4) + +inst_229: +// rs1_val==6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, -0x5555555555555555, x2, 203*XLEN/8, x4) + +inst_230: +// rs1_val==6148914691236517205 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x6, x2, 204*XLEN/8, x4) + +inst_231: +// rs1_val==6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x3333333333333334, x2, 205*XLEN/8, x4) + +inst_232: +// rs1_val==6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0x6666666666666667, x2, 206*XLEN/8, x4) + +inst_233: +// rs1_val==6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, -0xb504f332, x2, 207*XLEN/8, x4) + +inst_234: +// rs1_val==6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555555, 0xb504f334, x2, 208*XLEN/8, x4) + +inst_235: +// rs1_val==-6148914691236517206 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x3, x2, 209*XLEN/8, x4) + +inst_236: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555555, x2, 210*XLEN/8, x4) + +inst_237: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555556, x2, 211*XLEN/8, x4) + +inst_238: +// rs1_val==-6148914691236517206 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x5, x2, 212*XLEN/8, x4) + +inst_239: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333333, x2, 213*XLEN/8, x4) + +inst_240: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666666, x2, 214*XLEN/8, x4) + +inst_241: +// rs1_val==-6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, -0xb504f333, x2, 215*XLEN/8, x4) + +inst_242: +// rs1_val==-6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0xb504f333, x2, 216*XLEN/8, x4) + +inst_243: +// rs1_val==-6148914691236517206 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x2, x2, 217*XLEN/8, x4) + +inst_244: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555554, x2, 218*XLEN/8, x4) + +inst_245: +// rs1_val==-6148914691236517206 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x0, x2, 219*XLEN/8, x4) + +inst_246: +// rs1_val==-6148914691236517206 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x4, x2, 220*XLEN/8, x4) + +inst_247: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333332, x2, 221*XLEN/8, x4) + +inst_248: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666665, x2, 222*XLEN/8, x4) + +inst_249: +// rs1_val==-6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0xb504f332, x2, 223*XLEN/8, x4) + +inst_250: +// rs1_val==-6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x5555555555555556, x2, 224*XLEN/8, x4) + +inst_251: +// rs1_val==-6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, -0x5555555555555555, x2, 225*XLEN/8, x4) + +inst_252: +// rs1_val==-6148914691236517206 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x6, x2, 226*XLEN/8, x4) + +inst_253: +// rs1_val==-6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x3333333333333334, x2, 227*XLEN/8, x4) + +inst_254: +// rs1_val==-6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0x6666666666666667, x2, 228*XLEN/8, x4) + +inst_255: +// rs1_val==-6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, -0xb504f332, x2, 229*XLEN/8, x4) + +inst_256: +// rs1_val==-6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555556, 0xb504f334, x2, 230*XLEN/8, x4) + +inst_257: +// rs1_val==5 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x3, x2, 231*XLEN/8, x4) + +inst_258: +// rs1_val==5 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x5555555555555555, x2, 232*XLEN/8, x4) + +inst_259: +// rs1_val==5 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0x5555555555555556, x2, 233*XLEN/8, x4) + +inst_260: +// rs1_val==5 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x5, x2, 234*XLEN/8, x4) + +inst_261: +// rs1_val==5 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x3333333333333333, x2, 235*XLEN/8, x4) + +inst_262: +// rs1_val==5 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x6666666666666666, x2, 236*XLEN/8, x4) + +inst_263: +// rs1_val==5 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0xb504f333, x2, 237*XLEN/8, x4) + +inst_264: +// rs1_val==5 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0xb504f333, x2, 238*XLEN/8, x4) + +inst_265: +// rs1_val==5 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x2, x2, 239*XLEN/8, x4) + +inst_266: +// rs1_val==5 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x5555555555555554, x2, 240*XLEN/8, x4) + +inst_267: +// rs1_val==5 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x0, x2, 241*XLEN/8, x4) + +inst_268: +// rs1_val==5 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x4, x2, 242*XLEN/8, x4) + +inst_269: +// rs1_val==5 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x3333333333333332, x2, 243*XLEN/8, x4) + +inst_270: +// rs1_val==5 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x6666666666666665, x2, 244*XLEN/8, x4) + +inst_271: +// rs1_val==5 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0xb504f332, x2, 245*XLEN/8, x4) + +inst_272: +// rs1_val==5 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x5555555555555556, x2, 246*XLEN/8, x4) + +inst_273: +// rs1_val==5 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0x5555555555555555, x2, 247*XLEN/8, x4) + +inst_274: +// rs1_val==5 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x6, x2, 248*XLEN/8, x4) + +inst_275: +// rs1_val==5 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x3333333333333334, x2, 249*XLEN/8, x4) + +inst_276: +// rs1_val==5 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0x6666666666666667, x2, 250*XLEN/8, x4) + +inst_277: +// rs1_val==5 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, -0xb504f332, x2, 251*XLEN/8, x4) + +inst_278: +// rs1_val==5 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5, 0xb504f334, x2, 252*XLEN/8, x4) + +inst_279: +// rs1_val==3689348814741910323 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x3, x2, 253*XLEN/8, x4) + +inst_280: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555555, x2, 254*XLEN/8, x4) + +inst_281: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555556, x2, 255*XLEN/8, x4) +RVTEST_SIGBASE(x2,signature_x2_1) + +inst_282: +// rs1_val==3689348814741910323 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x5, x2, 0*XLEN/8, x4) + +inst_283: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333333, x2, 1*XLEN/8, x4) + +inst_284: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666666, x2, 2*XLEN/8, x4) + +inst_285: +// rs1_val==3689348814741910323 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, -0xb504f333, x2, 3*XLEN/8, x4) + +inst_286: +// rs1_val==3689348814741910323 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0xb504f333, x2, 4*XLEN/8, x4) + +inst_287: +// rs1_val==3689348814741910323 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x2, x2, 5*XLEN/8, x4) + +inst_288: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555554, x2, 6*XLEN/8, x4) + +inst_289: +// rs1_val==3689348814741910323 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x0, x2, 7*XLEN/8, x4) + +inst_290: +// rs1_val==3689348814741910323 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x4, x2, 8*XLEN/8, x4) + +inst_291: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333332, x2, 9*XLEN/8, x4) + +inst_292: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666665, x2, 10*XLEN/8, x4) + +inst_293: +// rs1_val==3689348814741910323 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0xb504f332, x2, 11*XLEN/8, x4) + +inst_294: +// rs1_val==3689348814741910323 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x5555555555555556, x2, 12*XLEN/8, x4) + +inst_295: +// rs1_val==3689348814741910323 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, -0x5555555555555555, x2, 13*XLEN/8, x4) + +inst_296: +// rs1_val==3689348814741910323 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x6, x2, 14*XLEN/8, x4) + +inst_297: +// rs1_val==3689348814741910323 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x3333333333333334, x2, 15*XLEN/8, x4) + +inst_298: +// rs1_val==3689348814741910323 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0x6666666666666667, x2, 16*XLEN/8, x4) + +inst_299: +// rs1_val==3689348814741910323 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, -0xb504f332, x2, 17*XLEN/8, x4) + +inst_300: +// rs1_val==3689348814741910323 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333333, 0xb504f334, x2, 18*XLEN/8, x4) + +inst_301: +// rs1_val==7378697629483820646 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x3, x2, 19*XLEN/8, x4) + +inst_302: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555555, x2, 20*XLEN/8, x4) + +inst_303: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555556, x2, 21*XLEN/8, x4) + +inst_304: +// rs1_val==7378697629483820646 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x5, x2, 22*XLEN/8, x4) + +inst_305: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333333, x2, 23*XLEN/8, x4) + +inst_306: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666666, x2, 24*XLEN/8, x4) + +inst_307: +// rs1_val==7378697629483820646 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, -0xb504f333, x2, 25*XLEN/8, x4) + +inst_308: +// rs1_val==7378697629483820646 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0xb504f333, x2, 26*XLEN/8, x4) + +inst_309: +// rs1_val==7378697629483820646 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x2, x2, 27*XLEN/8, x4) + +inst_310: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555554, x2, 28*XLEN/8, x4) + +inst_311: +// rs1_val==7378697629483820646 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x0, x2, 29*XLEN/8, x4) + +inst_312: +// rs1_val==7378697629483820646 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x4, x2, 30*XLEN/8, x4) + +inst_313: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333332, x2, 31*XLEN/8, x4) + +inst_314: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666665, x2, 32*XLEN/8, x4) + +inst_315: +// rs1_val==7378697629483820646 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0xb504f332, x2, 33*XLEN/8, x4) + +inst_316: +// rs1_val==7378697629483820646 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x5555555555555556, x2, 34*XLEN/8, x4) + +inst_317: +// rs1_val==7378697629483820646 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, -0x5555555555555555, x2, 35*XLEN/8, x4) + +inst_318: +// rs1_val==7378697629483820646 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x6, x2, 36*XLEN/8, x4) + +inst_319: +// rs1_val==7378697629483820646 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x3333333333333334, x2, 37*XLEN/8, x4) + +inst_320: +// rs1_val==7378697629483820646 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0x6666666666666667, x2, 38*XLEN/8, x4) + +inst_321: +// rs1_val==7378697629483820646 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, -0xb504f332, x2, 39*XLEN/8, x4) + +inst_322: +// rs1_val==7378697629483820646 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666666; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666666, 0xb504f334, x2, 40*XLEN/8, x4) + +inst_323: +// rs1_val==-3037000499 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x3, x2, 41*XLEN/8, x4) + +inst_324: +// rs1_val==-3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x5555555555555555, x2, 42*XLEN/8, x4) + +inst_325: +// rs1_val==-3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, -0x5555555555555556, x2, 43*XLEN/8, x4) + +inst_326: +// rs1_val==-3037000499 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x5, x2, 44*XLEN/8, x4) + +inst_327: +// rs1_val==-3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x3333333333333333, x2, 45*XLEN/8, x4) + +inst_328: +// rs1_val==-3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x6666666666666666, x2, 46*XLEN/8, x4) + +inst_329: +// rs1_val==-3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, -0xb504f333, x2, 47*XLEN/8, x4) + +inst_330: +// rs1_val==-3037000499 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0xb504f333, x2, 48*XLEN/8, x4) + +inst_331: +// rs1_val==-3037000499 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x2, x2, 49*XLEN/8, x4) + +inst_332: +// rs1_val==-3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x5555555555555554, x2, 50*XLEN/8, x4) + +inst_333: +// rs1_val==-3037000499 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x0, x2, 51*XLEN/8, x4) + +inst_334: +// rs1_val==-3037000499 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x4, x2, 52*XLEN/8, x4) + +inst_335: +// rs1_val==-3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x3333333333333332, x2, 53*XLEN/8, x4) + +inst_336: +// rs1_val==-3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x6666666666666665, x2, 54*XLEN/8, x4) + +inst_337: +// rs1_val==-3037000499 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0xb504f332, x2, 55*XLEN/8, x4) + +inst_338: +// rs1_val==-3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x5555555555555556, x2, 56*XLEN/8, x4) + +inst_339: +// rs1_val==-3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, -0x5555555555555555, x2, 57*XLEN/8, x4) + +inst_340: +// rs1_val==-3037000499 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x6, x2, 58*XLEN/8, x4) + +inst_341: +// rs1_val==-3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x3333333333333334, x2, 59*XLEN/8, x4) + +inst_342: +// rs1_val==-3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0x6666666666666667, x2, 60*XLEN/8, x4) + +inst_343: +// rs1_val==-3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, -0xb504f332, x2, 61*XLEN/8, x4) + +inst_344: +// rs1_val==-3037000499 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f333, 0xb504f334, x2, 62*XLEN/8, x4) + +inst_345: +// rs1_val==3037000499 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x3, x2, 63*XLEN/8, x4) + +inst_346: +// rs1_val==3037000499 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x5555555555555555, x2, 64*XLEN/8, x4) + +inst_347: +// rs1_val==3037000499 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, -0x5555555555555556, x2, 65*XLEN/8, x4) + +inst_348: +// rs1_val==3037000499 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x5, x2, 66*XLEN/8, x4) + +inst_349: +// rs1_val==3037000499 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x3333333333333333, x2, 67*XLEN/8, x4) + +inst_350: +// rs1_val==3037000499 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x6666666666666666, x2, 68*XLEN/8, x4) + +inst_351: +// rs1_val==3037000499 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, -0xb504f333, x2, 69*XLEN/8, x4) + +inst_352: +// rs1_val==3037000499 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0xb504f333, x2, 70*XLEN/8, x4) + +inst_353: +// rs1_val==3037000499 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x2, x2, 71*XLEN/8, x4) + +inst_354: +// rs1_val==3037000499 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x5555555555555554, x2, 72*XLEN/8, x4) + +inst_355: +// rs1_val==3037000499 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x0, x2, 73*XLEN/8, x4) + +inst_356: +// rs1_val==3037000499 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x4, x2, 74*XLEN/8, x4) + +inst_357: +// rs1_val==3037000499 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x3333333333333332, x2, 75*XLEN/8, x4) + +inst_358: +// rs1_val==3037000499 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x6666666666666665, x2, 76*XLEN/8, x4) + +inst_359: +// rs1_val==3037000499 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0xb504f332, x2, 77*XLEN/8, x4) + +inst_360: +// rs1_val==3037000499 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x5555555555555556, x2, 78*XLEN/8, x4) + +inst_361: +// rs1_val==3037000499 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, -0x5555555555555555, x2, 79*XLEN/8, x4) + +inst_362: +// rs1_val==3037000499 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x6, x2, 80*XLEN/8, x4) + +inst_363: +// rs1_val==3037000499 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x3333333333333334, x2, 81*XLEN/8, x4) + +inst_364: +// rs1_val==3037000499 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0x6666666666666667, x2, 82*XLEN/8, x4) + +inst_365: +// rs1_val==3037000499 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, -0xb504f332, x2, 83*XLEN/8, x4) + +inst_366: +// rs1_val==3037000499 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f333; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f333, 0xb504f334, x2, 84*XLEN/8, x4) + +inst_367: +// rs1_val==2 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x3, x2, 85*XLEN/8, x4) + +inst_368: +// rs1_val==2 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x5555555555555555, x2, 86*XLEN/8, x4) + +inst_369: +// rs1_val==2 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0x5555555555555556, x2, 87*XLEN/8, x4) + +inst_370: +// rs1_val==2 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x5, x2, 88*XLEN/8, x4) + +inst_371: +// rs1_val==2 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x3333333333333333, x2, 89*XLEN/8, x4) + +inst_372: +// rs1_val==2 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x6666666666666666, x2, 90*XLEN/8, x4) + +inst_373: +// rs1_val==2 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0xb504f333, x2, 91*XLEN/8, x4) + +inst_374: +// rs1_val==2 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0xb504f333, x2, 92*XLEN/8, x4) + +inst_375: +// rs1_val==2 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x2, x2, 93*XLEN/8, x4) + +inst_376: +// rs1_val==2 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x5555555555555554, x2, 94*XLEN/8, x4) + +inst_377: +// rs1_val==2 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x0, x2, 95*XLEN/8, x4) + +inst_378: +// rs1_val==2 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x4, x2, 96*XLEN/8, x4) + +inst_379: +// rs1_val==2 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x3333333333333332, x2, 97*XLEN/8, x4) + +inst_380: +// rs1_val==2 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x6666666666666665, x2, 98*XLEN/8, x4) + +inst_381: +// rs1_val==2 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0xb504f332, x2, 99*XLEN/8, x4) + +inst_382: +// rs1_val==2 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x5555555555555556, x2, 100*XLEN/8, x4) + +inst_383: +// rs1_val==2 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0x5555555555555555, x2, 101*XLEN/8, x4) + +inst_384: +// rs1_val==2 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x6, x2, 102*XLEN/8, x4) + +inst_385: +// rs1_val==2 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x3333333333333334, x2, 103*XLEN/8, x4) + +inst_386: +// rs1_val==2 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0x6666666666666667, x2, 104*XLEN/8, x4) + +inst_387: +// rs1_val==2 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, -0xb504f332, x2, 105*XLEN/8, x4) + +inst_388: +// rs1_val==2 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x2; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x2, 0xb504f334, x2, 106*XLEN/8, x4) + +inst_389: +// rs1_val==6148914691236517204 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x3, x2, 107*XLEN/8, x4) + +inst_390: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555555, x2, 108*XLEN/8, x4) + +inst_391: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555556, x2, 109*XLEN/8, x4) + +inst_392: +// rs1_val==6148914691236517204 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x5, x2, 110*XLEN/8, x4) + +inst_393: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333333, x2, 111*XLEN/8, x4) + +inst_394: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666666, x2, 112*XLEN/8, x4) + +inst_395: +// rs1_val==6148914691236517204 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, -0xb504f333, x2, 113*XLEN/8, x4) + +inst_396: +// rs1_val==6148914691236517204 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0xb504f333, x2, 114*XLEN/8, x4) + +inst_397: +// rs1_val==6148914691236517204 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x2, x2, 115*XLEN/8, x4) + +inst_398: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555554, x2, 116*XLEN/8, x4) + +inst_399: +// rs1_val==6148914691236517204 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x0, x2, 117*XLEN/8, x4) + +inst_400: +// rs1_val==6148914691236517204 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x4, x2, 118*XLEN/8, x4) + +inst_401: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333332, x2, 119*XLEN/8, x4) + +inst_402: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666665, x2, 120*XLEN/8, x4) + +inst_403: +// rs1_val==6148914691236517204 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0xb504f332, x2, 121*XLEN/8, x4) + +inst_404: +// rs1_val==6148914691236517204 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x5555555555555556, x2, 122*XLEN/8, x4) + +inst_405: +// rs1_val==6148914691236517204 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, -0x5555555555555555, x2, 123*XLEN/8, x4) + +inst_406: +// rs1_val==6148914691236517204 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x6, x2, 124*XLEN/8, x4) + +inst_407: +// rs1_val==6148914691236517204 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x3333333333333334, x2, 125*XLEN/8, x4) + +inst_408: +// rs1_val==6148914691236517204 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0x6666666666666667, x2, 126*XLEN/8, x4) + +inst_409: +// rs1_val==6148914691236517204 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, -0xb504f332, x2, 127*XLEN/8, x4) + +inst_410: +// rs1_val==6148914691236517204 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555554; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555554, 0xb504f334, x2, 128*XLEN/8, x4) + +inst_411: +// rs1_val==0 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x3, x2, 129*XLEN/8, x4) + +inst_412: +// rs1_val==0 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x5555555555555555, x2, 130*XLEN/8, x4) + +inst_413: +// rs1_val==0 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0x5555555555555556, x2, 131*XLEN/8, x4) + +inst_414: +// rs1_val==0 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x3333333333333333, x2, 132*XLEN/8, x4) + +inst_415: +// rs1_val==0 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x6666666666666666, x2, 133*XLEN/8, x4) + +inst_416: +// rs1_val==0 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0xb504f333, x2, 134*XLEN/8, x4) + +inst_417: +// rs1_val==0 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0xb504f333, x2, 135*XLEN/8, x4) + +inst_418: +// rs1_val==0 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0xb504f332, x2, 136*XLEN/8, x4) + +inst_419: +// rs1_val==0 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0xb504f334, x2, 137*XLEN/8, x4) + +inst_420: +// rs1_val==4 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x3, x2, 138*XLEN/8, x4) + +inst_421: +// rs1_val==4 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x5555555555555555, x2, 139*XLEN/8, x4) + +inst_422: +// rs1_val==4 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x5555555555555556, x2, 140*XLEN/8, x4) + +inst_423: +// rs1_val==4 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x5, x2, 141*XLEN/8, x4) + +inst_424: +// rs1_val==4 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x3333333333333333, x2, 142*XLEN/8, x4) + +inst_425: +// rs1_val==4 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x6666666666666666, x2, 143*XLEN/8, x4) + +inst_426: +// rs1_val==4 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0xb504f333, x2, 144*XLEN/8, x4) + +inst_427: +// rs1_val==4 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0xb504f333, x2, 145*XLEN/8, x4) + +inst_428: +// rs1_val==4 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x2, x2, 146*XLEN/8, x4) + +inst_429: +// rs1_val==4 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x5555555555555554, x2, 147*XLEN/8, x4) + +inst_430: +// rs1_val==4 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x4, x2, 148*XLEN/8, x4) + +inst_431: +// rs1_val==4 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x3333333333333332, x2, 149*XLEN/8, x4) + +inst_432: +// rs1_val==4 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x6666666666666665, x2, 150*XLEN/8, x4) + +inst_433: +// rs1_val==4 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0xb504f332, x2, 151*XLEN/8, x4) + +inst_434: +// rs1_val==4 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x5555555555555556, x2, 152*XLEN/8, x4) + +inst_435: +// rs1_val==4 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0x5555555555555555, x2, 153*XLEN/8, x4) + +inst_436: +// rs1_val==4 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x6, x2, 154*XLEN/8, x4) + +inst_437: +// rs1_val==4 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x3333333333333334, x2, 155*XLEN/8, x4) + +inst_438: +// rs1_val==4 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0x6666666666666667, x2, 156*XLEN/8, x4) + +inst_439: +// rs1_val==4 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, -0xb504f332, x2, 157*XLEN/8, x4) + +inst_440: +// rs1_val==4 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x4; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x4, 0xb504f334, x2, 158*XLEN/8, x4) + +inst_441: +// rs1_val==3689348814741910322 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x3, x2, 159*XLEN/8, x4) + +inst_442: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555555, x2, 160*XLEN/8, x4) + +inst_443: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555556, x2, 161*XLEN/8, x4) + +inst_444: +// rs1_val==3689348814741910322 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x5, x2, 162*XLEN/8, x4) + +inst_445: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333333, x2, 163*XLEN/8, x4) + +inst_446: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666666, x2, 164*XLEN/8, x4) + +inst_447: +// rs1_val==3689348814741910322 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, -0xb504f333, x2, 165*XLEN/8, x4) + +inst_448: +// rs1_val==3689348814741910322 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0xb504f333, x2, 166*XLEN/8, x4) + +inst_449: +// rs1_val==3689348814741910322 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x2, x2, 167*XLEN/8, x4) + +inst_450: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555554, x2, 168*XLEN/8, x4) + +inst_451: +// rs1_val==3689348814741910322 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x0, x2, 169*XLEN/8, x4) + +inst_452: +// rs1_val==3689348814741910322 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x4, x2, 170*XLEN/8, x4) + +inst_453: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333332, x2, 171*XLEN/8, x4) + +inst_454: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666665, x2, 172*XLEN/8, x4) + +inst_455: +// rs1_val==3689348814741910322 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0xb504f332, x2, 173*XLEN/8, x4) + +inst_456: +// rs1_val==3689348814741910322 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x5555555555555556, x2, 174*XLEN/8, x4) + +inst_457: +// rs1_val==3689348814741910322 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, -0x5555555555555555, x2, 175*XLEN/8, x4) + +inst_458: +// rs1_val==3689348814741910322 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x6, x2, 176*XLEN/8, x4) + +inst_459: +// rs1_val==3689348814741910322 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x3333333333333334, x2, 177*XLEN/8, x4) + +inst_460: +// rs1_val==3689348814741910322 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0x6666666666666667, x2, 178*XLEN/8, x4) + +inst_461: +// rs1_val==3689348814741910322 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, -0xb504f332, x2, 179*XLEN/8, x4) + +inst_462: +// rs1_val==3689348814741910322 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333332, 0xb504f334, x2, 180*XLEN/8, x4) + +inst_463: +// rs1_val==7378697629483820645 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x3, x2, 181*XLEN/8, x4) + +inst_464: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555555, x2, 182*XLEN/8, x4) + +inst_465: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555556, x2, 183*XLEN/8, x4) + +inst_466: +// rs1_val==7378697629483820645 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x5, x2, 184*XLEN/8, x4) + +inst_467: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333333, x2, 185*XLEN/8, x4) + +inst_468: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666666, x2, 186*XLEN/8, x4) + +inst_469: +// rs1_val==7378697629483820645 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, -0xb504f333, x2, 187*XLEN/8, x4) + +inst_470: +// rs1_val==7378697629483820645 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0xb504f333, x2, 188*XLEN/8, x4) + +inst_471: +// rs1_val==7378697629483820645 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x2, x2, 189*XLEN/8, x4) + +inst_472: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555554, x2, 190*XLEN/8, x4) + +inst_473: +// rs1_val==7378697629483820645 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x0, x2, 191*XLEN/8, x4) + +inst_474: +// rs1_val==7378697629483820645 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x4, x2, 192*XLEN/8, x4) + +inst_475: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333332, x2, 193*XLEN/8, x4) + +inst_476: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666665, x2, 194*XLEN/8, x4) + +inst_477: +// rs1_val==7378697629483820645 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0xb504f332, x2, 195*XLEN/8, x4) + +inst_478: +// rs1_val==7378697629483820645 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x5555555555555556, x2, 196*XLEN/8, x4) + +inst_479: +// rs1_val==7378697629483820645 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, -0x5555555555555555, x2, 197*XLEN/8, x4) + +inst_480: +// rs1_val==7378697629483820645 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x6, x2, 198*XLEN/8, x4) + +inst_481: +// rs1_val==7378697629483820645 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x3333333333333334, x2, 199*XLEN/8, x4) + +inst_482: +// rs1_val==7378697629483820645 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0x6666666666666667, x2, 200*XLEN/8, x4) + +inst_483: +// rs1_val==7378697629483820645 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, -0xb504f332, x2, 201*XLEN/8, x4) + +inst_484: +// rs1_val==7378697629483820645 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666665; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666665, 0xb504f334, x2, 202*XLEN/8, x4) + +inst_485: +// rs1_val==3037000498 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x3, x2, 203*XLEN/8, x4) + +inst_486: +// rs1_val==3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x5555555555555555, x2, 204*XLEN/8, x4) + +inst_487: +// rs1_val==3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, -0x5555555555555556, x2, 205*XLEN/8, x4) + +inst_488: +// rs1_val==3037000498 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x5, x2, 206*XLEN/8, x4) + +inst_489: +// rs1_val==3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x3333333333333333, x2, 207*XLEN/8, x4) + +inst_490: +// rs1_val==3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x6666666666666666, x2, 208*XLEN/8, x4) + +inst_491: +// rs1_val==3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, -0xb504f333, x2, 209*XLEN/8, x4) + +inst_492: +// rs1_val==3037000498 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0xb504f333, x2, 210*XLEN/8, x4) + +inst_493: +// rs1_val==3037000498 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x2, x2, 211*XLEN/8, x4) + +inst_494: +// rs1_val==3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x5555555555555554, x2, 212*XLEN/8, x4) + +inst_495: +// rs1_val==3037000498 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x0, x2, 213*XLEN/8, x4) + +inst_496: +// rs1_val==3037000498 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x4, x2, 214*XLEN/8, x4) + +inst_497: +// rs1_val==3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x3333333333333332, x2, 215*XLEN/8, x4) + +inst_498: +// rs1_val==3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x6666666666666665, x2, 216*XLEN/8, x4) + +inst_499: +// rs1_val==3037000498 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0xb504f332, x2, 217*XLEN/8, x4) + +inst_500: +// rs1_val==3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x5555555555555556, x2, 218*XLEN/8, x4) + +inst_501: +// rs1_val==3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, -0x5555555555555555, x2, 219*XLEN/8, x4) + +inst_502: +// rs1_val==3037000498 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x6, x2, 220*XLEN/8, x4) + +inst_503: +// rs1_val==3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x3333333333333334, x2, 221*XLEN/8, x4) + +inst_504: +// rs1_val==3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0x6666666666666667, x2, 222*XLEN/8, x4) + +inst_505: +// rs1_val==3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, -0xb504f332, x2, 223*XLEN/8, x4) + +inst_506: +// rs1_val==3037000498 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f332, 0xb504f334, x2, 224*XLEN/8, x4) + +inst_507: +// rs1_val==6148914691236517206 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x3, x2, 225*XLEN/8, x4) + +inst_508: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555555, x2, 226*XLEN/8, x4) + +inst_509: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555556, x2, 227*XLEN/8, x4) + +inst_510: +// rs1_val==6148914691236517206 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x5, x2, 228*XLEN/8, x4) + +inst_511: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333333, x2, 229*XLEN/8, x4) + +inst_512: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666666, x2, 230*XLEN/8, x4) + +inst_513: +// rs1_val==6148914691236517206 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, -0xb504f333, x2, 231*XLEN/8, x4) + +inst_514: +// rs1_val==6148914691236517206 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0xb504f333, x2, 232*XLEN/8, x4) + +inst_515: +// rs1_val==6148914691236517206 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x2, x2, 233*XLEN/8, x4) + +inst_516: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555554, x2, 234*XLEN/8, x4) + +inst_517: +// rs1_val==6148914691236517206 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x0, x2, 235*XLEN/8, x4) + +inst_518: +// rs1_val==6148914691236517206 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x4, x2, 236*XLEN/8, x4) + +inst_519: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333332, x2, 237*XLEN/8, x4) + +inst_520: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666665, x2, 238*XLEN/8, x4) + +inst_521: +// rs1_val==6148914691236517206 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0xb504f332, x2, 239*XLEN/8, x4) + +inst_522: +// rs1_val==6148914691236517206 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x5555555555555556, x2, 240*XLEN/8, x4) + +inst_523: +// rs1_val==6148914691236517206 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, -0x5555555555555555, x2, 241*XLEN/8, x4) + +inst_524: +// rs1_val==6148914691236517206 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x6, x2, 242*XLEN/8, x4) + +inst_525: +// rs1_val==6148914691236517206 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x3333333333333334, x2, 243*XLEN/8, x4) + +inst_526: +// rs1_val==6148914691236517206 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0x6666666666666667, x2, 244*XLEN/8, x4) + +inst_527: +// rs1_val==6148914691236517206 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, -0xb504f332, x2, 245*XLEN/8, x4) + +inst_528: +// rs1_val==6148914691236517206 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x5555555555555556; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x5555555555555556, 0xb504f334, x2, 246*XLEN/8, x4) + +inst_529: +// rs1_val==-6148914691236517205 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x3, x2, 247*XLEN/8, x4) + +inst_530: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555555, x2, 248*XLEN/8, x4) + +inst_531: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555556, x2, 249*XLEN/8, x4) + +inst_532: +// rs1_val==-6148914691236517205 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x5, x2, 250*XLEN/8, x4) + +inst_533: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333333, x2, 251*XLEN/8, x4) + +inst_534: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666666, x2, 252*XLEN/8, x4) + +inst_535: +// rs1_val==-6148914691236517205 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, -0xb504f333, x2, 253*XLEN/8, x4) + +inst_536: +// rs1_val==-6148914691236517205 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0xb504f333, x2, 254*XLEN/8, x4) + +inst_537: +// rs1_val==-6148914691236517205 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x2, x2, 255*XLEN/8, x4) +RVTEST_SIGBASE(x2,signature_x2_2) + +inst_538: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555554, x2, 0*XLEN/8, x4) + +inst_539: +// rs1_val==-6148914691236517205 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x0, x2, 1*XLEN/8, x4) + +inst_540: +// rs1_val==-6148914691236517205 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x4, x2, 2*XLEN/8, x4) + +inst_541: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333332, x2, 3*XLEN/8, x4) + +inst_542: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666665, x2, 4*XLEN/8, x4) + +inst_543: +// rs1_val==-6148914691236517205 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0xb504f332, x2, 5*XLEN/8, x4) + +inst_544: +// rs1_val==-6148914691236517205 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x5555555555555556, x2, 6*XLEN/8, x4) + +inst_545: +// rs1_val==-6148914691236517205 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, -0x5555555555555555, x2, 7*XLEN/8, x4) + +inst_546: +// rs1_val==-6148914691236517205 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x6, x2, 8*XLEN/8, x4) + +inst_547: +// rs1_val==-6148914691236517205 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x3333333333333334, x2, 9*XLEN/8, x4) + +inst_548: +// rs1_val==-6148914691236517205 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0x6666666666666667, x2, 10*XLEN/8, x4) + +inst_549: +// rs1_val==-6148914691236517205 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, -0xb504f332, x2, 11*XLEN/8, x4) + +inst_550: +// rs1_val==-6148914691236517205 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x5555555555555555; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x5555555555555555, 0xb504f334, x2, 12*XLEN/8, x4) + +inst_551: +// rs1_val==6 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x3, x2, 13*XLEN/8, x4) + +inst_552: +// rs1_val==6 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x5555555555555555, x2, 14*XLEN/8, x4) + +inst_553: +// rs1_val==6 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0x5555555555555556, x2, 15*XLEN/8, x4) + +inst_554: +// rs1_val==6 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x5, x2, 16*XLEN/8, x4) + +inst_555: +// rs1_val==6 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x3333333333333333, x2, 17*XLEN/8, x4) + +inst_556: +// rs1_val==6 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x6666666666666666, x2, 18*XLEN/8, x4) + +inst_557: +// rs1_val==6 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0xb504f333, x2, 19*XLEN/8, x4) + +inst_558: +// rs1_val==6 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0xb504f333, x2, 20*XLEN/8, x4) + +inst_559: +// rs1_val==6 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x2, x2, 21*XLEN/8, x4) + +inst_560: +// rs1_val==6 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x5555555555555554, x2, 22*XLEN/8, x4) + +inst_561: +// rs1_val==6 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x0, x2, 23*XLEN/8, x4) + +inst_562: +// rs1_val==6 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x4, x2, 24*XLEN/8, x4) + +inst_563: +// rs1_val==6 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x3333333333333332, x2, 25*XLEN/8, x4) + +inst_564: +// rs1_val==6 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x6666666666666665, x2, 26*XLEN/8, x4) + +inst_565: +// rs1_val==6 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0xb504f332, x2, 27*XLEN/8, x4) + +inst_566: +// rs1_val==6 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x5555555555555556, x2, 28*XLEN/8, x4) + +inst_567: +// rs1_val==6 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0x5555555555555555, x2, 29*XLEN/8, x4) + +inst_568: +// rs1_val==6 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x6, x2, 30*XLEN/8, x4) + +inst_569: +// rs1_val==6 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x3333333333333334, x2, 31*XLEN/8, x4) + +inst_570: +// rs1_val==6 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0x6666666666666667, x2, 32*XLEN/8, x4) + +inst_571: +// rs1_val==6 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, -0xb504f332, x2, 33*XLEN/8, x4) + +inst_572: +// rs1_val==6 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6, 0xb504f334, x2, 34*XLEN/8, x4) + +inst_573: +// rs1_val==3689348814741910324 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x3, x2, 35*XLEN/8, x4) + +inst_574: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555555, x2, 36*XLEN/8, x4) + +inst_575: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555556, x2, 37*XLEN/8, x4) + +inst_576: +// rs1_val==3689348814741910324 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x5, x2, 38*XLEN/8, x4) + +inst_577: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333333, x2, 39*XLEN/8, x4) + +inst_578: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666666, x2, 40*XLEN/8, x4) + +inst_579: +// rs1_val==3689348814741910324 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, -0xb504f333, x2, 41*XLEN/8, x4) + +inst_580: +// rs1_val==3689348814741910324 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0xb504f333, x2, 42*XLEN/8, x4) + +inst_581: +// rs1_val==3689348814741910324 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x2, x2, 43*XLEN/8, x4) + +inst_582: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555554, x2, 44*XLEN/8, x4) + +inst_583: +// rs1_val==3689348814741910324 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x0, x2, 45*XLEN/8, x4) + +inst_584: +// rs1_val==3689348814741910324 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x4, x2, 46*XLEN/8, x4) + +inst_585: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333332, x2, 47*XLEN/8, x4) + +inst_586: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666665, x2, 48*XLEN/8, x4) + +inst_587: +// rs1_val==3689348814741910324 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0xb504f332, x2, 49*XLEN/8, x4) + +inst_588: +// rs1_val==3689348814741910324 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x5555555555555556, x2, 50*XLEN/8, x4) + +inst_589: +// rs1_val==3689348814741910324 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, -0x5555555555555555, x2, 51*XLEN/8, x4) + +inst_590: +// rs1_val==3689348814741910324 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x6, x2, 52*XLEN/8, x4) + +inst_591: +// rs1_val==3689348814741910324 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x3333333333333334, x2, 53*XLEN/8, x4) + +inst_592: +// rs1_val==3689348814741910324 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0x6666666666666667, x2, 54*XLEN/8, x4) + +inst_593: +// rs1_val==3689348814741910324 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, -0xb504f332, x2, 55*XLEN/8, x4) + +inst_594: +// rs1_val==3689348814741910324 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x3333333333333334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x3333333333333334, 0xb504f334, x2, 56*XLEN/8, x4) + +inst_595: +// rs1_val==7378697629483820647 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x3, x2, 57*XLEN/8, x4) + +inst_596: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555555, x2, 58*XLEN/8, x4) + +inst_597: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555556, x2, 59*XLEN/8, x4) + +inst_598: +// rs1_val==7378697629483820647 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x5, x2, 60*XLEN/8, x4) + +inst_599: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333333, x2, 61*XLEN/8, x4) + +inst_600: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666666, x2, 62*XLEN/8, x4) + +inst_601: +// rs1_val==7378697629483820647 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, -0xb504f333, x2, 63*XLEN/8, x4) + +inst_602: +// rs1_val==7378697629483820647 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0xb504f333, x2, 64*XLEN/8, x4) + +inst_603: +// rs1_val==7378697629483820647 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x2, x2, 65*XLEN/8, x4) + +inst_604: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555554, x2, 66*XLEN/8, x4) + +inst_605: +// rs1_val==7378697629483820647 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x0, x2, 67*XLEN/8, x4) + +inst_606: +// rs1_val==7378697629483820647 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x4, x2, 68*XLEN/8, x4) + +inst_607: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333332, x2, 69*XLEN/8, x4) + +inst_608: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666665, x2, 70*XLEN/8, x4) + +inst_609: +// rs1_val==7378697629483820647 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0xb504f332, x2, 71*XLEN/8, x4) + +inst_610: +// rs1_val==7378697629483820647 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x5555555555555556, x2, 72*XLEN/8, x4) + +inst_611: +// rs1_val==7378697629483820647 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, -0x5555555555555555, x2, 73*XLEN/8, x4) + +inst_612: +// rs1_val==7378697629483820647 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x6, x2, 74*XLEN/8, x4) + +inst_613: +// rs1_val==7378697629483820647 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x3333333333333334, x2, 75*XLEN/8, x4) + +inst_614: +// rs1_val==7378697629483820647 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0x6666666666666667, x2, 76*XLEN/8, x4) + +inst_615: +// rs1_val==7378697629483820647 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, -0xb504f332, x2, 77*XLEN/8, x4) + +inst_616: +// rs1_val==7378697629483820647 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x6666666666666667; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x6666666666666667, 0xb504f334, x2, 78*XLEN/8, x4) + +inst_617: +// rs1_val==-3037000498 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x3, x2, 79*XLEN/8, x4) + +inst_618: +// rs1_val==-3037000498 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x5555555555555555, x2, 80*XLEN/8, x4) + +inst_619: +// rs1_val==-3037000498 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, -0x5555555555555556, x2, 81*XLEN/8, x4) + +inst_620: +// rs1_val==-3037000498 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x5, x2, 82*XLEN/8, x4) + +inst_621: +// rs1_val==-3037000498 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x3333333333333333, x2, 83*XLEN/8, x4) + +inst_622: +// rs1_val==-3037000498 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x6666666666666666, x2, 84*XLEN/8, x4) + +inst_623: +// rs1_val==-3037000498 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, -0xb504f333, x2, 85*XLEN/8, x4) + +inst_624: +// rs1_val==-3037000498 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0xb504f333, x2, 86*XLEN/8, x4) + +inst_625: +// rs1_val==-3037000498 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x2, x2, 87*XLEN/8, x4) + +inst_626: +// rs1_val==-3037000498 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x5555555555555554, x2, 88*XLEN/8, x4) + +inst_627: +// rs1_val==-3037000498 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x0, x2, 89*XLEN/8, x4) + +inst_628: +// rs1_val==-3037000498 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x4, x2, 90*XLEN/8, x4) + +inst_629: +// rs1_val==-3037000498 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x3333333333333332, x2, 91*XLEN/8, x4) + +inst_630: +// rs1_val==-3037000498 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x6666666666666665, x2, 92*XLEN/8, x4) + +inst_631: +// rs1_val==-3037000498 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0xb504f332, x2, 93*XLEN/8, x4) + +inst_632: +// rs1_val==-3037000498 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x5555555555555556, x2, 94*XLEN/8, x4) + +inst_633: +// rs1_val==-3037000498 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, -0x5555555555555555, x2, 95*XLEN/8, x4) + +inst_634: +// rs1_val==-3037000498 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x6, x2, 96*XLEN/8, x4) + +inst_635: +// rs1_val==-3037000498 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x3333333333333334, x2, 97*XLEN/8, x4) + +inst_636: +// rs1_val==-3037000498 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0x6666666666666667, x2, 98*XLEN/8, x4) + +inst_637: +// rs1_val==-3037000498 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, -0xb504f332, x2, 99*XLEN/8, x4) + +inst_638: +// rs1_val==-3037000498 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0xb504f332; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0xb504f332, 0xb504f334, x2, 100*XLEN/8, x4) + +inst_639: +// rs1_val==3037000500 and rs2_val==3, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x3, x2, 101*XLEN/8, x4) + +inst_640: +// rs1_val==3037000500 and rs2_val==6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x5555555555555555, x2, 102*XLEN/8, x4) + +inst_641: +// rs1_val==3037000500 and rs2_val==-6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, -0x5555555555555556, x2, 103*XLEN/8, x4) + +inst_642: +// rs1_val==3037000500 and rs2_val==5, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x5, x2, 104*XLEN/8, x4) + +inst_643: +// rs1_val==3037000500 and rs2_val==3689348814741910323, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x3333333333333333, x2, 105*XLEN/8, x4) + +inst_644: +// rs1_val==3037000500 and rs2_val==7378697629483820646, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666666 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x6666666666666666, x2, 106*XLEN/8, x4) + +inst_645: +// rs1_val==3037000500 and rs2_val==-3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, -0xb504f333, x2, 107*XLEN/8, x4) + +inst_646: +// rs1_val==3037000500 and rs2_val==3037000499, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f333 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0xb504f333, x2, 108*XLEN/8, x4) + +inst_647: +// rs1_val==3037000500 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x2, x2, 109*XLEN/8, x4) + +inst_648: +// rs1_val==3037000500 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x5555555555555554, x2, 110*XLEN/8, x4) + +inst_649: +// rs1_val==3037000500 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x0, x2, 111*XLEN/8, x4) + +inst_650: +// rs1_val==3037000500 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x4, x2, 112*XLEN/8, x4) + +inst_651: +// rs1_val==3037000500 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x3333333333333332, x2, 113*XLEN/8, x4) + +inst_652: +// rs1_val==3037000500 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x6666666666666665, x2, 114*XLEN/8, x4) + +inst_653: +// rs1_val==3037000500 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0xb504f332, x2, 115*XLEN/8, x4) + +inst_654: +// rs1_val==3037000500 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x5555555555555556, x2, 116*XLEN/8, x4) + +inst_655: +// rs1_val==3037000500 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, -0x5555555555555555, x2, 117*XLEN/8, x4) + +inst_656: +// rs1_val==3037000500 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x6, x2, 118*XLEN/8, x4) + +inst_657: +// rs1_val==3037000500 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x3333333333333334, x2, 119*XLEN/8, x4) + +inst_658: +// rs1_val==3037000500 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0x6666666666666667, x2, 120*XLEN/8, x4) + +inst_659: +// rs1_val==3037000500 and rs2_val==-3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:-0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, -0xb504f332, x2, 121*XLEN/8, x4) + +inst_660: +// rs1_val==3037000500 and rs2_val==3037000500, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0xb504f334; op2val:0xb504f334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0xb504f334, 0xb504f334, x2, 122*XLEN/8, x4) + +inst_661: +// rs1_val==0 and rs2_val==2, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x2 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x2, x2, 123*XLEN/8, x4) + +inst_662: +// rs1_val==0 and rs2_val==6148914691236517204, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555554 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x5555555555555554, x2, 124*XLEN/8, x4) + +inst_663: +// rs1_val==0 and rs2_val==0, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x0 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x0, x2, 125*XLEN/8, x4) + +inst_664: +// rs1_val==0 and rs2_val==4, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x4 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x4, x2, 126*XLEN/8, x4) + +inst_665: +// rs1_val==0 and rs2_val==3689348814741910322, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x3333333333333332, x2, 127*XLEN/8, x4) + +inst_666: +// rs1_val==0 and rs2_val==7378697629483820645, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666665 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x6666666666666665, x2, 128*XLEN/8, x4) + +inst_667: +// rs1_val==0 and rs2_val==3037000498, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0xb504f332 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0xb504f332, x2, 129*XLEN/8, x4) + +inst_668: +// rs1_val==0 and rs2_val==6148914691236517206, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5555555555555556 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x5555555555555556, x2, 130*XLEN/8, x4) + +inst_669: +// rs1_val==0 and rs2_val==-6148914691236517205, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:-0x5555555555555555 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, -0x5555555555555555, x2, 131*XLEN/8, x4) + +inst_670: +// rs1_val==0 and rs2_val==6, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x6, x2, 132*XLEN/8, x4) + +inst_671: +// rs1_val==0 and rs2_val==3689348814741910324, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x3333333333333334 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x3333333333333334, x2, 133*XLEN/8, x4) + +inst_672: +// rs1_val==0 and rs2_val==7378697629483820647, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x6666666666666667 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x6666666666666667, x2, 134*XLEN/8, x4) + +inst_673: +// rs1_val == (-2**(xlen-1)), rs2_val == -16385, rs1_val == -9223372036854775808 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:-0x4001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000000000000, -0x4001, x2, 135*XLEN/8, x4) + +inst_674: +// rs1_val == (2**(xlen-1)-1), rs1_val > 0 and rs2_val < 0, rs1_val == 9223372036854775807, rs2_val == -72057594037927937 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x7fffffffffffffff; op2val:-0x100000000000001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x7fffffffffffffff, -0x100000000000001, x2, 136*XLEN/8, x4) + +inst_675: +// rs1_val == 0, rs1_val==0 and rs2_val==5 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x0; op2val:0x5 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x0, 0x5, x2, 137*XLEN/8, x4) + +inst_676: +// rs2_val == -65537, +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:-0x8000000000000000; op2val:-0x10001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, -0x8000000000000000, -0x10001, x2, 138*XLEN/8, x4) + +inst_677: +// rs2_val == -4194305, rs1_val == 36028797018963968 +// opcode: mop.rr.7 ; op1:x30; op2:x29; dest:x31; op1val:0x80000000000000; op2val:-0x400001 +TEST_RR_OP(mop.rr.7, x31, x30, x29, 0, 0x80000000000000, -0x400001, x2, 139*XLEN/8, x4) +#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_x10_0: + .fill 0*((XLEN/8)/4),4,0xdeadbeef + + +signature_x10_1: + .fill 14*((XLEN/8)/4),4,0xdeadbeef + + +signature_x1_0: + .fill 12*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_0: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_1: + .fill 256*((XLEN/8)/4),4,0xdeadbeef + + +signature_x2_2: + .fill 140*((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