diff options
Diffstat (limited to 'llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp')
-rw-r--r-- | llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp | 90 |
1 files changed, 40 insertions, 50 deletions
diff --git a/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp b/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp index 876fc5465bf..a661d92658b 100644 --- a/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp +++ b/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp @@ -29,6 +29,7 @@ operator<<(std::ostream &OS, const LegalizeAction Act) { case Custom: OS << "Custom"; break; case Unsupported: OS << "Unsupported"; break; case NotFound: OS << "NotFound"; + case UseLegacyRules: OS << "UseLegacyRules"; break; } return OS; } @@ -62,34 +63,28 @@ TEST(LegalizerInfoTest, ScalarRISC) { for (unsigned opcode : {G_ADD, G_SUB}) { // Check we infer the correct types and actually do what we're told. ASSERT_EQ(L.getAction({opcode, {LLT::scalar(8)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); ASSERT_EQ(L.getAction({opcode, {LLT::scalar(16)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); ASSERT_EQ(L.getAction({opcode, {LLT::scalar(32)}}), - LegalizerInfo::LegalizeActionStep(Legal, 0, LLT{})); + LegalizeActionStep(Legal, 0, LLT{})); ASSERT_EQ(L.getAction({opcode, {LLT::scalar(64)}}), - LegalizerInfo::LegalizeActionStep(Legal, 0, LLT{})); + LegalizeActionStep(Legal, 0, LLT{})); // Make sure the default for over-sized types applies. - ASSERT_EQ( - L.getAction({opcode, {LLT::scalar(128)}}), - LegalizerInfo::LegalizeActionStep(NarrowScalar, 0, LLT::scalar(64))); + ASSERT_EQ(L.getAction({opcode, {LLT::scalar(128)}}), + LegalizeActionStep(NarrowScalar, 0, LLT::scalar(64))); // Make sure we also handle unusual sizes - ASSERT_EQ( - L.getAction({opcode, {LLT::scalar(1)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); - ASSERT_EQ( - L.getAction({opcode, {LLT::scalar(31)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); - ASSERT_EQ( - L.getAction({opcode, {LLT::scalar(33)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(64))); - ASSERT_EQ( - L.getAction({opcode, {LLT::scalar(63)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(64))); - ASSERT_EQ( - L.getAction({opcode, {LLT::scalar(65)}}), - LegalizerInfo::LegalizeActionStep(NarrowScalar, 0, LLT::scalar(64))); + ASSERT_EQ(L.getAction({opcode, {LLT::scalar(1)}}), + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + ASSERT_EQ(L.getAction({opcode, {LLT::scalar(31)}}), + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + ASSERT_EQ(L.getAction({opcode, {LLT::scalar(33)}}), + LegalizeActionStep(WidenScalar, 0, LLT::scalar(64))); + ASSERT_EQ(L.getAction({opcode, {LLT::scalar(63)}}), + LegalizeActionStep(WidenScalar, 0, LLT::scalar(64))); + ASSERT_EQ(L.getAction({opcode, {LLT::scalar(65)}}), + LegalizeActionStep(NarrowScalar, 0, LLT::scalar(64))); } } @@ -114,23 +109,18 @@ TEST(LegalizerInfoTest, VectorRISC) { // Check we infer the correct types and actually do what we're told for some // simple cases. ASSERT_EQ(L.getAction({G_ADD, {LLT::vector(8, 8)}}), - LegalizerInfo::LegalizeActionStep(Legal, 0, LLT{})); - ASSERT_EQ( - L.getAction({G_ADD, {LLT::vector(8, 7)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::vector(8, 8))); - ASSERT_EQ( - L.getAction({G_ADD, {LLT::vector(2, 8)}}), - LegalizerInfo::LegalizeActionStep(MoreElements, 0, LLT::vector(8, 8))); - ASSERT_EQ( - L.getAction({G_ADD, {LLT::vector(8, 32)}}), - LegalizerInfo::LegalizeActionStep(FewerElements, 0, LLT::vector(4, 32))); + LegalizeActionStep(Legal, 0, LLT{})); + ASSERT_EQ(L.getAction({G_ADD, {LLT::vector(8, 7)}}), + LegalizeActionStep(WidenScalar, 0, LLT::vector(8, 8))); + ASSERT_EQ(L.getAction({G_ADD, {LLT::vector(2, 8)}}), + LegalizeActionStep(MoreElements, 0, LLT::vector(8, 8))); + ASSERT_EQ(L.getAction({G_ADD, {LLT::vector(8, 32)}}), + LegalizeActionStep(FewerElements, 0, LLT::vector(4, 32))); // Check a few non-power-of-2 sizes: - ASSERT_EQ( - L.getAction({G_ADD, {LLT::vector(3, 3)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::vector(3, 8))); - ASSERT_EQ( - L.getAction({G_ADD, {LLT::vector(3, 8)}}), - LegalizerInfo::LegalizeActionStep(MoreElements, 0, LLT::vector(8, 8))); + ASSERT_EQ(L.getAction({G_ADD, {LLT::vector(3, 3)}}), + LegalizeActionStep(WidenScalar, 0, LLT::vector(3, 8))); + ASSERT_EQ(L.getAction({G_ADD, {LLT::vector(3, 8)}}), + LegalizeActionStep(MoreElements, 0, LLT::vector(8, 8))); } TEST(LegalizerInfoTest, MultipleTypes) { @@ -150,15 +140,15 @@ TEST(LegalizerInfoTest, MultipleTypes) { // Check we infer the correct types and actually do what we're told. ASSERT_EQ(L.getAction({G_PTRTOINT, {s64, p0}}), - LegalizerInfo::LegalizeActionStep(Legal, 0, LLT{})); + LegalizeActionStep(Legal, 0, LLT{})); // Make sure we also handle unusual sizes ASSERT_EQ( L.getAction({G_PTRTOINT, {LLT::scalar(65), s64}}), - LegalizerInfo::LegalizeActionStep(NarrowScalar, 0, s64)); + LegalizeActionStep(NarrowScalar, 0, s64)); ASSERT_EQ( L.getAction({G_PTRTOINT, {s64, LLT::pointer(0, 32)}}), - LegalizerInfo::LegalizeActionStep(Unsupported, 1, LLT::pointer(0, 32))); + LegalizeActionStep(Unsupported, 1, LLT::pointer(0, 32))); } TEST(LegalizerInfoTest, MultipleSteps) { @@ -175,9 +165,9 @@ TEST(LegalizerInfoTest, MultipleSteps) { L.computeTables(); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(16)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(32)}}), - LegalizerInfo::LegalizeActionStep(Lower, 0, LLT::scalar(32))); + LegalizeActionStep(Lower, 0, LLT::scalar(32))); } TEST(LegalizerInfoTest, SizeChangeStrategy) { @@ -193,19 +183,19 @@ TEST(LegalizerInfoTest, SizeChangeStrategy) { // Check we infer the correct types and actually do what we're told. for (unsigned Size : {1, 8, 16, 32}) { ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(Size)}}), - LegalizerInfo::LegalizeActionStep(Legal, 0, LLT{})); + LegalizeActionStep(Legal, 0, LLT{})); } ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(2)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(8))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(8))); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(7)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(8))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(8))); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(9)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(16))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(16))); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(17)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(31)}}), - LegalizerInfo::LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); + LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); ASSERT_EQ(L.getAction({G_UREM, {LLT::scalar(33)}}), - LegalizerInfo::LegalizeActionStep(Unsupported, 0, LLT::scalar(33))); + LegalizeActionStep(Unsupported, 0, LLT::scalar(33))); } } |