From: Jacob Lifshay Date: Mon, 28 Nov 2022 07:58:13 +0000 (-0800) Subject: fix generated assembly X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=93658008ecd11da7c66d41666766063f4ca455d6;p=bigint-presentation-code.git fix generated assembly --- diff --git a/src/bigint_presentation_code/_tests/test_toom_cook.py b/src/bigint_presentation_code/_tests/test_toom_cook.py index 42ab769..eadc080 100644 --- a/src/bigint_presentation_code/_tests/test_toom_cook.py +++ b/src/bigint_presentation_code/_tests/test_toom_cook.py @@ -1146,447 +1146,298 @@ class TestToomCook(unittest.TestCase): gen_asm_state = GenAsmState(assigned_registers) fn.gen_asm(gen_asm_state) self.assertEqual(gen_asm_state.output, [ - 'or 42, 3, 3', + 'or 45, 3, 3', 'setvl 0, 0, 4, 0, 1, 1', - 'or 7, 42, 42', + 'or 7, 45, 45', 'setvl 0, 0, 4, 0, 1, 1', 'sv.ld *3, 64(7)', 'setvl 0, 0, 4, 0, 1, 1', 'sv.or *8, *3, *3', 'setvl 0, 0, 4, 0, 1, 1', - 'or 7, 42, 42', + 'or 7, 45, 45', 'setvl 0, 0, 4, 0, 1, 1', 'sv.ld *3, 96(7)', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *14, *3, *3', + 'sv.or *18, *3, *3', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', 'sv.or *3, *8, *8', 'setvl 0, 0, 4, 0, 1, 1', 'sv.or *9, *3, *3', 'or 3, 9, 9', - 'or 5, 10, 10', - 'or 8, 11, 11', + 'or 8, 10, 10', + 'or 6, 11, 11', 'or 7, 12, 12', - 'setvl 0, 0, 2, 0, 1, 1', - 'or 4, 5, 5', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *5, *3, *3', - 'setvl 0, 0, 2, 0, 1, 1', - 'or 3, 8, 8', - 'or 4, 7, 7', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *8, *3, *3', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *3, *5, *5', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *5, *3, *3', - 'or 4, 5, 5', - 'or 7, 6, 6', - 'addi 3, 0, 0', - 'or 6, 3, 3', 'setvl 0, 0, 3, 0, 1, 1', - 'or 3, 4, 4', - 'or 4, 7, 7', + 'or 4, 8, 8', 'or 5, 6, 6', 'setvl 0, 0, 3, 0, 1, 1', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *24, *3, *3', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *3, *8, *8', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *5, *3, *3', - 'or 4, 5, 5', - 'or 7, 6, 6', - 'addi 3, 0, 0', - 'or 6, 3, 3', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 3, 4, 4', - 'or 4, 7, 7', - 'or 5, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *30, *3, *3', + 'sv.or/mrr *4, *3, *3', 'setvl 0, 0, 3, 0, 1, 1', - 'addic 0, 0, 0', + 'or 3, 7, 7', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *9, *24, *24', + 'or 46, 3, 3', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *6, *30, *30', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.adde *3, *9, *6', + 'sv.or *3, *4, *4', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *39, *3, *3', + 'sv.or/mrr *5, *3, *3', + 'or 4, 5, 5', + 'or 9, 6, 6', + 'or 8, 7, 7', + 'addi 3, 0, 0', + 'or 7, 3, 3', 'setvl 0, 0, 4, 0, 1, 1', + 'or 3, 4, 4', + 'or 4, 9, 9', + 'or 5, 8, 8', + 'or 6, 7, 7', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *3, *14, *14', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *9, *3, *3', - 'or 3, 9, 9', - 'or 5, 10, 10', - 'or 8, 11, 11', - 'or 7, 12, 12', - 'setvl 0, 0, 2, 0, 1, 1', - 'or 4, 5, 5', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *5, *3, *3', - 'setvl 0, 0, 2, 0, 1, 1', - 'or 3, 8, 8', - 'or 4, 7, 7', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *8, *3, *3', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *3, *5, *5', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *5, *3, *3', - 'or 4, 5, 5', - 'or 7, 6, 6', + 'sv.or *35, *3, *3', + 'setvl 0, 0, 1, 0, 1, 1', + 'or 3, 46, 46', + 'setvl 0, 0, 1, 0, 1, 1', + 'or 4, 3, 3', 'addi 3, 0, 0', - 'or 6, 3, 3', - 'setvl 0, 0, 3, 0, 1, 1', + 'or 7, 3, 3', + 'setvl 0, 0, 4, 0, 1, 1', 'or 3, 4, 4', 'or 4, 7, 7', - 'or 5, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *14, *3, *3', - 'setvl 0, 0, 2, 0, 1, 1', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *3, *8, *8', - 'setvl 0, 0, 2, 0, 1, 1', - 'sv.or *5, *3, *3', - 'or 4, 5, 5', - 'or 7, 6, 6', - 'addi 3, 0, 0', - 'or 6, 3, 3', + 'or 5, 7, 7', + 'or 6, 7, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', + 'addic 0, 0, 0', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *35, *35', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *7, *3, *3', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.adde *3, *14, *7', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *40, *3, *3', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *3, *18, *18', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *9, *3, *3', + 'or 3, 9, 9', + 'or 8, 10, 10', + 'or 6, 11, 11', + 'or 7, 12, 12', 'setvl 0, 0, 3, 0, 1, 1', - 'or 3, 4, 4', - 'or 4, 7, 7', + 'or 4, 8, 8', 'or 5, 6, 6', 'setvl 0, 0, 3, 0, 1, 1', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *33, *3, *3', - 'setvl 0, 0, 3, 0, 1, 1', - 'addic 0, 0, 0', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *9, *14, *14', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *6, *33, *33', + 'sv.or/mrr *4, *3, *3', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.adde *3, *9, *6', + 'or 3, 7, 7', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *36, *3, *3', + 'or 47, 3, 3', 'setvl 0, 0, 3, 0, 1, 1', 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *3, *14, *14', + 'sv.or *3, *4, *4', 'setvl 0, 0, 3, 0, 1, 1', 'sv.or/mrr *5, *3, *3', 'or 4, 5, 5', - 'or 14, 6, 6', - 'or 23, 7, 7', - 'addi 3, 0, 0', - 'or 22, 3, 3', - 'setvl 0, 0, 3, 0, 1, 1', - 'addi 3, 0, 0', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *24, *24', - 'or 7, 4, 4', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 19, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 21, 3, 3', - 'or 12, 4, 4', - 'or 11, 5, 5', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *24, *24', - 'or 7, 14, 14', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 18, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 17, 3, 3', - 'or 16, 4, 4', - 'or 15, 5, 5', - 'addi 3, 0, 0', - 'or 8, 3, 3', + 'or 9, 6, 6', + 'or 8, 7, 7', 'addi 3, 0, 0', - 'or 14, 3, 3', - 'setvl 0, 0, 5, 0, 1, 1', - 'or 3, 12, 12', - 'or 4, 11, 11', - 'or 5, 19, 19', - 'or 6, 8, 8', - 'or 7, 8, 8', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *8, *3, *3', - 'or 3, 17, 17', - 'or 4, 16, 16', - 'or 5, 15, 15', - 'or 6, 18, 18', - 'or 7, 14, 14', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'addic 0, 0, 0', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *14, *8, *8', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *8, *3, *3', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.adde *3, *14, *8', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'or 20, 3, 3', - 'or 19, 4, 4', - 'or 18, 5, 5', - 'or 17, 6, 6', - 'or 16, 7, 7', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *24, *24', - 'or 7, 23, 23', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 15, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 14, 3, 3', - 'or 12, 4, 4', - 'or 11, 5, 5', + 'or 7, 3, 3', 'setvl 0, 0, 4, 0, 1, 1', - 'or 3, 19, 19', - 'or 4, 18, 18', - 'or 5, 17, 17', - 'or 6, 16, 16', + 'or 3, 4, 4', + 'or 4, 9, 9', + 'or 5, 8, 8', + 'or 6, 7, 7', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', - 'or 3, 14, 14', - 'or 4, 12, 12', - 'or 5, 11, 11', - 'or 6, 15, 15', + 'sv.or *18, *3, *3', + 'setvl 0, 0, 1, 0, 1, 1', + 'or 3, 47, 47', + 'setvl 0, 0, 1, 0, 1, 1', + 'or 4, 3, 3', + 'addi 3, 0, 0', + 'or 7, 3, 3', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 3, 4, 4', + 'or 4, 7, 7', + 'or 5, 7, 7', + 'or 6, 7, 7', + 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', 'addic 0, 0, 0', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *14, *7, *7', + 'sv.or *14, *18, *18', 'setvl 0, 0, 4, 0, 1, 1', 'sv.or *7, *3, *3', 'setvl 0, 0, 4, 0, 1, 1', 'sv.adde *3, *14, *7', 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *29, *3, *3', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', - 'or 12, 3, 3', - 'or 11, 4, 4', - 'or 10, 5, 5', - 'or 9, 6, 6', - 'setvl 0, 0, 6, 0, 1, 1', - 'or 3, 21, 21', - 'or 4, 20, 20', - 'or 5, 12, 12', - 'or 6, 11, 11', - 'or 7, 10, 10', - 'or 8, 9, 9', - 'setvl 0, 0, 6, 0, 1, 1', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *24, *3, *3', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *3, *36, *36', - 'setvl 0, 0, 3, 0, 1, 1', + 'sv.or *3, *18, *18', + 'setvl 0, 0, 4, 0, 1, 1', 'sv.or/mrr *5, *3, *3', 'or 4, 5, 5', - 'or 14, 6, 6', - 'or 23, 7, 7', - 'addi 3, 0, 0', - 'or 22, 3, 3', - 'setvl 0, 0, 3, 0, 1, 1', - 'addi 3, 0, 0', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *39, *39', - 'or 7, 4, 4', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 19, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 21, 3, 3', - 'or 12, 4, 4', - 'or 11, 5, 5', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *39, *39', - 'or 7, 14, 14', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 18, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 17, 3, 3', - 'or 16, 4, 4', - 'or 15, 5, 5', - 'addi 3, 0, 0', - 'or 8, 3, 3', + 'or 9, 6, 6', + 'or 34, 7, 7', + 'or 33, 8, 8', 'addi 3, 0, 0', - 'or 14, 3, 3', - 'setvl 0, 0, 5, 0, 1, 1', - 'or 3, 12, 12', - 'or 4, 11, 11', - 'or 5, 19, 19', - 'or 6, 8, 8', - 'or 7, 8, 8', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *8, *3, *3', - 'or 3, 17, 17', - 'or 4, 16, 16', - 'or 5, 15, 15', - 'or 6, 18, 18', - 'or 7, 14, 14', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'addic 0, 0, 0', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *14, *8, *8', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *8, *3, *3', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.adde *3, *14, *8', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'or 20, 3, 3', - 'or 19, 4, 4', - 'or 18, 5, 5', - 'or 17, 6, 6', - 'or 16, 7, 7', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *39, *39', - 'or 7, 23, 23', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 15, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 14, 3, 3', - 'or 12, 4, 4', - 'or 11, 5, 5', + 'or 28, 3, 3', 'setvl 0, 0, 4, 0, 1, 1', - 'or 3, 19, 19', - 'or 4, 18, 18', - 'or 5, 17, 17', - 'or 6, 16, 16', + 'addi 3, 0, 0', 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *35, *35', + 'or 8, 4, 4', + 'or 7, 28, 28', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', - 'or 3, 14, 14', - 'or 4, 12, 12', - 'or 5, 11, 11', - 'or 6, 15, 15', + 'sv.maddedu *3, *14, 8, 7', 'setvl 0, 0, 4, 0, 1, 1', + 'or 24, 7, 7', 'setvl 0, 0, 4, 0, 1, 1', - 'addic 0, 0, 0', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *14, *7, *7', + 'or 27, 3, 3', + 'or 23, 4, 4', + 'or 19, 5, 5', + 'or 18, 6, 6', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', + 'sv.or *14, *35, *35', + 'or 8, 9, 9', + 'or 7, 28, 28', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.adde *3, *14, *7', + 'sv.maddedu *3, *14, 8, 7', 'setvl 0, 0, 4, 0, 1, 1', + 'or 22, 7, 7', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', - 'or 12, 3, 3', - 'or 11, 4, 4', - 'or 10, 5, 5', - 'or 9, 6, 6', + 'or 21, 3, 3', + 'or 20, 4, 4', + 'or 12, 5, 5', + 'or 11, 6, 6', + 'addi 3, 0, 0', + 'or 10, 3, 3', + 'addi 3, 0, 0', + 'or 9, 3, 3', + 'setvl 0, 0, 6, 0, 1, 1', + 'or 3, 23, 23', + 'or 4, 19, 19', + 'or 5, 18, 18', + 'or 6, 24, 24', + 'or 7, 10, 10', + 'or 8, 10, 10', + 'setvl 0, 0, 6, 0, 1, 1', 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *14, *3, *3', 'or 3, 21, 21', 'or 4, 20, 20', 'or 5, 12, 12', 'or 6, 11, 11', - 'or 7, 10, 10', + 'or 7, 22, 22', 'or 8, 9, 9', 'setvl 0, 0, 6, 0, 1, 1', 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *36, *3, *3', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *3, *33, *33', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or/mrr *5, *3, *3', - 'or 4, 5, 5', - 'or 14, 6, 6', - 'or 23, 7, 7', + 'addic 0, 0, 0', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *20, *14, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *14, *3, *3', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.adde *3, *20, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'or 26, 3, 3', + 'or 25, 4, 4', + 'or 24, 5, 5', + 'or 23, 6, 6', + 'or 19, 7, 7', + 'or 18, 8, 8', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *35, *35', + 'or 8, 34, 34', + 'or 7, 28, 28', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.maddedu *3, *14, 8, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 22, 7, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 21, 3, 3', + 'or 20, 4, 4', + 'or 12, 5, 5', + 'or 11, 6, 6', 'addi 3, 0, 0', - 'or 22, 3, 3', - 'setvl 0, 0, 3, 0, 1, 1', + 'or 10, 3, 3', 'addi 3, 0, 0', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *30, *30', - 'or 7, 4, 4', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 19, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 21, 3, 3', - 'or 12, 4, 4', - 'or 11, 5, 5', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *30, *30', - 'or 7, 14, 14', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 18, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', + 'or 9, 3, 3', + 'setvl 0, 0, 6, 0, 1, 1', + 'or 3, 25, 25', + 'or 4, 24, 24', + 'or 5, 23, 23', + 'or 6, 19, 19', + 'or 7, 18, 18', + 'or 8, 10, 10', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *14, *3, *3', + 'or 3, 21, 21', + 'or 4, 20, 20', + 'or 5, 12, 12', + 'or 6, 11, 11', + 'or 7, 22, 22', + 'or 8, 9, 9', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'addic 0, 0, 0', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *20, *14, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *14, *3, *3', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.adde *3, *20, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'or 20, 3, 3', + 'or 19, 4, 4', + 'or 12, 5, 5', + 'or 11, 6, 6', + 'or 10, 7, 7', + 'or 9, 8, 8', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *35, *35', + 'or 8, 33, 33', + 'or 7, 28, 28', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.maddedu *3, *14, 8, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 18, 7, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', 'or 17, 3, 3', 'or 16, 4, 4', 'or 15, 5, 5', - 'addi 3, 0, 0', - 'or 8, 3, 3', - 'addi 3, 0, 0', - 'or 14, 3, 3', + 'or 14, 6, 6', 'setvl 0, 0, 5, 0, 1, 1', - 'or 3, 12, 12', - 'or 4, 11, 11', - 'or 5, 19, 19', - 'or 6, 8, 8', - 'or 7, 8, 8', + 'or 3, 19, 19', + 'or 4, 12, 12', + 'or 5, 11, 11', + 'or 6, 10, 10', + 'or 7, 9, 9', 'setvl 0, 0, 5, 0, 1, 1', 'setvl 0, 0, 5, 0, 1, 1', 'sv.or *8, *3, *3', 'or 3, 17, 17', 'or 4, 16, 16', 'or 5, 15, 15', - 'or 6, 18, 18', - 'or 7, 14, 14', + 'or 6, 14, 14', + 'or 7, 18, 18', 'setvl 0, 0, 5, 0, 1, 1', 'setvl 0, 0, 5, 0, 1, 1', 'addic 0, 0, 0', @@ -1599,241 +1450,404 @@ class TestToomCook(unittest.TestCase): 'setvl 0, 0, 5, 0, 1, 1', 'setvl 0, 0, 5, 0, 1, 1', 'setvl 0, 0, 5, 0, 1, 1', - 'or 20, 3, 3', - 'or 19, 4, 4', - 'or 18, 5, 5', - 'or 17, 6, 6', - 'or 16, 7, 7', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.or *8, *30, *30', - 'or 7, 23, 23', - 'or 6, 22, 22', - 'setvl 0, 0, 3, 0, 1, 1', - 'sv.maddedu *3, *8, 7, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 15, 6, 6', - 'setvl 0, 0, 3, 0, 1, 1', - 'setvl 0, 0, 3, 0, 1, 1', - 'or 14, 3, 3', - 'or 12, 4, 4', - 'or 11, 5, 5', - 'setvl 0, 0, 4, 0, 1, 1', - 'or 3, 19, 19', - 'or 4, 18, 18', - 'or 5, 17, 17', + 'or 16, 3, 3', + 'or 15, 4, 4', + 'or 14, 5, 5', + 'or 12, 6, 6', + 'or 11, 7, 7', + 'setvl 0, 0, 8, 0, 1, 1', + 'or 3, 27, 27', + 'or 4, 26, 26', + 'or 5, 20, 20', 'or 6, 16, 16', + 'or 7, 15, 15', + 'or 8, 14, 14', + 'or 9, 12, 12', + 'or 10, 11, 11', + 'setvl 0, 0, 8, 0, 1, 1', + 'setvl 0, 0, 8, 0, 1, 1', + 'sv.or *21, *3, *3', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', - 'or 3, 14, 14', - 'or 4, 12, 12', - 'or 5, 11, 11', - 'or 6, 15, 15', + 'sv.or *3, *29, *29', 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or/mrr *5, *3, *3', + 'or 4, 5, 5', + 'or 9, 6, 6', + 'or 39, 7, 7', + 'or 38, 8, 8', + 'addi 3, 0, 0', + 'or 37, 3, 3', + 'setvl 0, 0, 4, 0, 1, 1', + 'addi 3, 0, 0', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *40, *40', + 'or 8, 4, 4', + 'or 7, 37, 37', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.maddedu *3, *14, 8, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 32, 7, 7', 'setvl 0, 0, 4, 0, 1, 1', - 'addic 0, 0, 0', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *14, *7, *7', + 'or 36, 3, 3', + 'or 31, 4, 4', + 'or 19, 5, 5', + 'or 18, 6, 6', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', + 'sv.or *14, *40, *40', + 'or 8, 9, 9', + 'or 7, 37, 37', 'setvl 0, 0, 4, 0, 1, 1', - 'sv.adde *3, *14, *7', + 'sv.maddedu *3, *14, 8, 7', 'setvl 0, 0, 4, 0, 1, 1', + 'or 30, 7, 7', 'setvl 0, 0, 4, 0, 1, 1', 'setvl 0, 0, 4, 0, 1, 1', - 'or 12, 3, 3', - 'or 11, 4, 4', - 'or 10, 5, 5', - 'or 9, 6, 6', + 'or 29, 3, 3', + 'or 20, 4, 4', + 'or 12, 5, 5', + 'or 11, 6, 6', + 'addi 3, 0, 0', + 'or 10, 3, 3', + 'addi 3, 0, 0', + 'or 9, 3, 3', 'setvl 0, 0, 6, 0, 1, 1', - 'or 3, 21, 21', + 'or 3, 31, 31', + 'or 4, 19, 19', + 'or 5, 18, 18', + 'or 6, 32, 32', + 'or 7, 10, 10', + 'or 8, 10, 10', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *14, *3, *3', + 'or 3, 29, 29', 'or 4, 20, 20', 'or 5, 12, 12', 'or 6, 11, 11', - 'or 7, 10, 10', + 'or 7, 30, 30', 'or 8, 9, 9', 'setvl 0, 0, 6, 0, 1, 1', 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *30, *3, *3', + 'addic 0, 0, 0', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *29, *14, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *14, *3, *3', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.adde *3, *29, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'or 35, 3, 3', + 'or 33, 4, 4', + 'or 32, 5, 5', + 'or 31, 6, 6', + 'or 19, 7, 7', + 'or 18, 8, 8', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *40, *40', + 'or 8, 39, 39', + 'or 7, 37, 37', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.maddedu *3, *14, 8, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 30, 7, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 29, 3, 3', + 'or 20, 4, 4', + 'or 12, 5, 5', + 'or 11, 6, 6', + 'addi 3, 0, 0', + 'or 10, 3, 3', + 'addi 3, 0, 0', + 'or 9, 3, 3', 'setvl 0, 0, 6, 0, 1, 1', + 'or 3, 33, 33', + 'or 4, 32, 32', + 'or 5, 31, 31', + 'or 6, 19, 19', + 'or 7, 18, 18', + 'or 8, 10, 10', 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *3, *24, *24', 'setvl 0, 0, 6, 0, 1, 1', 'sv.or *14, *3, *3', - 'or 4, 14, 14', - 'or 11, 15, 15', - 'or 10, 16, 16', - 'or 9, 17, 17', - 'or 8, 18, 18', - 'or 3, 19, 19', - 'setvl 0, 0, 5, 0, 1, 1', - 'or 3, 4, 4', - 'or 4, 11, 11', - 'or 5, 10, 10', - 'or 6, 9, 9', - 'or 7, 8, 8', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *25, *3, *3', + 'or 3, 29, 29', + 'or 4, 20, 20', + 'or 5, 12, 12', + 'or 6, 11, 11', + 'or 7, 30, 30', + 'or 8, 9, 9', 'setvl 0, 0, 6, 0, 1, 1', 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *3, *36, *36', + 'addic 0, 0, 0', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.or *29, *14, *14', 'setvl 0, 0, 6, 0, 1, 1', 'sv.or *14, *3, *3', - 'or 4, 14, 14', - 'or 11, 15, 15', - 'or 10, 16, 16', - 'or 9, 17, 17', - 'or 8, 18, 18', + 'setvl 0, 0, 6, 0, 1, 1', + 'sv.adde *3, *29, *14', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'setvl 0, 0, 6, 0, 1, 1', + 'or 20, 3, 3', + 'or 19, 4, 4', + 'or 12, 5, 5', + 'or 11, 6, 6', + 'or 10, 7, 7', + 'or 9, 8, 8', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.or *14, *40, *40', + 'or 8, 38, 38', + 'or 7, 37, 37', + 'setvl 0, 0, 4, 0, 1, 1', + 'sv.maddedu *3, *14, 8, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 18, 7, 7', + 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 4, 0, 1, 1', + 'or 17, 3, 3', + 'or 16, 4, 4', + 'or 15, 5, 5', + 'or 14, 6, 6', + 'setvl 0, 0, 5, 0, 1, 1', 'or 3, 19, 19', + 'or 4, 12, 12', + 'or 5, 11, 11', + 'or 6, 10, 10', + 'or 7, 9, 9', 'setvl 0, 0, 5, 0, 1, 1', - 'or 3, 4, 4', - 'or 4, 11, 11', - 'or 5, 10, 10', - 'or 6, 9, 9', - 'or 7, 8, 8', 'setvl 0, 0, 5, 0, 1, 1', + 'sv.or *8, *3, *3', + 'or 3, 17, 17', + 'or 4, 16, 16', + 'or 5, 15, 15', + 'or 6, 14, 14', + 'or 7, 18, 18', 'setvl 0, 0, 5, 0, 1, 1', 'setvl 0, 0, 5, 0, 1, 1', - 'subfc 0, 0, 0', + 'addic 0, 0, 0', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *14, *25, *25', + 'sv.or *14, *8, *8', 'setvl 0, 0, 5, 0, 1, 1', 'sv.or *8, *3, *3', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.subfe *3, *14, *8', + 'sv.adde *3, *14, *8', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *20, *3, *3', - 'setvl 0, 0, 6, 0, 1, 1', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *3, *30, *30', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *14, *3, *3', - 'or 4, 14, 14', - 'or 11, 15, 15', - 'or 10, 16, 16', - 'or 9, 17, 17', - 'or 8, 18, 18', - 'or 3, 19, 19', 'setvl 0, 0, 5, 0, 1, 1', + 'setvl 0, 0, 5, 0, 1, 1', + 'or 16, 3, 3', + 'or 15, 4, 4', + 'or 14, 5, 5', + 'or 12, 6, 6', + 'or 11, 7, 7', + 'setvl 0, 0, 8, 0, 1, 1', + 'or 3, 36, 36', + 'or 4, 35, 35', + 'or 5, 20, 20', + 'or 6, 16, 16', + 'or 7, 15, 15', + 'or 8, 14, 14', + 'or 9, 12, 12', + 'or 10, 11, 11', + 'setvl 0, 0, 8, 0, 1, 1', + 'setvl 0, 0, 8, 0, 1, 1', + 'sv.or *37, *3, *3', + 'setvl 0, 0, 1, 0, 1, 1', + 'or 3, 47, 47', + 'setvl 0, 0, 1, 0, 1, 1', + 'or 5, 3, 3', + 'addi 3, 0, 0', + 'or 4, 3, 3', + 'setvl 0, 0, 1, 0, 1, 1', + 'addi 3, 0, 0', + 'or 6, 46, 46', + 'setvl 0, 0, 1, 0, 1, 1', + 'sv.maddedu *3, *6, 5, 4', + 'or 5, 4, 4', + 'setvl 0, 0, 1, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'or 4, 5, 5', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *35, *3, *3', + 'setvl 0, 0, 8, 0, 1, 1', + 'setvl 0, 0, 8, 0, 1, 1', + 'sv.or *3, *21, *21', + 'setvl 0, 0, 8, 0, 1, 1', + 'sv.or *17, *3, *3', + 'or 4, 17, 17', + 'or 16, 18, 18', + 'or 15, 19, 19', + 'or 14, 20, 20', + 'or 12, 21, 21', + 'or 11, 22, 22', + 'or 10, 23, 23', + 'or 3, 24, 24', + 'setvl 0, 0, 7, 0, 1, 1', + 'or 3, 4, 4', + 'or 4, 16, 16', + 'or 5, 15, 15', + 'or 6, 14, 14', + 'or 7, 12, 12', + 'or 8, 11, 11', + 'or 9, 10, 10', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *28, *3, *3', + 'setvl 0, 0, 8, 0, 1, 1', + 'setvl 0, 0, 8, 0, 1, 1', + 'sv.or *3, *37, *37', + 'setvl 0, 0, 8, 0, 1, 1', + 'sv.or *17, *3, *3', + 'or 4, 17, 17', + 'or 16, 18, 18', + 'or 15, 19, 19', + 'or 14, 20, 20', + 'or 12, 21, 21', + 'or 11, 22, 22', + 'or 10, 23, 23', + 'or 3, 24, 24', + 'setvl 0, 0, 7, 0, 1, 1', + 'or 3, 4, 4', + 'or 4, 16, 16', + 'or 5, 15, 15', + 'or 6, 14, 14', + 'or 7, 12, 12', + 'or 8, 11, 11', + 'or 9, 10, 10', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'subfc 0, 0, 0', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *21, *28, *28', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *14, *3, *3', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.subfe *3, *21, *14', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *14, *3, *3', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *3, *35, *35', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *5, *3, *3', + 'or 4, 5, 5', + 'or 11, 6, 6', + 'addi 3, 0, 0', + 'or 10, 3, 3', + 'setvl 0, 0, 7, 0, 1, 1', 'or 3, 4, 4', 'or 4, 11, 11', 'or 5, 10, 10', - 'or 6, 9, 9', - 'or 7, 8, 8', - 'setvl 0, 0, 5, 0, 1, 1', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *30, *3, *3', - 'setvl 0, 0, 5, 0, 1, 1', + 'or 6, 10, 10', + 'or 7, 10, 10', + 'or 8, 10, 10', + 'or 9, 10, 10', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', 'subfc 0, 0, 0', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *21, *3, *3', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.subfe *3, *21, *14', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *14, *3, *3', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *3, *28, *28', + 'setvl 0, 0, 7, 0, 1, 1', + 'or 25, 3, 3', + 'or 24, 4, 4', + 'or 23, 5, 5', + 'or 22, 6, 6', + 'or 21, 7, 7', + 'or 12, 8, 8', + 'or 11, 9, 9', + 'setvl 0, 0, 7, 0, 1, 1', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or *3, *14, *14', + 'setvl 0, 0, 7, 0, 1, 1', + 'sv.or/mrr *4, *3, *3', + 'or 18, 4, 4', + 'or 17, 5, 5', + 'or 16, 6, 6', + 'or 15, 7, 7', + 'or 14, 8, 8', + 'or 3, 9, 9', + 'or 3, 10, 10', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *3, *35, *35', + 'setvl 0, 0, 2, 0, 1, 1', + 'or 20, 3, 3', + 'or 19, 4, 4', + 'addi 3, 0, 0', + 'addi 3, 0, 0', + 'or 8, 3, 3', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *14, *30, *30', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *8, *20, *20', - 'setvl 0, 0, 5, 0, 1, 1', - 'sv.subfe *3, *14, *8', + 'or 3, 22, 22', + 'or 4, 21, 21', + 'or 5, 12, 12', + 'or 6, 11, 11', + 'or 7, 8, 8', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *16, *3, *3', 'setvl 0, 0, 5, 0, 1, 1', + 'sv.or *8, *3, *3', + 'or 3, 18, 18', + 'or 4, 17, 17', + 'or 5, 16, 16', + 'or 6, 15, 15', + 'or 7, 14, 14', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *3, *25, *25', 'setvl 0, 0, 5, 0, 1, 1', - 'or 29, 3, 3', - 'or 28, 4, 4', - 'or 8, 5, 5', - 'or 15, 6, 6', - 'or 14, 7, 7', + 'addic 0, 0, 0', 'setvl 0, 0, 5, 0, 1, 1', + 'sv.or *14, *8, *8', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *3, *16, *16', + 'sv.or *8, *3, *3', 'setvl 0, 0, 5, 0, 1, 1', - 'or 24, 3, 3', - 'or 23, 4, 4', - 'or 22, 5, 5', - 'or 21, 6, 6', - 'or 20, 7, 7', + 'sv.adde *3, *14, *8', 'setvl 0, 0, 5, 0, 1, 1', 'setvl 0, 0, 5, 0, 1, 1', - 'sv.or *3, *30, *30', 'setvl 0, 0, 5, 0, 1, 1', - 'or 27, 3, 3', - 'or 26, 4, 4', - 'or 12, 5, 5', - 'or 11, 6, 6', + 'sv.or/mrr *4, *3, *3', + 'or 16, 4, 4', + 'or 15, 5, 5', + 'or 14, 6, 6', 'or 3, 7, 7', - 'addi 3, 0, 0', - 'addi 3, 0, 0', - 'or 10, 3, 3', - 'or 3, 20, 20', - 'sradi 3, 3, 63', - 'or 9, 3, 3', - 'setvl 0, 0, 6, 0, 1, 1', - 'or 3, 8, 8', - 'or 4, 15, 15', - 'or 5, 14, 14', - 'or 6, 10, 10', - 'or 7, 10, 10', - 'or 8, 10, 10', - 'setvl 0, 0, 6, 0, 1, 1', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *14, *3, *3', - 'or 3, 24, 24', - 'or 4, 23, 23', - 'or 5, 22, 22', - 'or 6, 21, 21', - 'or 7, 20, 20', - 'or 8, 9, 9', - 'setvl 0, 0, 6, 0, 1, 1', - 'setvl 0, 0, 6, 0, 1, 1', - 'addic 0, 0, 0', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *20, *14, *14', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *14, *3, *3', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.adde *3, *20, *14', - 'setvl 0, 0, 6, 0, 1, 1', - 'setvl 0, 0, 6, 0, 1, 1', - 'setvl 0, 0, 6, 0, 1, 1', - 'sv.or *20, *3, *3', - 'or 19, 20, 20', - 'or 18, 21, 21', - 'or 3, 22, 22', - 'or 9, 23, 23', - 'or 8, 24, 24', - 'or 7, 25, 25', - 'setvl 0, 0, 4, 0, 1, 1', - 'or 4, 9, 9', 'or 5, 8, 8', - 'or 6, 7, 7', - 'setvl 0, 0, 4, 0, 1, 1', - 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', - 'or 3, 27, 27', - 'or 4, 26, 26', - 'or 5, 12, 12', - 'or 6, 11, 11', - 'setvl 0, 0, 4, 0, 1, 1', - 'setvl 0, 0, 4, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'or 4, 5, 5', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *5, *3, *3', + 'or 3, 20, 20', + 'or 4, 19, 19', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', 'addic 0, 0, 0', - 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *14, *7, *7', - 'setvl 0, 0, 4, 0, 1, 1', - 'sv.or *7, *3, *3', - 'setvl 0, 0, 4, 0, 1, 1', - 'sv.adde *3, *14, *7', - 'setvl 0, 0, 4, 0, 1, 1', - 'setvl 0, 0, 4, 0, 1, 1', - 'setvl 0, 0, 4, 0, 1, 1', - 'or 15, 3, 3', - 'or 14, 4, 4', - 'or 12, 5, 5', - 'or 11, 6, 6', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *7, *5, *5', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.or *5, *3, *3', + 'setvl 0, 0, 2, 0, 1, 1', + 'sv.adde *3, *7, *5', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'setvl 0, 0, 2, 0, 1, 1', + 'or 12, 3, 3', + 'or 11, 4, 4', 'setvl 0, 0, 8, 0, 1, 1', - 'or 3, 29, 29', - 'or 4, 28, 28', - 'or 5, 19, 19', - 'or 6, 18, 18', + 'or 3, 25, 25', + 'or 4, 24, 24', + 'or 5, 23, 23', + 'or 6, 16, 16', 'or 7, 15, 15', 'or 8, 14, 14', 'or 9, 12, 12', @@ -1843,9 +1857,9 @@ class TestToomCook(unittest.TestCase): 'setvl 0, 0, 8, 0, 1, 1', 'setvl 0, 0, 8, 0, 1, 1', 'sv.or/mrr *4, *3, *3', - 'or 3, 42, 42', + 'or 3, 45, 45', 'setvl 0, 0, 8, 0, 1, 1', - 'sv.std *4, 0(3)' + 'sv.std *4, 0(3)', ]) def tst_toom_mul_sim(