summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/utils/assembler_test.h15
-rw-r--r--compiler/utils/x86/assembler_x86_test.cc40
-rw-r--r--compiler/utils/x86_64/assembler_x86_64_test.cc40
3 files changed, 37 insertions, 58 deletions
diff --git a/compiler/utils/assembler_test.h b/compiler/utils/assembler_test.h
index 05c79f3b21..e90187ccbc 100644
--- a/compiler/utils/assembler_test.h
+++ b/compiler/utils/assembler_test.h
@@ -316,9 +316,8 @@ class AssemblerTest : public AssemblerTestBase {
for (auto reg : registers) {
for (int64_t imm : imms) {
- ImmType new_imm = CreateImmediate(imm);
if (f != nullptr) {
- (assembler_.get()->*f)(reg, new_imm + bias);
+ (assembler_.get()->*f)(reg, CreateImmediate(imm + bias));
}
std::string base = fmt;
@@ -516,6 +515,18 @@ class AssemblerTest : public AssemblerTestBase {
bias);
}
+ template <typename ImmType>
+ std::string RepeatFI(void (Ass::*f)(FPReg, ImmType),
+ size_t imm_bits,
+ const std::string& fmt) {
+ return RepeatTemplatedRegisterImmBits<FPReg, ImmType>(f,
+ imm_bits,
+ GetFPRegisters(),
+ &AssemblerTest::GetFPRegName,
+ fmt,
+ /*bias=*/ 0);
+ }
+
std::string RepeatFF(void (Ass::*f)(FPReg, FPReg), const std::string& fmt) {
return RepeatTemplatedRegisters<FPReg, FPReg>(f,
GetFPRegisters(),
diff --git a/compiler/utils/x86/assembler_x86_test.cc b/compiler/utils/x86/assembler_x86_test.cc
index 91ee2302db..b9205a9b31 100644
--- a/compiler/utils/x86/assembler_x86_test.cc
+++ b/compiler/utils/x86/assembler_x86_test.cc
@@ -1248,44 +1248,36 @@ TEST_F(AssemblerX86Test, Punpckhqdq) {
DriverStr(RepeatFF(&x86::X86Assembler::punpckhqdq, "punpckhqdq %{reg2}, %{reg1}"), "punpckhqdq");
}
-TEST_F(AssemblerX86Test, psllw) {
- GetAssembler()->psllw(x86::XMM0, CreateImmediate(16));
- DriverStr("psllw $0x10, %xmm0\n", "psllwi");
+TEST_F(AssemblerX86Test, Psllw) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psllw, 4u, "psllw ${imm}, %{reg}"), "psllwi");
}
-TEST_F(AssemblerX86Test, pslld) {
- GetAssembler()->pslld(x86::XMM0, CreateImmediate(16));
- DriverStr("pslld $0x10, %xmm0\n", "pslldi");
+TEST_F(AssemblerX86Test, Pslld) {
+ DriverStr(RepeatFI(&x86::X86Assembler::pslld, 5u, "pslld ${imm}, %{reg}"), "pslldi");
}
-TEST_F(AssemblerX86Test, psllq) {
- GetAssembler()->psllq(x86::XMM0, CreateImmediate(16));
- DriverStr("psllq $0x10, %xmm0\n", "psllqi");
+TEST_F(AssemblerX86Test, Psllq) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psllq, 6u, "psllq ${imm}, %{reg}"), "psllqi");
}
-TEST_F(AssemblerX86Test, psraw) {
- GetAssembler()->psraw(x86::XMM0, CreateImmediate(16));
- DriverStr("psraw $0x10, %xmm0\n", "psrawi");
+TEST_F(AssemblerX86Test, Psraw) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psraw, 4u, "psraw ${imm}, %{reg}"), "psrawi");
}
-TEST_F(AssemblerX86Test, psrad) {
- GetAssembler()->psrad(x86::XMM0, CreateImmediate(16));
- DriverStr("psrad $0x10, %xmm0\n", "psradi");
+TEST_F(AssemblerX86Test, Psrad) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psrad, 5u, "psrad ${imm}, %{reg}"), "psradi");
}
-TEST_F(AssemblerX86Test, psrlw) {
- GetAssembler()->psrlw(x86::XMM0, CreateImmediate(16));
- DriverStr("psrlw $0x10, %xmm0\n", "psrlwi");
+TEST_F(AssemblerX86Test, Psrlw) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psrlw, 4u, "psrlw ${imm}, %{reg}"), "psrlwi");
}
-TEST_F(AssemblerX86Test, psrld) {
- GetAssembler()->psrld(x86::XMM0, CreateImmediate(16));
- DriverStr("psrld $0x10, %xmm0\n", "psrldi");
+TEST_F(AssemblerX86Test, Psrld) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psrld, 5u, "psrld ${imm}, %{reg}"), "psrldi");
}
-TEST_F(AssemblerX86Test, psrlq) {
- GetAssembler()->psrlq(x86::XMM0, CreateImmediate(16));
- DriverStr("psrlq $0x10, %xmm0\n", "psrlqi");
+TEST_F(AssemblerX86Test, Psrlq) {
+ DriverStr(RepeatFI(&x86::X86Assembler::psrlq, 6u, "psrlq ${imm}, %{reg}"), "psrlqi");
}
TEST_F(AssemblerX86Test, psrldq) {
diff --git a/compiler/utils/x86_64/assembler_x86_64_test.cc b/compiler/utils/x86_64/assembler_x86_64_test.cc
index 6153ae0f9c..2d72bf6239 100644
--- a/compiler/utils/x86_64/assembler_x86_64_test.cc
+++ b/compiler/utils/x86_64/assembler_x86_64_test.cc
@@ -2093,59 +2093,35 @@ TEST_F(AssemblerX86_64Test, Punpckhqdq) {
}
TEST_F(AssemblerX86_64Test, Psllw) {
- GetAssembler()->psllw(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psllw(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psllw $1, %xmm0\n"
- "psllw $2, %xmm15\n", "psllwi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psllw, 4u, "psllw ${imm}, %{reg}"), "psllwi");
}
TEST_F(AssemblerX86_64Test, Pslld) {
- GetAssembler()->pslld(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->pslld(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("pslld $1, %xmm0\n"
- "pslld $2, %xmm15\n", "pslldi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::pslld, 5u, "pslld ${imm}, %{reg}"), "pslldi");
}
TEST_F(AssemblerX86_64Test, Psllq) {
- GetAssembler()->psllq(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psllq(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psllq $1, %xmm0\n"
- "psllq $2, %xmm15\n", "psllqi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psllq, 6u, "psllq ${imm}, %{reg}"), "psllqi");
}
TEST_F(AssemblerX86_64Test, Psraw) {
- GetAssembler()->psraw(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psraw(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psraw $1, %xmm0\n"
- "psraw $2, %xmm15\n", "psrawi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psraw, 4u, "psraw ${imm}, %{reg}"), "psrawi");
}
TEST_F(AssemblerX86_64Test, Psrad) {
- GetAssembler()->psrad(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psrad(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psrad $1, %xmm0\n"
- "psrad $2, %xmm15\n", "psradi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrad, 5u, "psrad ${imm}, %{reg}"), "psradi");
}
TEST_F(AssemblerX86_64Test, Psrlw) {
- GetAssembler()->psrlw(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psrlw(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psrlw $1, %xmm0\n"
- "psrlw $2, %xmm15\n", "psrlwi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrlw, 4u, "psrlw ${imm}, %{reg}"), "psrlwi");
}
TEST_F(AssemblerX86_64Test, Psrld) {
- GetAssembler()->psrld(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psrld(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psrld $1, %xmm0\n"
- "psrld $2, %xmm15\n", "psrldi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrld, 5u, "psrld ${imm}, %{reg}"), "psrldi");
}
TEST_F(AssemblerX86_64Test, Psrlq) {
- GetAssembler()->psrlq(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1));
- GetAssembler()->psrlq(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2));
- DriverStr("psrlq $1, %xmm0\n"
- "psrlq $2, %xmm15\n", "psrlqi");
+ DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrlq, 6u, "psrlq ${imm}, %{reg}"), "psrlqi");
}
TEST_F(AssemblerX86_64Test, Psrldq) {