gh-100239: specialize long tail of binary operations (#128722)

This commit is contained in:
Irit Katriel 2025-01-16 15:22:13 +00:00 committed by GitHub
parent e81fe940c9
commit 3893a92d95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 796 additions and 492 deletions

View file

@ -1338,6 +1338,31 @@ class TestSpecializer(TestBase):
self.assert_specialized(binary_op_add_unicode, "BINARY_OP_ADD_UNICODE")
self.assert_no_opcode(binary_op_add_unicode, "BINARY_OP")
def binary_op_add_extend():
for _ in range(100):
a, b = 6, 3.0
c = a + b
self.assertEqual(c, 9.0)
c = b + a
self.assertEqual(c, 9.0)
c = a - b
self.assertEqual(c, 3.0)
c = b - a
self.assertEqual(c, -3.0)
c = a * b
self.assertEqual(c, 18.0)
c = b * a
self.assertEqual(c, 18.0)
c = a / b
self.assertEqual(c, 2.0)
c = b / a
self.assertEqual(c, 0.5)
binary_op_add_extend()
self.assert_specialized(binary_op_add_extend, "BINARY_OP_EXTEND")
self.assert_no_opcode(binary_op_add_extend, "BINARY_OP")
@cpython_only
@requires_specialization_ft
def test_load_super_attr(self):