summaryrefslogtreecommitdiff
path: root/compiler/utils/assembler_test.h
diff options
context:
space:
mode:
author Roman Artemev <roman.artemev@syntacore.com> 2023-12-07 18:05:42 +0300
committer VladimĂ­r Marko <vmarko@google.com> 2024-01-30 09:48:26 +0000
commit383648d9e0618eb81097615e2ca14114c5629102 (patch)
treeb3d3fff864af1c465f53dcef32ce24a53ff0fcb1 /compiler/utils/assembler_test.h
parent77cc9c867f714944afd541870fddfe16698638e2 (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.h45
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,