MIPS: Disable Word32SarWithWord32Shl on MIPSr1
MIPSr1 doesn't support SEB and SEH instructions and this causes test InstructionSelectorTest.Word32SarWithWord32Shl to fail. This CL disables this test on MIPSr1. TEST=unittests/InstructionSelectorTest.Word32SarWithWord32Shl Change-Id: I284a85210bd0d38374ca339671643560e8a305e2 Reviewed-on: https://chromium-review.googlesource.com/1164363 Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com> Cr-Commit-Position: refs/heads/master@{#54939}
This commit is contained in:
parent
a1986533fe
commit
65624c9ec6
@ -411,33 +411,35 @@ TEST_F(InstructionSelectorTest, Word32ShlWithWord32And) {
|
||||
}
|
||||
|
||||
TEST_F(InstructionSelectorTest, Word32SarWithWord32Shl) {
|
||||
{
|
||||
StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
|
||||
Node* const p0 = m.Parameter(0);
|
||||
Node* const r =
|
||||
m.Word32Sar(m.Word32Shl(p0, m.Int32Constant(24)), m.Int32Constant(24));
|
||||
m.Return(r);
|
||||
Stream s = m.Build();
|
||||
ASSERT_EQ(1U, s.size());
|
||||
EXPECT_EQ(kMipsSeb, s[0]->arch_opcode());
|
||||
ASSERT_EQ(1U, s[0]->InputCount());
|
||||
EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
|
||||
ASSERT_EQ(1U, s[0]->OutputCount());
|
||||
EXPECT_EQ(s.ToVreg(r), s.ToVreg(s[0]->Output()));
|
||||
}
|
||||
{
|
||||
StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
|
||||
Node* const p0 = m.Parameter(0);
|
||||
Node* const r =
|
||||
m.Word32Sar(m.Word32Shl(p0, m.Int32Constant(16)), m.Int32Constant(16));
|
||||
m.Return(r);
|
||||
Stream s = m.Build();
|
||||
ASSERT_EQ(1U, s.size());
|
||||
EXPECT_EQ(kMipsSeh, s[0]->arch_opcode());
|
||||
ASSERT_EQ(1U, s[0]->InputCount());
|
||||
EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
|
||||
ASSERT_EQ(1U, s[0]->OutputCount());
|
||||
EXPECT_EQ(s.ToVreg(r), s.ToVreg(s[0]->Output()));
|
||||
if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
|
||||
{
|
||||
StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
|
||||
Node* const p0 = m.Parameter(0);
|
||||
Node* const r = m.Word32Sar(m.Word32Shl(p0, m.Int32Constant(24)),
|
||||
m.Int32Constant(24));
|
||||
m.Return(r);
|
||||
Stream s = m.Build();
|
||||
ASSERT_EQ(1U, s.size());
|
||||
EXPECT_EQ(kMipsSeb, s[0]->arch_opcode());
|
||||
ASSERT_EQ(1U, s[0]->InputCount());
|
||||
EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
|
||||
ASSERT_EQ(1U, s[0]->OutputCount());
|
||||
EXPECT_EQ(s.ToVreg(r), s.ToVreg(s[0]->Output()));
|
||||
}
|
||||
{
|
||||
StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
|
||||
Node* const p0 = m.Parameter(0);
|
||||
Node* const r = m.Word32Sar(m.Word32Shl(p0, m.Int32Constant(16)),
|
||||
m.Int32Constant(16));
|
||||
m.Return(r);
|
||||
Stream s = m.Build();
|
||||
ASSERT_EQ(1U, s.size());
|
||||
EXPECT_EQ(kMipsSeh, s[0]->arch_opcode());
|
||||
ASSERT_EQ(1U, s[0]->InputCount());
|
||||
EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
|
||||
ASSERT_EQ(1U, s[0]->OutputCount());
|
||||
EXPECT_EQ(s.ToVreg(r), s.ToVreg(s[0]->Output()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user