diff options
author | 2023-12-07 18:05:42 +0300 | |
---|---|---|
committer | 2024-01-30 09:48:26 +0000 | |
commit | 383648d9e0618eb81097615e2ca14114c5629102 (patch) | |
tree | b3d3fff864af1c465f53dcef32ce24a53ff0fcb1 /compiler/utils/assembler_test.h | |
parent | 77cc9c867f714944afd541870fddfe16698638e2 (diff) |
riscv64: RISC-V RVV assembler tests
Add tests for newly added instructions
Adjust clang/objdump CLI options
Test: m art_compiler_host_tests
Test: $NATIVE_TESTS/art_compiler_host_tests_intermediates/art_compiler_host_tests
Change-Id: I3fdd831737daf844c7b03ef010d27d44056ec59d
Diffstat (limited to 'compiler/utils/assembler_test.h')
-rw-r--r-- | compiler/utils/assembler_test.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/compiler/utils/assembler_test.h b/compiler/utils/assembler_test.h index 72f48367a6..05c79f3b21 100644 --- a/compiler/utils/assembler_test.h +++ b/compiler/utils/assembler_test.h @@ -685,6 +685,11 @@ class AssemblerTest : public AssemblerTestBase { return str; } + std::string RepeatV(void (Ass::*f)(VecReg), const std::string& fmt) { + return RepeatTemplatedRegister<VecReg>( + f, GetVectorRegisters(), &AssemblerTest::GetVecRegName, fmt); + } + std::string RepeatVV(void (Ass::*f)(VecReg, VecReg), const std::string& fmt) { return RepeatTemplatedRegisters<VecReg, VecReg>(f, GetVectorRegisters(), @@ -705,6 +710,18 @@ class AssemblerTest : public AssemblerTestBase { fmt); } + std::string RepeatVVR(void (Ass::*f)(VecReg, VecReg, Reg), const std::string& fmt) { + return RepeatTemplatedRegisters<VecReg, VecReg, Reg>( + f, + GetVectorRegisters(), + GetVectorRegisters(), + GetRegisters(), + &AssemblerTest::GetVecRegName, + &AssemblerTest::GetVecRegName, + &AssemblerTest::GetRegName<RegisterView::kUsePrimaryName>, + fmt); + } + std::string RepeatVR(void (Ass::*f)(VecReg, Reg), const std::string& fmt) { return RepeatTemplatedRegisters<VecReg, Reg>( f, @@ -715,6 +732,34 @@ class AssemblerTest : public AssemblerTestBase { fmt); } + std::string RepeatVF(void (Ass::*f)(VecReg, FPReg), const std::string& fmt) { + return RepeatTemplatedRegisters<VecReg, FPReg>(f, + GetVectorRegisters(), + GetFPRegisters(), + &AssemblerTest::GetVecRegName, + &AssemblerTest::GetFPRegName, + fmt); + } + + std::string RepeatFV(void (Ass::*f)(FPReg, VecReg), const std::string& fmt) { + return RepeatTemplatedRegisters<FPReg, VecReg>(f, + GetFPRegisters(), + GetVectorRegisters(), + &AssemblerTest::GetFPRegName, + &AssemblerTest::GetVecRegName, + fmt); + } + + std::string RepeatRV(void (Ass::*f)(Reg, VecReg), const std::string& fmt) { + return RepeatTemplatedRegisters<Reg, VecReg>( + f, + GetRegisters(), + GetVectorRegisters(), + &AssemblerTest::GetRegName<RegisterView::kUsePrimaryName>, + &AssemblerTest::GetVecRegName, + fmt); + } + template <typename ImmType> std::string RepeatVIb(void (Ass::*f)(VecReg, ImmType), int imm_bits, |