From: Josh Bleecher Snyder Date: Sat, 24 Mar 2018 02:09:23 +0000 (-0700) Subject: cmd/compile: strength reduce more x86 constant multiplication X-Git-Tag: go1.11beta1~1067 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6a74fe2f15650572adfd1b49dec760052295b21f;p=gostls13.git cmd/compile: strength reduce more x86 constant multiplication The additions were machine-generated. The change for x * 7 avoids a reg-reg move, reducing the number of instructions from 3 to 2. Change-Id: Ib002e39f29ca5e46cfdb8daaf87ddc7ba50a17e5 Reviewed-on: https://go-review.googlesource.com/102395 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/gc/testdata/arithConst.go b/src/cmd/compile/internal/gc/testdata/arithConst.go index 887abead15..4ece5a9cb6 100644 --- a/src/cmd/compile/internal/gc/testdata/arithConst.go +++ b/src/cmd/compile/internal/gc/testdata/arithConst.go @@ -300,6 +300,102 @@ func xor_uint64_18446744073709551615(a uint64) uint64 { return a ^ 1844674407370 //go:noinline func xor_18446744073709551615_uint64(a uint64) uint64 { return 18446744073709551615 ^ a } +//go:noinline +func mul_uint64_3(a uint64) uint64 { return a * 3 } + +//go:noinline +func mul_3_uint64(a uint64) uint64 { return 3 * a } + +//go:noinline +func mul_uint64_5(a uint64) uint64 { return a * 5 } + +//go:noinline +func mul_5_uint64(a uint64) uint64 { return 5 * a } + +//go:noinline +func mul_uint64_7(a uint64) uint64 { return a * 7 } + +//go:noinline +func mul_7_uint64(a uint64) uint64 { return 7 * a } + +//go:noinline +func mul_uint64_9(a uint64) uint64 { return a * 9 } + +//go:noinline +func mul_9_uint64(a uint64) uint64 { return 9 * a } + +//go:noinline +func mul_uint64_10(a uint64) uint64 { return a * 10 } + +//go:noinline +func mul_10_uint64(a uint64) uint64 { return 10 * a } + +//go:noinline +func mul_uint64_11(a uint64) uint64 { return a * 11 } + +//go:noinline +func mul_11_uint64(a uint64) uint64 { return 11 * a } + +//go:noinline +func mul_uint64_13(a uint64) uint64 { return a * 13 } + +//go:noinline +func mul_13_uint64(a uint64) uint64 { return 13 * a } + +//go:noinline +func mul_uint64_19(a uint64) uint64 { return a * 19 } + +//go:noinline +func mul_19_uint64(a uint64) uint64 { return 19 * a } + +//go:noinline +func mul_uint64_21(a uint64) uint64 { return a * 21 } + +//go:noinline +func mul_21_uint64(a uint64) uint64 { return 21 * a } + +//go:noinline +func mul_uint64_25(a uint64) uint64 { return a * 25 } + +//go:noinline +func mul_25_uint64(a uint64) uint64 { return 25 * a } + +//go:noinline +func mul_uint64_27(a uint64) uint64 { return a * 27 } + +//go:noinline +func mul_27_uint64(a uint64) uint64 { return 27 * a } + +//go:noinline +func mul_uint64_37(a uint64) uint64 { return a * 37 } + +//go:noinline +func mul_37_uint64(a uint64) uint64 { return 37 * a } + +//go:noinline +func mul_uint64_41(a uint64) uint64 { return a * 41 } + +//go:noinline +func mul_41_uint64(a uint64) uint64 { return 41 * a } + +//go:noinline +func mul_uint64_45(a uint64) uint64 { return a * 45 } + +//go:noinline +func mul_45_uint64(a uint64) uint64 { return 45 * a } + +//go:noinline +func mul_uint64_73(a uint64) uint64 { return a * 73 } + +//go:noinline +func mul_73_uint64(a uint64) uint64 { return 73 * a } + +//go:noinline +func mul_uint64_81(a uint64) uint64 { return a * 81 } + +//go:noinline +func mul_81_uint64(a uint64) uint64 { return 81 * a } + //go:noinline func add_int64_Neg9223372036854775808(a int64) int64 { return a + -9223372036854775808 } @@ -726,6 +822,120 @@ func xor_int64_9223372036854775807(a int64) int64 { return a ^ 92233720368547758 //go:noinline func xor_9223372036854775807_int64(a int64) int64 { return 9223372036854775807 ^ a } +//go:noinline +func mul_int64_Neg9(a int64) int64 { return a * -9 } + +//go:noinline +func mul_Neg9_int64(a int64) int64 { return -9 * a } + +//go:noinline +func mul_int64_Neg5(a int64) int64 { return a * -5 } + +//go:noinline +func mul_Neg5_int64(a int64) int64 { return -5 * a } + +//go:noinline +func mul_int64_Neg3(a int64) int64 { return a * -3 } + +//go:noinline +func mul_Neg3_int64(a int64) int64 { return -3 * a } + +//go:noinline +func mul_int64_3(a int64) int64 { return a * 3 } + +//go:noinline +func mul_3_int64(a int64) int64 { return 3 * a } + +//go:noinline +func mul_int64_5(a int64) int64 { return a * 5 } + +//go:noinline +func mul_5_int64(a int64) int64 { return 5 * a } + +//go:noinline +func mul_int64_7(a int64) int64 { return a * 7 } + +//go:noinline +func mul_7_int64(a int64) int64 { return 7 * a } + +//go:noinline +func mul_int64_9(a int64) int64 { return a * 9 } + +//go:noinline +func mul_9_int64(a int64) int64 { return 9 * a } + +//go:noinline +func mul_int64_10(a int64) int64 { return a * 10 } + +//go:noinline +func mul_10_int64(a int64) int64 { return 10 * a } + +//go:noinline +func mul_int64_11(a int64) int64 { return a * 11 } + +//go:noinline +func mul_11_int64(a int64) int64 { return 11 * a } + +//go:noinline +func mul_int64_13(a int64) int64 { return a * 13 } + +//go:noinline +func mul_13_int64(a int64) int64 { return 13 * a } + +//go:noinline +func mul_int64_19(a int64) int64 { return a * 19 } + +//go:noinline +func mul_19_int64(a int64) int64 { return 19 * a } + +//go:noinline +func mul_int64_21(a int64) int64 { return a * 21 } + +//go:noinline +func mul_21_int64(a int64) int64 { return 21 * a } + +//go:noinline +func mul_int64_25(a int64) int64 { return a * 25 } + +//go:noinline +func mul_25_int64(a int64) int64 { return 25 * a } + +//go:noinline +func mul_int64_27(a int64) int64 { return a * 27 } + +//go:noinline +func mul_27_int64(a int64) int64 { return 27 * a } + +//go:noinline +func mul_int64_37(a int64) int64 { return a * 37 } + +//go:noinline +func mul_37_int64(a int64) int64 { return 37 * a } + +//go:noinline +func mul_int64_41(a int64) int64 { return a * 41 } + +//go:noinline +func mul_41_int64(a int64) int64 { return 41 * a } + +//go:noinline +func mul_int64_45(a int64) int64 { return a * 45 } + +//go:noinline +func mul_45_int64(a int64) int64 { return 45 * a } + +//go:noinline +func mul_int64_73(a int64) int64 { return a * 73 } + +//go:noinline +func mul_73_int64(a int64) int64 { return 73 * a } + +//go:noinline +func mul_int64_81(a int64) int64 { return a * 81 } + +//go:noinline +func mul_81_int64(a int64) int64 { return 81 * a } + //go:noinline func add_uint32_0(a uint32) uint32 { return a + 0 } @@ -900,6 +1110,102 @@ func xor_uint32_4294967295(a uint32) uint32 { return a ^ 4294967295 } //go:noinline func xor_4294967295_uint32(a uint32) uint32 { return 4294967295 ^ a } +//go:noinline +func mul_uint32_3(a uint32) uint32 { return a * 3 } + +//go:noinline +func mul_3_uint32(a uint32) uint32 { return 3 * a } + +//go:noinline +func mul_uint32_5(a uint32) uint32 { return a * 5 } + +//go:noinline +func mul_5_uint32(a uint32) uint32 { return 5 * a } + +//go:noinline +func mul_uint32_7(a uint32) uint32 { return a * 7 } + +//go:noinline +func mul_7_uint32(a uint32) uint32 { return 7 * a } + +//go:noinline +func mul_uint32_9(a uint32) uint32 { return a * 9 } + +//go:noinline +func mul_9_uint32(a uint32) uint32 { return 9 * a } + +//go:noinline +func mul_uint32_10(a uint32) uint32 { return a * 10 } + +//go:noinline +func mul_10_uint32(a uint32) uint32 { return 10 * a } + +//go:noinline +func mul_uint32_11(a uint32) uint32 { return a * 11 } + +//go:noinline +func mul_11_uint32(a uint32) uint32 { return 11 * a } + +//go:noinline +func mul_uint32_13(a uint32) uint32 { return a * 13 } + +//go:noinline +func mul_13_uint32(a uint32) uint32 { return 13 * a } + +//go:noinline +func mul_uint32_19(a uint32) uint32 { return a * 19 } + +//go:noinline +func mul_19_uint32(a uint32) uint32 { return 19 * a } + +//go:noinline +func mul_uint32_21(a uint32) uint32 { return a * 21 } + +//go:noinline +func mul_21_uint32(a uint32) uint32 { return 21 * a } + +//go:noinline +func mul_uint32_25(a uint32) uint32 { return a * 25 } + +//go:noinline +func mul_25_uint32(a uint32) uint32 { return 25 * a } + +//go:noinline +func mul_uint32_27(a uint32) uint32 { return a * 27 } + +//go:noinline +func mul_27_uint32(a uint32) uint32 { return 27 * a } + +//go:noinline +func mul_uint32_37(a uint32) uint32 { return a * 37 } + +//go:noinline +func mul_37_uint32(a uint32) uint32 { return 37 * a } + +//go:noinline +func mul_uint32_41(a uint32) uint32 { return a * 41 } + +//go:noinline +func mul_41_uint32(a uint32) uint32 { return 41 * a } + +//go:noinline +func mul_uint32_45(a uint32) uint32 { return a * 45 } + +//go:noinline +func mul_45_uint32(a uint32) uint32 { return 45 * a } + +//go:noinline +func mul_uint32_73(a uint32) uint32 { return a * 73 } + +//go:noinline +func mul_73_uint32(a uint32) uint32 { return 73 * a } + +//go:noinline +func mul_uint32_81(a uint32) uint32 { return a * 81 } + +//go:noinline +func mul_81_uint32(a uint32) uint32 { return 81 * a } + //go:noinline func add_int32_Neg2147483648(a int32) int32 { return a + -2147483648 } @@ -1182,6 +1488,120 @@ func xor_int32_2147483647(a int32) int32 { return a ^ 2147483647 } //go:noinline func xor_2147483647_int32(a int32) int32 { return 2147483647 ^ a } +//go:noinline +func mul_int32_Neg9(a int32) int32 { return a * -9 } + +//go:noinline +func mul_Neg9_int32(a int32) int32 { return -9 * a } + +//go:noinline +func mul_int32_Neg5(a int32) int32 { return a * -5 } + +//go:noinline +func mul_Neg5_int32(a int32) int32 { return -5 * a } + +//go:noinline +func mul_int32_Neg3(a int32) int32 { return a * -3 } + +//go:noinline +func mul_Neg3_int32(a int32) int32 { return -3 * a } + +//go:noinline +func mul_int32_3(a int32) int32 { return a * 3 } + +//go:noinline +func mul_3_int32(a int32) int32 { return 3 * a } + +//go:noinline +func mul_int32_5(a int32) int32 { return a * 5 } + +//go:noinline +func mul_5_int32(a int32) int32 { return 5 * a } + +//go:noinline +func mul_int32_7(a int32) int32 { return a * 7 } + +//go:noinline +func mul_7_int32(a int32) int32 { return 7 * a } + +//go:noinline +func mul_int32_9(a int32) int32 { return a * 9 } + +//go:noinline +func mul_9_int32(a int32) int32 { return 9 * a } + +//go:noinline +func mul_int32_10(a int32) int32 { return a * 10 } + +//go:noinline +func mul_10_int32(a int32) int32 { return 10 * a } + +//go:noinline +func mul_int32_11(a int32) int32 { return a * 11 } + +//go:noinline +func mul_11_int32(a int32) int32 { return 11 * a } + +//go:noinline +func mul_int32_13(a int32) int32 { return a * 13 } + +//go:noinline +func mul_13_int32(a int32) int32 { return 13 * a } + +//go:noinline +func mul_int32_19(a int32) int32 { return a * 19 } + +//go:noinline +func mul_19_int32(a int32) int32 { return 19 * a } + +//go:noinline +func mul_int32_21(a int32) int32 { return a * 21 } + +//go:noinline +func mul_21_int32(a int32) int32 { return 21 * a } + +//go:noinline +func mul_int32_25(a int32) int32 { return a * 25 } + +//go:noinline +func mul_25_int32(a int32) int32 { return 25 * a } + +//go:noinline +func mul_int32_27(a int32) int32 { return a * 27 } + +//go:noinline +func mul_27_int32(a int32) int32 { return 27 * a } + +//go:noinline +func mul_int32_37(a int32) int32 { return a * 37 } + +//go:noinline +func mul_37_int32(a int32) int32 { return 37 * a } + +//go:noinline +func mul_int32_41(a int32) int32 { return a * 41 } + +//go:noinline +func mul_41_int32(a int32) int32 { return 41 * a } + +//go:noinline +func mul_int32_45(a int32) int32 { return a * 45 } + +//go:noinline +func mul_45_int32(a int32) int32 { return 45 * a } + +//go:noinline +func mul_int32_73(a int32) int32 { return a * 73 } + +//go:noinline +func mul_73_int32(a int32) int32 { return 73 * a } + +//go:noinline +func mul_int32_81(a int32) int32 { return a * 81 } + +//go:noinline +func mul_81_int32(a int32) int32 { return 81 * a } + //go:noinline func add_uint16_0(a uint16) uint16 { return a + 0 } @@ -2680,6 +3100,528 @@ var tests_uint64 = []test_uint64{ test_uint64{fn: xor_18446744073709551615_uint64, fnname: "xor_18446744073709551615_uint64", in: 18446744073709551615, want: 0}, test_uint64{fn: xor_uint64_18446744073709551615, fnname: "xor_uint64_18446744073709551615", in: 18446744073709551615, want: 0}} +type test_uint64mul struct { + fn func(uint64) uint64 + fnname string + in uint64 + want uint64 +} + +var tests_uint64mul = []test_uint64{ + + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 3, want: 9}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 3, want: 9}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 5, want: 15}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 5, want: 15}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 7, want: 21}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 7, want: 21}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 9, want: 27}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 9, want: 27}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 10, want: 30}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 10, want: 30}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 11, want: 33}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 11, want: 33}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 13, want: 39}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 13, want: 39}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 19, want: 57}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 19, want: 57}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 21, want: 63}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 21, want: 63}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 25, want: 75}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 25, want: 75}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 27, want: 81}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 27, want: 81}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 37, want: 111}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 37, want: 111}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 41, want: 123}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 41, want: 123}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 45, want: 135}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 45, want: 135}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 73, want: 219}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 73, want: 219}, + test_uint64{fn: mul_3_uint64, fnname: "mul_3_uint64", in: 81, want: 243}, + test_uint64{fn: mul_uint64_3, fnname: "mul_uint64_3", in: 81, want: 243}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 3, want: 15}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 3, want: 15}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 5, want: 25}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 5, want: 25}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 7, want: 35}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 7, want: 35}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 9, want: 45}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 9, want: 45}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 10, want: 50}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 10, want: 50}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 11, want: 55}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 11, want: 55}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 13, want: 65}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 13, want: 65}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 19, want: 95}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 19, want: 95}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 21, want: 105}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 21, want: 105}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 25, want: 125}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 25, want: 125}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 27, want: 135}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 27, want: 135}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 37, want: 185}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 37, want: 185}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 41, want: 205}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 41, want: 205}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 45, want: 225}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 45, want: 225}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 73, want: 365}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 73, want: 365}, + test_uint64{fn: mul_5_uint64, fnname: "mul_5_uint64", in: 81, want: 405}, + test_uint64{fn: mul_uint64_5, fnname: "mul_uint64_5", in: 81, want: 405}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 3, want: 21}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 3, want: 21}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 5, want: 35}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 5, want: 35}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 7, want: 49}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 7, want: 49}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 9, want: 63}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 9, want: 63}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 10, want: 70}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 10, want: 70}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 11, want: 77}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 11, want: 77}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 13, want: 91}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 13, want: 91}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 19, want: 133}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 19, want: 133}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 21, want: 147}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 21, want: 147}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 25, want: 175}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 25, want: 175}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 27, want: 189}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 27, want: 189}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 37, want: 259}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 37, want: 259}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 41, want: 287}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 41, want: 287}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 45, want: 315}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 45, want: 315}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 73, want: 511}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 73, want: 511}, + test_uint64{fn: mul_7_uint64, fnname: "mul_7_uint64", in: 81, want: 567}, + test_uint64{fn: mul_uint64_7, fnname: "mul_uint64_7", in: 81, want: 567}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 3, want: 27}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 3, want: 27}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 5, want: 45}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 5, want: 45}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 7, want: 63}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 7, want: 63}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 9, want: 81}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 9, want: 81}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 10, want: 90}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 10, want: 90}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 11, want: 99}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 11, want: 99}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 13, want: 117}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 13, want: 117}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 19, want: 171}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 19, want: 171}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 21, want: 189}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 21, want: 189}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 25, want: 225}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 25, want: 225}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 27, want: 243}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 27, want: 243}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 37, want: 333}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 37, want: 333}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 41, want: 369}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 41, want: 369}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 45, want: 405}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 45, want: 405}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 73, want: 657}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 73, want: 657}, + test_uint64{fn: mul_9_uint64, fnname: "mul_9_uint64", in: 81, want: 729}, + test_uint64{fn: mul_uint64_9, fnname: "mul_uint64_9", in: 81, want: 729}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 3, want: 30}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 3, want: 30}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 5, want: 50}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 5, want: 50}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 7, want: 70}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 7, want: 70}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 9, want: 90}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 9, want: 90}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 10, want: 100}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 10, want: 100}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 11, want: 110}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 11, want: 110}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 13, want: 130}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 13, want: 130}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 19, want: 190}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 19, want: 190}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 21, want: 210}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 21, want: 210}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 25, want: 250}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 25, want: 250}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 27, want: 270}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 27, want: 270}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 37, want: 370}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 37, want: 370}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 41, want: 410}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 41, want: 410}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 45, want: 450}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 45, want: 450}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 73, want: 730}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 73, want: 730}, + test_uint64{fn: mul_10_uint64, fnname: "mul_10_uint64", in: 81, want: 810}, + test_uint64{fn: mul_uint64_10, fnname: "mul_uint64_10", in: 81, want: 810}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 3, want: 33}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 3, want: 33}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 5, want: 55}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 5, want: 55}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 7, want: 77}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 7, want: 77}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 9, want: 99}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 9, want: 99}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 10, want: 110}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 10, want: 110}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 11, want: 121}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 11, want: 121}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 13, want: 143}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 13, want: 143}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 19, want: 209}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 19, want: 209}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 21, want: 231}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 21, want: 231}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 25, want: 275}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 25, want: 275}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 27, want: 297}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 27, want: 297}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 37, want: 407}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 37, want: 407}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 41, want: 451}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 41, want: 451}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 45, want: 495}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 45, want: 495}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 73, want: 803}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 73, want: 803}, + test_uint64{fn: mul_11_uint64, fnname: "mul_11_uint64", in: 81, want: 891}, + test_uint64{fn: mul_uint64_11, fnname: "mul_uint64_11", in: 81, want: 891}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 3, want: 39}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 3, want: 39}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 5, want: 65}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 5, want: 65}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 7, want: 91}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 7, want: 91}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 9, want: 117}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 9, want: 117}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 10, want: 130}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 10, want: 130}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 11, want: 143}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 11, want: 143}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 13, want: 169}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 13, want: 169}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 19, want: 247}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 19, want: 247}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 21, want: 273}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 21, want: 273}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 25, want: 325}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 25, want: 325}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 27, want: 351}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 27, want: 351}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 37, want: 481}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 37, want: 481}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 41, want: 533}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 41, want: 533}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 45, want: 585}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 45, want: 585}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 73, want: 949}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 73, want: 949}, + test_uint64{fn: mul_13_uint64, fnname: "mul_13_uint64", in: 81, want: 1053}, + test_uint64{fn: mul_uint64_13, fnname: "mul_uint64_13", in: 81, want: 1053}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 3, want: 57}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 3, want: 57}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 5, want: 95}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 5, want: 95}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 7, want: 133}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 7, want: 133}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 9, want: 171}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 9, want: 171}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 10, want: 190}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 10, want: 190}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 11, want: 209}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 11, want: 209}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 13, want: 247}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 13, want: 247}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 19, want: 361}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 19, want: 361}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 21, want: 399}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 21, want: 399}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 25, want: 475}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 25, want: 475}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 27, want: 513}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 27, want: 513}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 37, want: 703}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 37, want: 703}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 41, want: 779}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 41, want: 779}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 45, want: 855}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 45, want: 855}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 73, want: 1387}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 73, want: 1387}, + test_uint64{fn: mul_19_uint64, fnname: "mul_19_uint64", in: 81, want: 1539}, + test_uint64{fn: mul_uint64_19, fnname: "mul_uint64_19", in: 81, want: 1539}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 3, want: 63}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 3, want: 63}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 5, want: 105}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 5, want: 105}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 7, want: 147}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 7, want: 147}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 9, want: 189}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 9, want: 189}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 10, want: 210}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 10, want: 210}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 11, want: 231}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 11, want: 231}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 13, want: 273}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 13, want: 273}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 19, want: 399}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 19, want: 399}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 21, want: 441}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 21, want: 441}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 25, want: 525}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 25, want: 525}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 27, want: 567}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 27, want: 567}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 37, want: 777}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 37, want: 777}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 41, want: 861}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 41, want: 861}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 45, want: 945}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 45, want: 945}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 73, want: 1533}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 73, want: 1533}, + test_uint64{fn: mul_21_uint64, fnname: "mul_21_uint64", in: 81, want: 1701}, + test_uint64{fn: mul_uint64_21, fnname: "mul_uint64_21", in: 81, want: 1701}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 3, want: 75}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 3, want: 75}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 5, want: 125}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 5, want: 125}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 7, want: 175}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 7, want: 175}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 9, want: 225}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 9, want: 225}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 10, want: 250}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 10, want: 250}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 11, want: 275}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 11, want: 275}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 13, want: 325}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 13, want: 325}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 19, want: 475}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 19, want: 475}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 21, want: 525}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 21, want: 525}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 25, want: 625}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 25, want: 625}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 27, want: 675}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 27, want: 675}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 37, want: 925}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 37, want: 925}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 41, want: 1025}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 41, want: 1025}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 45, want: 1125}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 45, want: 1125}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 73, want: 1825}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 73, want: 1825}, + test_uint64{fn: mul_25_uint64, fnname: "mul_25_uint64", in: 81, want: 2025}, + test_uint64{fn: mul_uint64_25, fnname: "mul_uint64_25", in: 81, want: 2025}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 3, want: 81}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 3, want: 81}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 5, want: 135}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 5, want: 135}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 7, want: 189}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 7, want: 189}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 9, want: 243}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 9, want: 243}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 10, want: 270}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 10, want: 270}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 11, want: 297}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 11, want: 297}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 13, want: 351}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 13, want: 351}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 19, want: 513}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 19, want: 513}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 21, want: 567}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 21, want: 567}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 25, want: 675}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 25, want: 675}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 27, want: 729}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 27, want: 729}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 37, want: 999}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 37, want: 999}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 41, want: 1107}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 41, want: 1107}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 45, want: 1215}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 45, want: 1215}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 73, want: 1971}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 73, want: 1971}, + test_uint64{fn: mul_27_uint64, fnname: "mul_27_uint64", in: 81, want: 2187}, + test_uint64{fn: mul_uint64_27, fnname: "mul_uint64_27", in: 81, want: 2187}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 3, want: 111}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 3, want: 111}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 5, want: 185}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 5, want: 185}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 7, want: 259}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 7, want: 259}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 9, want: 333}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 9, want: 333}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 10, want: 370}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 10, want: 370}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 11, want: 407}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 11, want: 407}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 13, want: 481}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 13, want: 481}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 19, want: 703}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 19, want: 703}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 21, want: 777}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 21, want: 777}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 25, want: 925}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 25, want: 925}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 27, want: 999}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 27, want: 999}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 37, want: 1369}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 37, want: 1369}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 41, want: 1517}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 41, want: 1517}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 45, want: 1665}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 45, want: 1665}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 73, want: 2701}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 73, want: 2701}, + test_uint64{fn: mul_37_uint64, fnname: "mul_37_uint64", in: 81, want: 2997}, + test_uint64{fn: mul_uint64_37, fnname: "mul_uint64_37", in: 81, want: 2997}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 3, want: 123}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 3, want: 123}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 5, want: 205}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 5, want: 205}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 7, want: 287}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 7, want: 287}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 9, want: 369}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 9, want: 369}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 10, want: 410}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 10, want: 410}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 11, want: 451}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 11, want: 451}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 13, want: 533}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 13, want: 533}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 19, want: 779}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 19, want: 779}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 21, want: 861}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 21, want: 861}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 25, want: 1025}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 25, want: 1025}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 27, want: 1107}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 27, want: 1107}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 37, want: 1517}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 37, want: 1517}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 41, want: 1681}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 41, want: 1681}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 45, want: 1845}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 45, want: 1845}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 73, want: 2993}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 73, want: 2993}, + test_uint64{fn: mul_41_uint64, fnname: "mul_41_uint64", in: 81, want: 3321}, + test_uint64{fn: mul_uint64_41, fnname: "mul_uint64_41", in: 81, want: 3321}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 3, want: 135}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 3, want: 135}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 5, want: 225}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 5, want: 225}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 7, want: 315}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 7, want: 315}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 9, want: 405}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 9, want: 405}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 10, want: 450}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 10, want: 450}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 11, want: 495}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 11, want: 495}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 13, want: 585}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 13, want: 585}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 19, want: 855}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 19, want: 855}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 21, want: 945}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 21, want: 945}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 25, want: 1125}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 25, want: 1125}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 27, want: 1215}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 27, want: 1215}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 37, want: 1665}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 37, want: 1665}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 41, want: 1845}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 41, want: 1845}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 45, want: 2025}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 45, want: 2025}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 73, want: 3285}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 73, want: 3285}, + test_uint64{fn: mul_45_uint64, fnname: "mul_45_uint64", in: 81, want: 3645}, + test_uint64{fn: mul_uint64_45, fnname: "mul_uint64_45", in: 81, want: 3645}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 3, want: 219}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 3, want: 219}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 5, want: 365}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 5, want: 365}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 7, want: 511}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 7, want: 511}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 9, want: 657}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 9, want: 657}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 10, want: 730}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 10, want: 730}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 11, want: 803}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 11, want: 803}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 13, want: 949}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 13, want: 949}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 19, want: 1387}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 19, want: 1387}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 21, want: 1533}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 21, want: 1533}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 25, want: 1825}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 25, want: 1825}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 27, want: 1971}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 27, want: 1971}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 37, want: 2701}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 37, want: 2701}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 41, want: 2993}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 41, want: 2993}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 45, want: 3285}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 45, want: 3285}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 73, want: 5329}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 73, want: 5329}, + test_uint64{fn: mul_73_uint64, fnname: "mul_73_uint64", in: 81, want: 5913}, + test_uint64{fn: mul_uint64_73, fnname: "mul_uint64_73", in: 81, want: 5913}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 3, want: 243}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 3, want: 243}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 5, want: 405}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 5, want: 405}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 7, want: 567}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 7, want: 567}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 9, want: 729}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 9, want: 729}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 10, want: 810}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 10, want: 810}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 11, want: 891}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 11, want: 891}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 13, want: 1053}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 13, want: 1053}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 19, want: 1539}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 19, want: 1539}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 21, want: 1701}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 21, want: 1701}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 25, want: 2025}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 25, want: 2025}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 27, want: 2187}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 27, want: 2187}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 37, want: 2997}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 37, want: 2997}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 41, want: 3321}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 41, want: 3321}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 45, want: 3645}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 45, want: 3645}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 73, want: 5913}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 73, want: 5913}, + test_uint64{fn: mul_81_uint64, fnname: "mul_81_uint64", in: 81, want: 6561}, + test_uint64{fn: mul_uint64_81, fnname: "mul_uint64_81", in: 81, want: 6561}} + type test_int64 struct { fn func(int64) int64 fnname string @@ -3950,6 +4892,738 @@ var tests_int64 = []test_int64{ test_int64{fn: xor_9223372036854775807_int64, fnname: "xor_9223372036854775807_int64", in: 9223372036854775807, want: 0}, test_int64{fn: xor_int64_9223372036854775807, fnname: "xor_int64_9223372036854775807", in: 9223372036854775807, want: 0}} +type test_int64mul struct { + fn func(int64) int64 + fnname string + in int64 + want int64 +} + +var tests_int64mul = []test_int64{ + + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: -9, want: 81}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: -9, want: 81}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: -5, want: 45}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: -5, want: 45}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: -3, want: 27}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: -3, want: 27}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 3, want: -27}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 3, want: -27}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 5, want: -45}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 5, want: -45}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 7, want: -63}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 7, want: -63}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 9, want: -81}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 9, want: -81}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 10, want: -90}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 10, want: -90}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 11, want: -99}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 11, want: -99}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 13, want: -117}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 13, want: -117}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 19, want: -171}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 19, want: -171}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 21, want: -189}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 21, want: -189}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 25, want: -225}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 25, want: -225}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 27, want: -243}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 27, want: -243}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 37, want: -333}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 37, want: -333}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 41, want: -369}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 41, want: -369}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 45, want: -405}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 45, want: -405}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 73, want: -657}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 73, want: -657}, + test_int64{fn: mul_Neg9_int64, fnname: "mul_Neg9_int64", in: 81, want: -729}, + test_int64{fn: mul_int64_Neg9, fnname: "mul_int64_Neg9", in: 81, want: -729}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: -9, want: 45}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: -9, want: 45}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: -5, want: 25}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: -5, want: 25}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: -3, want: 15}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: -3, want: 15}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 3, want: -15}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 3, want: -15}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 5, want: -25}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 5, want: -25}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 7, want: -35}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 7, want: -35}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 9, want: -45}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 9, want: -45}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 10, want: -50}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 10, want: -50}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 11, want: -55}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 11, want: -55}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 13, want: -65}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 13, want: -65}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 19, want: -95}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 19, want: -95}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 21, want: -105}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 21, want: -105}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 25, want: -125}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 25, want: -125}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 27, want: -135}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 27, want: -135}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 37, want: -185}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 37, want: -185}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 41, want: -205}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 41, want: -205}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 45, want: -225}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 45, want: -225}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 73, want: -365}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 73, want: -365}, + test_int64{fn: mul_Neg5_int64, fnname: "mul_Neg5_int64", in: 81, want: -405}, + test_int64{fn: mul_int64_Neg5, fnname: "mul_int64_Neg5", in: 81, want: -405}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: -9, want: 27}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: -9, want: 27}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: -5, want: 15}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: -5, want: 15}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: -3, want: 9}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: -3, want: 9}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 3, want: -9}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 3, want: -9}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 5, want: -15}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 5, want: -15}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 7, want: -21}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 7, want: -21}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 9, want: -27}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 9, want: -27}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 10, want: -30}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 10, want: -30}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 11, want: -33}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 11, want: -33}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 13, want: -39}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 13, want: -39}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 19, want: -57}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 19, want: -57}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 21, want: -63}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 21, want: -63}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 25, want: -75}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 25, want: -75}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 27, want: -81}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 27, want: -81}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 37, want: -111}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 37, want: -111}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 41, want: -123}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 41, want: -123}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 45, want: -135}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 45, want: -135}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 73, want: -219}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 73, want: -219}, + test_int64{fn: mul_Neg3_int64, fnname: "mul_Neg3_int64", in: 81, want: -243}, + test_int64{fn: mul_int64_Neg3, fnname: "mul_int64_Neg3", in: 81, want: -243}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: -9, want: -27}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: -9, want: -27}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: -5, want: -15}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: -5, want: -15}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: -3, want: -9}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: -3, want: -9}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 3, want: 9}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 3, want: 9}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 5, want: 15}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 5, want: 15}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 7, want: 21}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 7, want: 21}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 9, want: 27}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 9, want: 27}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 10, want: 30}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 10, want: 30}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 11, want: 33}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 11, want: 33}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 13, want: 39}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 13, want: 39}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 19, want: 57}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 19, want: 57}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 21, want: 63}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 21, want: 63}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 25, want: 75}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 25, want: 75}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 27, want: 81}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 27, want: 81}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 37, want: 111}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 37, want: 111}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 41, want: 123}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 41, want: 123}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 45, want: 135}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 45, want: 135}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 73, want: 219}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 73, want: 219}, + test_int64{fn: mul_3_int64, fnname: "mul_3_int64", in: 81, want: 243}, + test_int64{fn: mul_int64_3, fnname: "mul_int64_3", in: 81, want: 243}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: -9, want: -45}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: -9, want: -45}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: -5, want: -25}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: -5, want: -25}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: -3, want: -15}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: -3, want: -15}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 3, want: 15}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 3, want: 15}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 5, want: 25}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 5, want: 25}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 7, want: 35}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 7, want: 35}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 9, want: 45}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 9, want: 45}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 10, want: 50}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 10, want: 50}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 11, want: 55}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 11, want: 55}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 13, want: 65}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 13, want: 65}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 19, want: 95}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 19, want: 95}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 21, want: 105}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 21, want: 105}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 25, want: 125}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 25, want: 125}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 27, want: 135}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 27, want: 135}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 37, want: 185}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 37, want: 185}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 41, want: 205}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 41, want: 205}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 45, want: 225}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 45, want: 225}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 73, want: 365}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 73, want: 365}, + test_int64{fn: mul_5_int64, fnname: "mul_5_int64", in: 81, want: 405}, + test_int64{fn: mul_int64_5, fnname: "mul_int64_5", in: 81, want: 405}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: -9, want: -63}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: -9, want: -63}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: -5, want: -35}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: -5, want: -35}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: -3, want: -21}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: -3, want: -21}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 3, want: 21}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 3, want: 21}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 5, want: 35}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 5, want: 35}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 7, want: 49}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 7, want: 49}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 9, want: 63}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 9, want: 63}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 10, want: 70}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 10, want: 70}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 11, want: 77}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 11, want: 77}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 13, want: 91}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 13, want: 91}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 19, want: 133}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 19, want: 133}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 21, want: 147}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 21, want: 147}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 25, want: 175}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 25, want: 175}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 27, want: 189}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 27, want: 189}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 37, want: 259}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 37, want: 259}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 41, want: 287}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 41, want: 287}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 45, want: 315}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 45, want: 315}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 73, want: 511}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 73, want: 511}, + test_int64{fn: mul_7_int64, fnname: "mul_7_int64", in: 81, want: 567}, + test_int64{fn: mul_int64_7, fnname: "mul_int64_7", in: 81, want: 567}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: -9, want: -81}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: -9, want: -81}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: -5, want: -45}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: -5, want: -45}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: -3, want: -27}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: -3, want: -27}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 3, want: 27}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 3, want: 27}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 5, want: 45}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 5, want: 45}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 7, want: 63}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 7, want: 63}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 9, want: 81}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 9, want: 81}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 10, want: 90}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 10, want: 90}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 11, want: 99}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 11, want: 99}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 13, want: 117}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 13, want: 117}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 19, want: 171}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 19, want: 171}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 21, want: 189}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 21, want: 189}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 25, want: 225}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 25, want: 225}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 27, want: 243}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 27, want: 243}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 37, want: 333}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 37, want: 333}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 41, want: 369}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 41, want: 369}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 45, want: 405}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 45, want: 405}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 73, want: 657}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 73, want: 657}, + test_int64{fn: mul_9_int64, fnname: "mul_9_int64", in: 81, want: 729}, + test_int64{fn: mul_int64_9, fnname: "mul_int64_9", in: 81, want: 729}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: -9, want: -90}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: -9, want: -90}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: -5, want: -50}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: -5, want: -50}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: -3, want: -30}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: -3, want: -30}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 3, want: 30}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 3, want: 30}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 5, want: 50}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 5, want: 50}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 7, want: 70}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 7, want: 70}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 9, want: 90}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 9, want: 90}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 10, want: 100}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 10, want: 100}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 11, want: 110}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 11, want: 110}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 13, want: 130}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 13, want: 130}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 19, want: 190}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 19, want: 190}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 21, want: 210}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 21, want: 210}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 25, want: 250}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 25, want: 250}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 27, want: 270}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 27, want: 270}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 37, want: 370}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 37, want: 370}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 41, want: 410}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 41, want: 410}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 45, want: 450}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 45, want: 450}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 73, want: 730}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 73, want: 730}, + test_int64{fn: mul_10_int64, fnname: "mul_10_int64", in: 81, want: 810}, + test_int64{fn: mul_int64_10, fnname: "mul_int64_10", in: 81, want: 810}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: -9, want: -99}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: -9, want: -99}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: -5, want: -55}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: -5, want: -55}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: -3, want: -33}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: -3, want: -33}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 3, want: 33}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 3, want: 33}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 5, want: 55}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 5, want: 55}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 7, want: 77}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 7, want: 77}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 9, want: 99}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 9, want: 99}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 10, want: 110}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 10, want: 110}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 11, want: 121}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 11, want: 121}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 13, want: 143}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 13, want: 143}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 19, want: 209}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 19, want: 209}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 21, want: 231}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 21, want: 231}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 25, want: 275}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 25, want: 275}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 27, want: 297}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 27, want: 297}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 37, want: 407}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 37, want: 407}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 41, want: 451}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 41, want: 451}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 45, want: 495}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 45, want: 495}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 73, want: 803}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 73, want: 803}, + test_int64{fn: mul_11_int64, fnname: "mul_11_int64", in: 81, want: 891}, + test_int64{fn: mul_int64_11, fnname: "mul_int64_11", in: 81, want: 891}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: -9, want: -117}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: -9, want: -117}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: -5, want: -65}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: -5, want: -65}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: -3, want: -39}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: -3, want: -39}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 3, want: 39}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 3, want: 39}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 5, want: 65}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 5, want: 65}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 7, want: 91}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 7, want: 91}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 9, want: 117}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 9, want: 117}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 10, want: 130}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 10, want: 130}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 11, want: 143}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 11, want: 143}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 13, want: 169}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 13, want: 169}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 19, want: 247}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 19, want: 247}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 21, want: 273}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 21, want: 273}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 25, want: 325}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 25, want: 325}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 27, want: 351}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 27, want: 351}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 37, want: 481}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 37, want: 481}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 41, want: 533}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 41, want: 533}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 45, want: 585}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 45, want: 585}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 73, want: 949}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 73, want: 949}, + test_int64{fn: mul_13_int64, fnname: "mul_13_int64", in: 81, want: 1053}, + test_int64{fn: mul_int64_13, fnname: "mul_int64_13", in: 81, want: 1053}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: -9, want: -171}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: -9, want: -171}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: -5, want: -95}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: -5, want: -95}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: -3, want: -57}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: -3, want: -57}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 3, want: 57}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 3, want: 57}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 5, want: 95}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 5, want: 95}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 7, want: 133}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 7, want: 133}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 9, want: 171}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 9, want: 171}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 10, want: 190}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 10, want: 190}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 11, want: 209}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 11, want: 209}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 13, want: 247}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 13, want: 247}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 19, want: 361}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 19, want: 361}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 21, want: 399}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 21, want: 399}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 25, want: 475}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 25, want: 475}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 27, want: 513}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 27, want: 513}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 37, want: 703}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 37, want: 703}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 41, want: 779}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 41, want: 779}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 45, want: 855}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 45, want: 855}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 73, want: 1387}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 73, want: 1387}, + test_int64{fn: mul_19_int64, fnname: "mul_19_int64", in: 81, want: 1539}, + test_int64{fn: mul_int64_19, fnname: "mul_int64_19", in: 81, want: 1539}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: -9, want: -189}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: -9, want: -189}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: -5, want: -105}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: -5, want: -105}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: -3, want: -63}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: -3, want: -63}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 3, want: 63}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 3, want: 63}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 5, want: 105}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 5, want: 105}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 7, want: 147}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 7, want: 147}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 9, want: 189}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 9, want: 189}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 10, want: 210}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 10, want: 210}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 11, want: 231}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 11, want: 231}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 13, want: 273}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 13, want: 273}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 19, want: 399}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 19, want: 399}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 21, want: 441}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 21, want: 441}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 25, want: 525}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 25, want: 525}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 27, want: 567}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 27, want: 567}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 37, want: 777}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 37, want: 777}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 41, want: 861}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 41, want: 861}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 45, want: 945}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 45, want: 945}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 73, want: 1533}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 73, want: 1533}, + test_int64{fn: mul_21_int64, fnname: "mul_21_int64", in: 81, want: 1701}, + test_int64{fn: mul_int64_21, fnname: "mul_int64_21", in: 81, want: 1701}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: -9, want: -225}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: -9, want: -225}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: -5, want: -125}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: -5, want: -125}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: -3, want: -75}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: -3, want: -75}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 3, want: 75}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 3, want: 75}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 5, want: 125}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 5, want: 125}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 7, want: 175}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 7, want: 175}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 9, want: 225}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 9, want: 225}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 10, want: 250}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 10, want: 250}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 11, want: 275}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 11, want: 275}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 13, want: 325}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 13, want: 325}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 19, want: 475}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 19, want: 475}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 21, want: 525}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 21, want: 525}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 25, want: 625}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 25, want: 625}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 27, want: 675}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 27, want: 675}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 37, want: 925}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 37, want: 925}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 41, want: 1025}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 41, want: 1025}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 45, want: 1125}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 45, want: 1125}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 73, want: 1825}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 73, want: 1825}, + test_int64{fn: mul_25_int64, fnname: "mul_25_int64", in: 81, want: 2025}, + test_int64{fn: mul_int64_25, fnname: "mul_int64_25", in: 81, want: 2025}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: -9, want: -243}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: -9, want: -243}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: -5, want: -135}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: -5, want: -135}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: -3, want: -81}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: -3, want: -81}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 3, want: 81}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 3, want: 81}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 5, want: 135}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 5, want: 135}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 7, want: 189}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 7, want: 189}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 9, want: 243}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 9, want: 243}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 10, want: 270}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 10, want: 270}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 11, want: 297}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 11, want: 297}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 13, want: 351}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 13, want: 351}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 19, want: 513}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 19, want: 513}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 21, want: 567}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 21, want: 567}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 25, want: 675}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 25, want: 675}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 27, want: 729}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 27, want: 729}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 37, want: 999}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 37, want: 999}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 41, want: 1107}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 41, want: 1107}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 45, want: 1215}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 45, want: 1215}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 73, want: 1971}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 73, want: 1971}, + test_int64{fn: mul_27_int64, fnname: "mul_27_int64", in: 81, want: 2187}, + test_int64{fn: mul_int64_27, fnname: "mul_int64_27", in: 81, want: 2187}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: -9, want: -333}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: -9, want: -333}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: -5, want: -185}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: -5, want: -185}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: -3, want: -111}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: -3, want: -111}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 3, want: 111}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 3, want: 111}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 5, want: 185}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 5, want: 185}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 7, want: 259}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 7, want: 259}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 9, want: 333}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 9, want: 333}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 10, want: 370}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 10, want: 370}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 11, want: 407}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 11, want: 407}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 13, want: 481}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 13, want: 481}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 19, want: 703}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 19, want: 703}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 21, want: 777}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 21, want: 777}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 25, want: 925}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 25, want: 925}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 27, want: 999}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 27, want: 999}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 37, want: 1369}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 37, want: 1369}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 41, want: 1517}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 41, want: 1517}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 45, want: 1665}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 45, want: 1665}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 73, want: 2701}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 73, want: 2701}, + test_int64{fn: mul_37_int64, fnname: "mul_37_int64", in: 81, want: 2997}, + test_int64{fn: mul_int64_37, fnname: "mul_int64_37", in: 81, want: 2997}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: -9, want: -369}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: -9, want: -369}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: -5, want: -205}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: -5, want: -205}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: -3, want: -123}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: -3, want: -123}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 3, want: 123}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 3, want: 123}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 5, want: 205}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 5, want: 205}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 7, want: 287}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 7, want: 287}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 9, want: 369}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 9, want: 369}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 10, want: 410}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 10, want: 410}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 11, want: 451}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 11, want: 451}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 13, want: 533}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 13, want: 533}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 19, want: 779}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 19, want: 779}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 21, want: 861}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 21, want: 861}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 25, want: 1025}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 25, want: 1025}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 27, want: 1107}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 27, want: 1107}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 37, want: 1517}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 37, want: 1517}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 41, want: 1681}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 41, want: 1681}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 45, want: 1845}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 45, want: 1845}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 73, want: 2993}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 73, want: 2993}, + test_int64{fn: mul_41_int64, fnname: "mul_41_int64", in: 81, want: 3321}, + test_int64{fn: mul_int64_41, fnname: "mul_int64_41", in: 81, want: 3321}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: -9, want: -405}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: -9, want: -405}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: -5, want: -225}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: -5, want: -225}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: -3, want: -135}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: -3, want: -135}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 3, want: 135}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 3, want: 135}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 5, want: 225}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 5, want: 225}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 7, want: 315}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 7, want: 315}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 9, want: 405}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 9, want: 405}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 10, want: 450}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 10, want: 450}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 11, want: 495}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 11, want: 495}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 13, want: 585}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 13, want: 585}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 19, want: 855}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 19, want: 855}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 21, want: 945}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 21, want: 945}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 25, want: 1125}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 25, want: 1125}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 27, want: 1215}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 27, want: 1215}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 37, want: 1665}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 37, want: 1665}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 41, want: 1845}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 41, want: 1845}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 45, want: 2025}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 45, want: 2025}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 73, want: 3285}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 73, want: 3285}, + test_int64{fn: mul_45_int64, fnname: "mul_45_int64", in: 81, want: 3645}, + test_int64{fn: mul_int64_45, fnname: "mul_int64_45", in: 81, want: 3645}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: -9, want: -657}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: -9, want: -657}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: -5, want: -365}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: -5, want: -365}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: -3, want: -219}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: -3, want: -219}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 3, want: 219}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 3, want: 219}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 5, want: 365}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 5, want: 365}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 7, want: 511}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 7, want: 511}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 9, want: 657}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 9, want: 657}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 10, want: 730}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 10, want: 730}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 11, want: 803}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 11, want: 803}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 13, want: 949}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 13, want: 949}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 19, want: 1387}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 19, want: 1387}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 21, want: 1533}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 21, want: 1533}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 25, want: 1825}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 25, want: 1825}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 27, want: 1971}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 27, want: 1971}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 37, want: 2701}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 37, want: 2701}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 41, want: 2993}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 41, want: 2993}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 45, want: 3285}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 45, want: 3285}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 73, want: 5329}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 73, want: 5329}, + test_int64{fn: mul_73_int64, fnname: "mul_73_int64", in: 81, want: 5913}, + test_int64{fn: mul_int64_73, fnname: "mul_int64_73", in: 81, want: 5913}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: -9, want: -729}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: -9, want: -729}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: -5, want: -405}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: -5, want: -405}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: -3, want: -243}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: -3, want: -243}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 3, want: 243}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 3, want: 243}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 5, want: 405}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 5, want: 405}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 7, want: 567}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 7, want: 567}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 9, want: 729}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 9, want: 729}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 10, want: 810}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 10, want: 810}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 11, want: 891}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 11, want: 891}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 13, want: 1053}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 13, want: 1053}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 19, want: 1539}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 19, want: 1539}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 21, want: 1701}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 21, want: 1701}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 25, want: 2025}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 25, want: 2025}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 27, want: 2187}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 27, want: 2187}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 37, want: 2997}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 37, want: 2997}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 41, want: 3321}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 41, want: 3321}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 45, want: 3645}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 45, want: 3645}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 73, want: 5913}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 73, want: 5913}, + test_int64{fn: mul_81_int64, fnname: "mul_81_int64", in: 81, want: 6561}, + test_int64{fn: mul_int64_81, fnname: "mul_int64_81", in: 81, want: 6561}} + type test_uint32 struct { fn func(uint32) uint32 fnname string @@ -4128,6 +5802,528 @@ var tests_uint32 = []test_uint32{ test_uint32{fn: xor_4294967295_uint32, fnname: "xor_4294967295_uint32", in: 4294967295, want: 0}, test_uint32{fn: xor_uint32_4294967295, fnname: "xor_uint32_4294967295", in: 4294967295, want: 0}} +type test_uint32mul struct { + fn func(uint32) uint32 + fnname string + in uint32 + want uint32 +} + +var tests_uint32mul = []test_uint32{ + + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 3, want: 9}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 3, want: 9}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 5, want: 15}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 5, want: 15}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 7, want: 21}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 7, want: 21}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 9, want: 27}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 9, want: 27}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 10, want: 30}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 10, want: 30}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 11, want: 33}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 11, want: 33}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 13, want: 39}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 13, want: 39}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 19, want: 57}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 19, want: 57}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 21, want: 63}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 21, want: 63}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 25, want: 75}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 25, want: 75}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 27, want: 81}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 27, want: 81}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 37, want: 111}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 37, want: 111}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 41, want: 123}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 41, want: 123}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 45, want: 135}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 45, want: 135}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 73, want: 219}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 73, want: 219}, + test_uint32{fn: mul_3_uint32, fnname: "mul_3_uint32", in: 81, want: 243}, + test_uint32{fn: mul_uint32_3, fnname: "mul_uint32_3", in: 81, want: 243}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 3, want: 15}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 3, want: 15}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 5, want: 25}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 5, want: 25}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 7, want: 35}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 7, want: 35}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 9, want: 45}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 9, want: 45}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 10, want: 50}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 10, want: 50}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 11, want: 55}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 11, want: 55}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 13, want: 65}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 13, want: 65}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 19, want: 95}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 19, want: 95}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 21, want: 105}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 21, want: 105}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 25, want: 125}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 25, want: 125}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 27, want: 135}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 27, want: 135}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 37, want: 185}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 37, want: 185}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 41, want: 205}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 41, want: 205}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 45, want: 225}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 45, want: 225}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 73, want: 365}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 73, want: 365}, + test_uint32{fn: mul_5_uint32, fnname: "mul_5_uint32", in: 81, want: 405}, + test_uint32{fn: mul_uint32_5, fnname: "mul_uint32_5", in: 81, want: 405}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 3, want: 21}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 3, want: 21}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 5, want: 35}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 5, want: 35}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 7, want: 49}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 7, want: 49}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 9, want: 63}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 9, want: 63}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 10, want: 70}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 10, want: 70}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 11, want: 77}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 11, want: 77}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 13, want: 91}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 13, want: 91}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 19, want: 133}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 19, want: 133}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 21, want: 147}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 21, want: 147}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 25, want: 175}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 25, want: 175}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 27, want: 189}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 27, want: 189}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 37, want: 259}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 37, want: 259}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 41, want: 287}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 41, want: 287}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 45, want: 315}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 45, want: 315}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 73, want: 511}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 73, want: 511}, + test_uint32{fn: mul_7_uint32, fnname: "mul_7_uint32", in: 81, want: 567}, + test_uint32{fn: mul_uint32_7, fnname: "mul_uint32_7", in: 81, want: 567}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 3, want: 27}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 3, want: 27}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 5, want: 45}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 5, want: 45}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 7, want: 63}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 7, want: 63}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 9, want: 81}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 9, want: 81}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 10, want: 90}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 10, want: 90}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 11, want: 99}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 11, want: 99}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 13, want: 117}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 13, want: 117}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 19, want: 171}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 19, want: 171}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 21, want: 189}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 21, want: 189}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 25, want: 225}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 25, want: 225}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 27, want: 243}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 27, want: 243}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 37, want: 333}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 37, want: 333}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 41, want: 369}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 41, want: 369}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 45, want: 405}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 45, want: 405}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 73, want: 657}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 73, want: 657}, + test_uint32{fn: mul_9_uint32, fnname: "mul_9_uint32", in: 81, want: 729}, + test_uint32{fn: mul_uint32_9, fnname: "mul_uint32_9", in: 81, want: 729}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 3, want: 30}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 3, want: 30}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 5, want: 50}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 5, want: 50}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 7, want: 70}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 7, want: 70}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 9, want: 90}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 9, want: 90}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 10, want: 100}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 10, want: 100}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 11, want: 110}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 11, want: 110}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 13, want: 130}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 13, want: 130}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 19, want: 190}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 19, want: 190}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 21, want: 210}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 21, want: 210}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 25, want: 250}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 25, want: 250}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 27, want: 270}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 27, want: 270}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 37, want: 370}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 37, want: 370}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 41, want: 410}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 41, want: 410}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 45, want: 450}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 45, want: 450}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 73, want: 730}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 73, want: 730}, + test_uint32{fn: mul_10_uint32, fnname: "mul_10_uint32", in: 81, want: 810}, + test_uint32{fn: mul_uint32_10, fnname: "mul_uint32_10", in: 81, want: 810}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 3, want: 33}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 3, want: 33}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 5, want: 55}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 5, want: 55}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 7, want: 77}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 7, want: 77}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 9, want: 99}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 9, want: 99}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 10, want: 110}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 10, want: 110}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 11, want: 121}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 11, want: 121}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 13, want: 143}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 13, want: 143}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 19, want: 209}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 19, want: 209}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 21, want: 231}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 21, want: 231}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 25, want: 275}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 25, want: 275}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 27, want: 297}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 27, want: 297}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 37, want: 407}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 37, want: 407}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 41, want: 451}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 41, want: 451}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 45, want: 495}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 45, want: 495}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 73, want: 803}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 73, want: 803}, + test_uint32{fn: mul_11_uint32, fnname: "mul_11_uint32", in: 81, want: 891}, + test_uint32{fn: mul_uint32_11, fnname: "mul_uint32_11", in: 81, want: 891}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 3, want: 39}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 3, want: 39}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 5, want: 65}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 5, want: 65}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 7, want: 91}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 7, want: 91}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 9, want: 117}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 9, want: 117}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 10, want: 130}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 10, want: 130}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 11, want: 143}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 11, want: 143}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 13, want: 169}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 13, want: 169}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 19, want: 247}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 19, want: 247}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 21, want: 273}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 21, want: 273}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 25, want: 325}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 25, want: 325}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 27, want: 351}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 27, want: 351}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 37, want: 481}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 37, want: 481}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 41, want: 533}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 41, want: 533}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 45, want: 585}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 45, want: 585}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 73, want: 949}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 73, want: 949}, + test_uint32{fn: mul_13_uint32, fnname: "mul_13_uint32", in: 81, want: 1053}, + test_uint32{fn: mul_uint32_13, fnname: "mul_uint32_13", in: 81, want: 1053}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 3, want: 57}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 3, want: 57}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 5, want: 95}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 5, want: 95}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 7, want: 133}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 7, want: 133}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 9, want: 171}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 9, want: 171}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 10, want: 190}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 10, want: 190}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 11, want: 209}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 11, want: 209}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 13, want: 247}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 13, want: 247}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 19, want: 361}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 19, want: 361}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 21, want: 399}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 21, want: 399}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 25, want: 475}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 25, want: 475}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 27, want: 513}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 27, want: 513}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 37, want: 703}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 37, want: 703}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 41, want: 779}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 41, want: 779}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 45, want: 855}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 45, want: 855}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 73, want: 1387}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 73, want: 1387}, + test_uint32{fn: mul_19_uint32, fnname: "mul_19_uint32", in: 81, want: 1539}, + test_uint32{fn: mul_uint32_19, fnname: "mul_uint32_19", in: 81, want: 1539}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 3, want: 63}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 3, want: 63}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 5, want: 105}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 5, want: 105}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 7, want: 147}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 7, want: 147}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 9, want: 189}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 9, want: 189}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 10, want: 210}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 10, want: 210}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 11, want: 231}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 11, want: 231}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 13, want: 273}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 13, want: 273}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 19, want: 399}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 19, want: 399}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 21, want: 441}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 21, want: 441}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 25, want: 525}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 25, want: 525}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 27, want: 567}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 27, want: 567}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 37, want: 777}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 37, want: 777}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 41, want: 861}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 41, want: 861}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 45, want: 945}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 45, want: 945}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 73, want: 1533}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 73, want: 1533}, + test_uint32{fn: mul_21_uint32, fnname: "mul_21_uint32", in: 81, want: 1701}, + test_uint32{fn: mul_uint32_21, fnname: "mul_uint32_21", in: 81, want: 1701}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 3, want: 75}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 3, want: 75}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 5, want: 125}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 5, want: 125}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 7, want: 175}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 7, want: 175}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 9, want: 225}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 9, want: 225}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 10, want: 250}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 10, want: 250}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 11, want: 275}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 11, want: 275}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 13, want: 325}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 13, want: 325}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 19, want: 475}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 19, want: 475}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 21, want: 525}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 21, want: 525}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 25, want: 625}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 25, want: 625}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 27, want: 675}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 27, want: 675}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 37, want: 925}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 37, want: 925}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 41, want: 1025}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 41, want: 1025}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 45, want: 1125}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 45, want: 1125}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 73, want: 1825}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 73, want: 1825}, + test_uint32{fn: mul_25_uint32, fnname: "mul_25_uint32", in: 81, want: 2025}, + test_uint32{fn: mul_uint32_25, fnname: "mul_uint32_25", in: 81, want: 2025}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 3, want: 81}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 3, want: 81}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 5, want: 135}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 5, want: 135}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 7, want: 189}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 7, want: 189}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 9, want: 243}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 9, want: 243}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 10, want: 270}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 10, want: 270}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 11, want: 297}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 11, want: 297}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 13, want: 351}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 13, want: 351}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 19, want: 513}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 19, want: 513}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 21, want: 567}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 21, want: 567}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 25, want: 675}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 25, want: 675}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 27, want: 729}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 27, want: 729}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 37, want: 999}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 37, want: 999}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 41, want: 1107}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 41, want: 1107}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 45, want: 1215}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 45, want: 1215}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 73, want: 1971}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 73, want: 1971}, + test_uint32{fn: mul_27_uint32, fnname: "mul_27_uint32", in: 81, want: 2187}, + test_uint32{fn: mul_uint32_27, fnname: "mul_uint32_27", in: 81, want: 2187}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 3, want: 111}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 3, want: 111}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 5, want: 185}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 5, want: 185}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 7, want: 259}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 7, want: 259}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 9, want: 333}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 9, want: 333}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 10, want: 370}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 10, want: 370}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 11, want: 407}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 11, want: 407}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 13, want: 481}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 13, want: 481}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 19, want: 703}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 19, want: 703}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 21, want: 777}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 21, want: 777}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 25, want: 925}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 25, want: 925}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 27, want: 999}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 27, want: 999}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 37, want: 1369}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 37, want: 1369}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 41, want: 1517}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 41, want: 1517}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 45, want: 1665}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 45, want: 1665}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 73, want: 2701}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 73, want: 2701}, + test_uint32{fn: mul_37_uint32, fnname: "mul_37_uint32", in: 81, want: 2997}, + test_uint32{fn: mul_uint32_37, fnname: "mul_uint32_37", in: 81, want: 2997}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 3, want: 123}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 3, want: 123}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 5, want: 205}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 5, want: 205}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 7, want: 287}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 7, want: 287}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 9, want: 369}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 9, want: 369}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 10, want: 410}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 10, want: 410}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 11, want: 451}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 11, want: 451}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 13, want: 533}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 13, want: 533}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 19, want: 779}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 19, want: 779}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 21, want: 861}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 21, want: 861}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 25, want: 1025}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 25, want: 1025}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 27, want: 1107}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 27, want: 1107}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 37, want: 1517}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 37, want: 1517}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 41, want: 1681}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 41, want: 1681}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 45, want: 1845}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 45, want: 1845}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 73, want: 2993}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 73, want: 2993}, + test_uint32{fn: mul_41_uint32, fnname: "mul_41_uint32", in: 81, want: 3321}, + test_uint32{fn: mul_uint32_41, fnname: "mul_uint32_41", in: 81, want: 3321}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 3, want: 135}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 3, want: 135}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 5, want: 225}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 5, want: 225}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 7, want: 315}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 7, want: 315}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 9, want: 405}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 9, want: 405}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 10, want: 450}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 10, want: 450}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 11, want: 495}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 11, want: 495}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 13, want: 585}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 13, want: 585}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 19, want: 855}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 19, want: 855}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 21, want: 945}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 21, want: 945}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 25, want: 1125}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 25, want: 1125}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 27, want: 1215}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 27, want: 1215}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 37, want: 1665}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 37, want: 1665}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 41, want: 1845}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 41, want: 1845}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 45, want: 2025}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 45, want: 2025}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 73, want: 3285}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 73, want: 3285}, + test_uint32{fn: mul_45_uint32, fnname: "mul_45_uint32", in: 81, want: 3645}, + test_uint32{fn: mul_uint32_45, fnname: "mul_uint32_45", in: 81, want: 3645}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 3, want: 219}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 3, want: 219}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 5, want: 365}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 5, want: 365}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 7, want: 511}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 7, want: 511}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 9, want: 657}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 9, want: 657}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 10, want: 730}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 10, want: 730}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 11, want: 803}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 11, want: 803}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 13, want: 949}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 13, want: 949}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 19, want: 1387}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 19, want: 1387}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 21, want: 1533}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 21, want: 1533}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 25, want: 1825}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 25, want: 1825}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 27, want: 1971}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 27, want: 1971}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 37, want: 2701}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 37, want: 2701}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 41, want: 2993}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 41, want: 2993}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 45, want: 3285}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 45, want: 3285}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 73, want: 5329}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 73, want: 5329}, + test_uint32{fn: mul_73_uint32, fnname: "mul_73_uint32", in: 81, want: 5913}, + test_uint32{fn: mul_uint32_73, fnname: "mul_uint32_73", in: 81, want: 5913}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 3, want: 243}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 3, want: 243}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 5, want: 405}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 5, want: 405}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 7, want: 567}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 7, want: 567}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 9, want: 729}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 9, want: 729}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 10, want: 810}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 10, want: 810}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 11, want: 891}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 11, want: 891}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 13, want: 1053}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 13, want: 1053}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 19, want: 1539}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 19, want: 1539}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 21, want: 1701}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 21, want: 1701}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 25, want: 2025}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 25, want: 2025}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 27, want: 2187}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 27, want: 2187}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 37, want: 2997}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 37, want: 2997}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 41, want: 3321}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 41, want: 3321}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 45, want: 3645}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 45, want: 3645}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 73, want: 5913}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 73, want: 5913}, + test_uint32{fn: mul_81_uint32, fnname: "mul_81_uint32", in: 81, want: 6561}, + test_uint32{fn: mul_uint32_81, fnname: "mul_uint32_81", in: 81, want: 6561}} + type test_int32 struct { fn func(int32) int32 fnname string @@ -4690,6 +6886,738 @@ var tests_int32 = []test_int32{ test_int32{fn: xor_2147483647_int32, fnname: "xor_2147483647_int32", in: 2147483647, want: 0}, test_int32{fn: xor_int32_2147483647, fnname: "xor_int32_2147483647", in: 2147483647, want: 0}} +type test_int32mul struct { + fn func(int32) int32 + fnname string + in int32 + want int32 +} + +var tests_int32mul = []test_int32{ + + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: -9, want: 81}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: -9, want: 81}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: -5, want: 45}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: -5, want: 45}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: -3, want: 27}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: -3, want: 27}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 3, want: -27}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 3, want: -27}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 5, want: -45}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 5, want: -45}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 7, want: -63}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 7, want: -63}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 9, want: -81}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 9, want: -81}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 10, want: -90}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 10, want: -90}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 11, want: -99}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 11, want: -99}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 13, want: -117}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 13, want: -117}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 19, want: -171}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 19, want: -171}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 21, want: -189}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 21, want: -189}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 25, want: -225}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 25, want: -225}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 27, want: -243}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 27, want: -243}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 37, want: -333}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 37, want: -333}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 41, want: -369}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 41, want: -369}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 45, want: -405}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 45, want: -405}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 73, want: -657}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 73, want: -657}, + test_int32{fn: mul_Neg9_int32, fnname: "mul_Neg9_int32", in: 81, want: -729}, + test_int32{fn: mul_int32_Neg9, fnname: "mul_int32_Neg9", in: 81, want: -729}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: -9, want: 45}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: -9, want: 45}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: -5, want: 25}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: -5, want: 25}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: -3, want: 15}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: -3, want: 15}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 3, want: -15}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 3, want: -15}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 5, want: -25}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 5, want: -25}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 7, want: -35}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 7, want: -35}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 9, want: -45}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 9, want: -45}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 10, want: -50}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 10, want: -50}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 11, want: -55}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 11, want: -55}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 13, want: -65}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 13, want: -65}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 19, want: -95}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 19, want: -95}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 21, want: -105}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 21, want: -105}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 25, want: -125}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 25, want: -125}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 27, want: -135}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 27, want: -135}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 37, want: -185}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 37, want: -185}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 41, want: -205}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 41, want: -205}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 45, want: -225}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 45, want: -225}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 73, want: -365}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 73, want: -365}, + test_int32{fn: mul_Neg5_int32, fnname: "mul_Neg5_int32", in: 81, want: -405}, + test_int32{fn: mul_int32_Neg5, fnname: "mul_int32_Neg5", in: 81, want: -405}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: -9, want: 27}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: -9, want: 27}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: -5, want: 15}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: -5, want: 15}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: -3, want: 9}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: -3, want: 9}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 3, want: -9}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 3, want: -9}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 5, want: -15}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 5, want: -15}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 7, want: -21}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 7, want: -21}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 9, want: -27}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 9, want: -27}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 10, want: -30}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 10, want: -30}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 11, want: -33}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 11, want: -33}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 13, want: -39}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 13, want: -39}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 19, want: -57}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 19, want: -57}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 21, want: -63}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 21, want: -63}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 25, want: -75}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 25, want: -75}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 27, want: -81}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 27, want: -81}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 37, want: -111}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 37, want: -111}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 41, want: -123}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 41, want: -123}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 45, want: -135}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 45, want: -135}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 73, want: -219}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 73, want: -219}, + test_int32{fn: mul_Neg3_int32, fnname: "mul_Neg3_int32", in: 81, want: -243}, + test_int32{fn: mul_int32_Neg3, fnname: "mul_int32_Neg3", in: 81, want: -243}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: -9, want: -27}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: -9, want: -27}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: -5, want: -15}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: -5, want: -15}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: -3, want: -9}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: -3, want: -9}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 3, want: 9}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 3, want: 9}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 5, want: 15}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 5, want: 15}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 7, want: 21}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 7, want: 21}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 9, want: 27}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 9, want: 27}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 10, want: 30}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 10, want: 30}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 11, want: 33}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 11, want: 33}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 13, want: 39}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 13, want: 39}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 19, want: 57}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 19, want: 57}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 21, want: 63}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 21, want: 63}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 25, want: 75}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 25, want: 75}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 27, want: 81}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 27, want: 81}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 37, want: 111}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 37, want: 111}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 41, want: 123}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 41, want: 123}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 45, want: 135}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 45, want: 135}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 73, want: 219}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 73, want: 219}, + test_int32{fn: mul_3_int32, fnname: "mul_3_int32", in: 81, want: 243}, + test_int32{fn: mul_int32_3, fnname: "mul_int32_3", in: 81, want: 243}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: -9, want: -45}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: -9, want: -45}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: -5, want: -25}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: -5, want: -25}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: -3, want: -15}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: -3, want: -15}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 3, want: 15}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 3, want: 15}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 5, want: 25}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 5, want: 25}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 7, want: 35}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 7, want: 35}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 9, want: 45}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 9, want: 45}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 10, want: 50}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 10, want: 50}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 11, want: 55}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 11, want: 55}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 13, want: 65}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 13, want: 65}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 19, want: 95}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 19, want: 95}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 21, want: 105}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 21, want: 105}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 25, want: 125}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 25, want: 125}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 27, want: 135}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 27, want: 135}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 37, want: 185}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 37, want: 185}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 41, want: 205}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 41, want: 205}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 45, want: 225}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 45, want: 225}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 73, want: 365}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 73, want: 365}, + test_int32{fn: mul_5_int32, fnname: "mul_5_int32", in: 81, want: 405}, + test_int32{fn: mul_int32_5, fnname: "mul_int32_5", in: 81, want: 405}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: -9, want: -63}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: -9, want: -63}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: -5, want: -35}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: -5, want: -35}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: -3, want: -21}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: -3, want: -21}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 3, want: 21}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 3, want: 21}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 5, want: 35}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 5, want: 35}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 7, want: 49}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 7, want: 49}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 9, want: 63}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 9, want: 63}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 10, want: 70}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 10, want: 70}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 11, want: 77}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 11, want: 77}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 13, want: 91}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 13, want: 91}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 19, want: 133}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 19, want: 133}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 21, want: 147}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 21, want: 147}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 25, want: 175}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 25, want: 175}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 27, want: 189}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 27, want: 189}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 37, want: 259}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 37, want: 259}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 41, want: 287}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 41, want: 287}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 45, want: 315}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 45, want: 315}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 73, want: 511}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 73, want: 511}, + test_int32{fn: mul_7_int32, fnname: "mul_7_int32", in: 81, want: 567}, + test_int32{fn: mul_int32_7, fnname: "mul_int32_7", in: 81, want: 567}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: -9, want: -81}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: -9, want: -81}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: -5, want: -45}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: -5, want: -45}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: -3, want: -27}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: -3, want: -27}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 3, want: 27}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 3, want: 27}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 5, want: 45}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 5, want: 45}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 7, want: 63}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 7, want: 63}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 9, want: 81}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 9, want: 81}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 10, want: 90}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 10, want: 90}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 11, want: 99}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 11, want: 99}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 13, want: 117}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 13, want: 117}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 19, want: 171}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 19, want: 171}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 21, want: 189}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 21, want: 189}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 25, want: 225}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 25, want: 225}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 27, want: 243}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 27, want: 243}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 37, want: 333}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 37, want: 333}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 41, want: 369}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 41, want: 369}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 45, want: 405}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 45, want: 405}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 73, want: 657}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 73, want: 657}, + test_int32{fn: mul_9_int32, fnname: "mul_9_int32", in: 81, want: 729}, + test_int32{fn: mul_int32_9, fnname: "mul_int32_9", in: 81, want: 729}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: -9, want: -90}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: -9, want: -90}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: -5, want: -50}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: -5, want: -50}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: -3, want: -30}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: -3, want: -30}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 3, want: 30}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 3, want: 30}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 5, want: 50}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 5, want: 50}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 7, want: 70}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 7, want: 70}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 9, want: 90}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 9, want: 90}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 10, want: 100}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 10, want: 100}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 11, want: 110}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 11, want: 110}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 13, want: 130}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 13, want: 130}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 19, want: 190}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 19, want: 190}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 21, want: 210}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 21, want: 210}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 25, want: 250}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 25, want: 250}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 27, want: 270}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 27, want: 270}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 37, want: 370}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 37, want: 370}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 41, want: 410}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 41, want: 410}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 45, want: 450}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 45, want: 450}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 73, want: 730}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 73, want: 730}, + test_int32{fn: mul_10_int32, fnname: "mul_10_int32", in: 81, want: 810}, + test_int32{fn: mul_int32_10, fnname: "mul_int32_10", in: 81, want: 810}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: -9, want: -99}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: -9, want: -99}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: -5, want: -55}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: -5, want: -55}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: -3, want: -33}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: -3, want: -33}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 3, want: 33}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 3, want: 33}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 5, want: 55}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 5, want: 55}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 7, want: 77}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 7, want: 77}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 9, want: 99}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 9, want: 99}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 10, want: 110}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 10, want: 110}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 11, want: 121}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 11, want: 121}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 13, want: 143}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 13, want: 143}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 19, want: 209}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 19, want: 209}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 21, want: 231}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 21, want: 231}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 25, want: 275}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 25, want: 275}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 27, want: 297}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 27, want: 297}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 37, want: 407}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 37, want: 407}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 41, want: 451}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 41, want: 451}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 45, want: 495}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 45, want: 495}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 73, want: 803}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 73, want: 803}, + test_int32{fn: mul_11_int32, fnname: "mul_11_int32", in: 81, want: 891}, + test_int32{fn: mul_int32_11, fnname: "mul_int32_11", in: 81, want: 891}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: -9, want: -117}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: -9, want: -117}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: -5, want: -65}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: -5, want: -65}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: -3, want: -39}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: -3, want: -39}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 3, want: 39}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 3, want: 39}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 5, want: 65}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 5, want: 65}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 7, want: 91}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 7, want: 91}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 9, want: 117}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 9, want: 117}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 10, want: 130}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 10, want: 130}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 11, want: 143}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 11, want: 143}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 13, want: 169}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 13, want: 169}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 19, want: 247}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 19, want: 247}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 21, want: 273}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 21, want: 273}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 25, want: 325}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 25, want: 325}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 27, want: 351}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 27, want: 351}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 37, want: 481}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 37, want: 481}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 41, want: 533}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 41, want: 533}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 45, want: 585}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 45, want: 585}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 73, want: 949}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 73, want: 949}, + test_int32{fn: mul_13_int32, fnname: "mul_13_int32", in: 81, want: 1053}, + test_int32{fn: mul_int32_13, fnname: "mul_int32_13", in: 81, want: 1053}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: -9, want: -171}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: -9, want: -171}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: -5, want: -95}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: -5, want: -95}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: -3, want: -57}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: -3, want: -57}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 3, want: 57}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 3, want: 57}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 5, want: 95}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 5, want: 95}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 7, want: 133}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 7, want: 133}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 9, want: 171}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 9, want: 171}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 10, want: 190}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 10, want: 190}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 11, want: 209}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 11, want: 209}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 13, want: 247}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 13, want: 247}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 19, want: 361}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 19, want: 361}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 21, want: 399}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 21, want: 399}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 25, want: 475}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 25, want: 475}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 27, want: 513}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 27, want: 513}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 37, want: 703}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 37, want: 703}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 41, want: 779}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 41, want: 779}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 45, want: 855}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 45, want: 855}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 73, want: 1387}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 73, want: 1387}, + test_int32{fn: mul_19_int32, fnname: "mul_19_int32", in: 81, want: 1539}, + test_int32{fn: mul_int32_19, fnname: "mul_int32_19", in: 81, want: 1539}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: -9, want: -189}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: -9, want: -189}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: -5, want: -105}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: -5, want: -105}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: -3, want: -63}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: -3, want: -63}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 3, want: 63}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 3, want: 63}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 5, want: 105}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 5, want: 105}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 7, want: 147}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 7, want: 147}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 9, want: 189}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 9, want: 189}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 10, want: 210}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 10, want: 210}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 11, want: 231}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 11, want: 231}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 13, want: 273}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 13, want: 273}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 19, want: 399}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 19, want: 399}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 21, want: 441}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 21, want: 441}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 25, want: 525}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 25, want: 525}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 27, want: 567}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 27, want: 567}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 37, want: 777}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 37, want: 777}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 41, want: 861}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 41, want: 861}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 45, want: 945}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 45, want: 945}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 73, want: 1533}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 73, want: 1533}, + test_int32{fn: mul_21_int32, fnname: "mul_21_int32", in: 81, want: 1701}, + test_int32{fn: mul_int32_21, fnname: "mul_int32_21", in: 81, want: 1701}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: -9, want: -225}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: -9, want: -225}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: -5, want: -125}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: -5, want: -125}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: -3, want: -75}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: -3, want: -75}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 3, want: 75}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 3, want: 75}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 5, want: 125}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 5, want: 125}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 7, want: 175}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 7, want: 175}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 9, want: 225}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 9, want: 225}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 10, want: 250}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 10, want: 250}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 11, want: 275}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 11, want: 275}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 13, want: 325}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 13, want: 325}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 19, want: 475}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 19, want: 475}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 21, want: 525}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 21, want: 525}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 25, want: 625}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 25, want: 625}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 27, want: 675}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 27, want: 675}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 37, want: 925}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 37, want: 925}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 41, want: 1025}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 41, want: 1025}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 45, want: 1125}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 45, want: 1125}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 73, want: 1825}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 73, want: 1825}, + test_int32{fn: mul_25_int32, fnname: "mul_25_int32", in: 81, want: 2025}, + test_int32{fn: mul_int32_25, fnname: "mul_int32_25", in: 81, want: 2025}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: -9, want: -243}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: -9, want: -243}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: -5, want: -135}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: -5, want: -135}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: -3, want: -81}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: -3, want: -81}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 3, want: 81}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 3, want: 81}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 5, want: 135}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 5, want: 135}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 7, want: 189}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 7, want: 189}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 9, want: 243}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 9, want: 243}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 10, want: 270}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 10, want: 270}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 11, want: 297}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 11, want: 297}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 13, want: 351}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 13, want: 351}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 19, want: 513}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 19, want: 513}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 21, want: 567}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 21, want: 567}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 25, want: 675}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 25, want: 675}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 27, want: 729}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 27, want: 729}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 37, want: 999}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 37, want: 999}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 41, want: 1107}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 41, want: 1107}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 45, want: 1215}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 45, want: 1215}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 73, want: 1971}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 73, want: 1971}, + test_int32{fn: mul_27_int32, fnname: "mul_27_int32", in: 81, want: 2187}, + test_int32{fn: mul_int32_27, fnname: "mul_int32_27", in: 81, want: 2187}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: -9, want: -333}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: -9, want: -333}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: -5, want: -185}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: -5, want: -185}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: -3, want: -111}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: -3, want: -111}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 3, want: 111}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 3, want: 111}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 5, want: 185}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 5, want: 185}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 7, want: 259}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 7, want: 259}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 9, want: 333}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 9, want: 333}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 10, want: 370}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 10, want: 370}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 11, want: 407}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 11, want: 407}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 13, want: 481}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 13, want: 481}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 19, want: 703}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 19, want: 703}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 21, want: 777}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 21, want: 777}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 25, want: 925}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 25, want: 925}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 27, want: 999}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 27, want: 999}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 37, want: 1369}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 37, want: 1369}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 41, want: 1517}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 41, want: 1517}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 45, want: 1665}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 45, want: 1665}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 73, want: 2701}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 73, want: 2701}, + test_int32{fn: mul_37_int32, fnname: "mul_37_int32", in: 81, want: 2997}, + test_int32{fn: mul_int32_37, fnname: "mul_int32_37", in: 81, want: 2997}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: -9, want: -369}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: -9, want: -369}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: -5, want: -205}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: -5, want: -205}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: -3, want: -123}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: -3, want: -123}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 3, want: 123}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 3, want: 123}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 5, want: 205}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 5, want: 205}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 7, want: 287}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 7, want: 287}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 9, want: 369}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 9, want: 369}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 10, want: 410}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 10, want: 410}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 11, want: 451}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 11, want: 451}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 13, want: 533}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 13, want: 533}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 19, want: 779}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 19, want: 779}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 21, want: 861}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 21, want: 861}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 25, want: 1025}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 25, want: 1025}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 27, want: 1107}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 27, want: 1107}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 37, want: 1517}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 37, want: 1517}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 41, want: 1681}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 41, want: 1681}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 45, want: 1845}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 45, want: 1845}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 73, want: 2993}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 73, want: 2993}, + test_int32{fn: mul_41_int32, fnname: "mul_41_int32", in: 81, want: 3321}, + test_int32{fn: mul_int32_41, fnname: "mul_int32_41", in: 81, want: 3321}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: -9, want: -405}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: -9, want: -405}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: -5, want: -225}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: -5, want: -225}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: -3, want: -135}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: -3, want: -135}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 3, want: 135}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 3, want: 135}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 5, want: 225}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 5, want: 225}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 7, want: 315}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 7, want: 315}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 9, want: 405}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 9, want: 405}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 10, want: 450}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 10, want: 450}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 11, want: 495}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 11, want: 495}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 13, want: 585}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 13, want: 585}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 19, want: 855}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 19, want: 855}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 21, want: 945}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 21, want: 945}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 25, want: 1125}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 25, want: 1125}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 27, want: 1215}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 27, want: 1215}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 37, want: 1665}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 37, want: 1665}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 41, want: 1845}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 41, want: 1845}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 45, want: 2025}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 45, want: 2025}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 73, want: 3285}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 73, want: 3285}, + test_int32{fn: mul_45_int32, fnname: "mul_45_int32", in: 81, want: 3645}, + test_int32{fn: mul_int32_45, fnname: "mul_int32_45", in: 81, want: 3645}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: -9, want: -657}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: -9, want: -657}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: -5, want: -365}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: -5, want: -365}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: -3, want: -219}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: -3, want: -219}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 3, want: 219}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 3, want: 219}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 5, want: 365}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 5, want: 365}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 7, want: 511}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 7, want: 511}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 9, want: 657}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 9, want: 657}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 10, want: 730}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 10, want: 730}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 11, want: 803}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 11, want: 803}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 13, want: 949}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 13, want: 949}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 19, want: 1387}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 19, want: 1387}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 21, want: 1533}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 21, want: 1533}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 25, want: 1825}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 25, want: 1825}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 27, want: 1971}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 27, want: 1971}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 37, want: 2701}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 37, want: 2701}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 41, want: 2993}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 41, want: 2993}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 45, want: 3285}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 45, want: 3285}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 73, want: 5329}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 73, want: 5329}, + test_int32{fn: mul_73_int32, fnname: "mul_73_int32", in: 81, want: 5913}, + test_int32{fn: mul_int32_73, fnname: "mul_int32_73", in: 81, want: 5913}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: -9, want: -729}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: -9, want: -729}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: -5, want: -405}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: -5, want: -405}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: -3, want: -243}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: -3, want: -243}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 3, want: 243}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 3, want: 243}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 5, want: 405}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 5, want: 405}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 7, want: 567}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 7, want: 567}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 9, want: 729}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 9, want: 729}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 10, want: 810}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 10, want: 810}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 11, want: 891}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 11, want: 891}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 13, want: 1053}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 13, want: 1053}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 19, want: 1539}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 19, want: 1539}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 21, want: 1701}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 21, want: 1701}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 25, want: 2025}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 25, want: 2025}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 27, want: 2187}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 27, want: 2187}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 37, want: 2997}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 37, want: 2997}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 41, want: 3321}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 41, want: 3321}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 45, want: 3645}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 45, want: 3645}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 73, want: 5913}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 73, want: 5913}, + test_int32{fn: mul_81_int32, fnname: "mul_81_int32", in: 81, want: 6561}, + test_int32{fn: mul_int32_81, fnname: "mul_int32_81", in: 81, want: 6561}} + type test_uint16 struct { fn func(uint16) uint16 fnname string @@ -6587,24 +9515,48 @@ func main() { failed = true } } + for _, test := range tests_uint64mul { + if got := test.fn(test.in); got != test.want { + fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) + failed = true + } + } for _, test := range tests_int64 { if got := test.fn(test.in); got != test.want { fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) failed = true } } + for _, test := range tests_int64mul { + if got := test.fn(test.in); got != test.want { + fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) + failed = true + } + } for _, test := range tests_uint32 { if got := test.fn(test.in); got != test.want { fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) failed = true } } + for _, test := range tests_uint32mul { + if got := test.fn(test.in); got != test.want { + fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) + failed = true + } + } for _, test := range tests_int32 { if got := test.fn(test.in); got != test.want { fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) failed = true } } + for _, test := range tests_int32mul { + if got := test.fn(test.in); got != test.want { + fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) + failed = true + } + } for _, test := range tests_uint16 { if got := test.fn(test.in); got != test.want { fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) diff --git a/src/cmd/compile/internal/gc/testdata/gen/arithConstGen.go b/src/cmd/compile/internal/gc/testdata/gen/arithConstGen.go index 9739a594c9..7fd5c31a13 100644 --- a/src/cmd/compile/internal/gc/testdata/gen/arithConstGen.go +++ b/src/cmd/compile/internal/gc/testdata/gen/arithConstGen.go @@ -24,20 +24,27 @@ type op struct { name, symbol string } type szD struct { - name string - sn string - u []uint64 - i []int64 + name string + sn string + u []uint64 + i []int64 + oponly string } var szs = []szD{ {name: "uint64", sn: "64", u: []uint64{0, 1, 4294967296, 0x8000000000000000, 0xffffFFFFffffFFFF}}, + {name: "uint64", sn: "64", u: []uint64{3, 5, 7, 9, 10, 11, 13, 19, 21, 25, 27, 37, 41, 45, 73, 81}, oponly: "mul"}, + {name: "int64", sn: "64", i: []int64{-0x8000000000000000, -0x7FFFFFFFFFFFFFFF, -4294967296, -1, 0, 1, 4294967296, 0x7FFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFF}}, + {name: "int64", sn: "64", i: []int64{-9, -5, -3, 3, 5, 7, 9, 10, 11, 13, 19, 21, 25, 27, 37, 41, 45, 73, 81}, oponly: "mul"}, {name: "uint32", sn: "32", u: []uint64{0, 1, 4294967295}}, + {name: "uint32", sn: "32", u: []uint64{3, 5, 7, 9, 10, 11, 13, 19, 21, 25, 27, 37, 41, 45, 73, 81}, oponly: "mul"}, + {name: "int32", sn: "32", i: []int64{-0x80000000, -0x7FFFFFFF, -1, 0, 1, 0x7FFFFFFF}}, + {name: "int32", sn: "32", i: []int64{-9, -5, -3, 3, 5, 7, 9, 10, 11, 13, 19, 21, 25, 27, 37, 41, 45, 73, 81}, oponly: "mul"}, {name: "uint16", sn: "16", u: []uint64{0, 1, 65535}}, {name: "int16", sn: "16", i: []int64{-32768, -32767, -1, 0, 1, 32766, 32767}}, @@ -162,6 +169,9 @@ func {{.Name}}_{{.FNumber}}_{{.Type_}}(a {{.Type_}}) {{.Type_}} { return {{.Numb for _, s := range szs { for _, o := range ops { + if s.oponly != "" && s.oponly != o.name { + continue + } fd := fncData{o.name, s.name, o.symbol, "", ""} // unsigned test cases @@ -218,17 +228,20 @@ func {{.Name}}_{{.FNumber}}_{{.Type_}}(a {{.Type_}}) {{.Type_}} { return {{.Numb } for _, s := range szs { fmt.Fprintf(w, ` -type test_%[1]s struct { +type test_%[1]s%[2]s struct { fn func (%[1]s) %[1]s fnname string in %[1]s want %[1]s } -`, s.name) - fmt.Fprintf(w, "var tests_%[1]s =[]test_%[1]s {\n\n", s.name) +`, s.name, s.oponly) + fmt.Fprintf(w, "var tests_%[1]s%[2]s =[]test_%[1]s {\n\n", s.name, s.oponly) if len(s.u) > 0 { for _, o := range ops { + if s.oponly != "" && s.oponly != o.name { + continue + } fd := cfncData{s.name, o.name, s.name, o.symbol, "", "", "", ""} for _, i := range s.u { fd.Number = fmt.Sprintf("%d", i) @@ -262,6 +275,9 @@ type test_%[1]s struct { // signed if len(s.i) > 0 { for _, o := range ops { + if s.oponly != "" && s.oponly != o.name { + continue + } // don't generate tests for shifts by signed integers if o.name == "lsh" || o.name == "rsh" { continue @@ -303,7 +319,7 @@ func main() { `) for _, s := range szs { - fmt.Fprintf(w, `for _, test := range tests_%s {`, s.name) + fmt.Fprintf(w, `for _, test := range tests_%s%s {`, s.name, s.oponly) // Use WriteString here to avoid a vet warning about formatting directives. w.WriteString(`if got := test.fn(test.in); got != test.want { fmt.Printf("%s(%d) = %d, want %d\n", test.fnname, test.in, got, test.want) diff --git a/src/cmd/compile/internal/ssa/gen/386.rules b/src/cmd/compile/internal/ssa/gen/386.rules index ccf8dd0627..35db2e216d 100644 --- a/src/cmd/compile/internal/ssa/gen/386.rules +++ b/src/cmd/compile/internal/ssa/gen/386.rules @@ -495,24 +495,34 @@ // strength reduction // Assumes that the following costs from https://gmplib.org/~tege/x86-timing.pdf: -// 1 - addq, shlq, leaq, negq -// 3 - imulq +// 1 - addl, shll, leal, negl, subl +// 3 - imull // This limits the rewrites to two instructions. -// TODO: 27, 81 +// Note that negl always operates in-place, +// which can require a register-register move +// to preserve the original value, +// so it must be used with care. +(MULLconst [-9] x) -> (NEGL (LEAL8 x x)) +(MULLconst [-5] x) -> (NEGL (LEAL4 x x)) +(MULLconst [-3] x) -> (NEGL (LEAL2 x x)) (MULLconst [-1] x) -> (NEGL x) (MULLconst [0] _) -> (MOVLconst [0]) (MULLconst [1] x) -> x (MULLconst [3] x) -> (LEAL2 x x) (MULLconst [5] x) -> (LEAL4 x x) -(MULLconst [7] x) -> (LEAL8 (NEGL x) x) +(MULLconst [7] x) -> (LEAL2 x (LEAL2 x x)) (MULLconst [9] x) -> (LEAL8 x x) (MULLconst [11] x) -> (LEAL2 x (LEAL4 x x)) (MULLconst [13] x) -> (LEAL4 x (LEAL2 x x)) +(MULLconst [19] x) -> (LEAL2 x (LEAL8 x x)) (MULLconst [21] x) -> (LEAL4 x (LEAL4 x x)) (MULLconst [25] x) -> (LEAL8 x (LEAL2 x x)) +(MULLconst [27] x) -> (LEAL8 (LEAL2 x x) (LEAL2 x x)) (MULLconst [37] x) -> (LEAL4 x (LEAL8 x x)) (MULLconst [41] x) -> (LEAL8 x (LEAL4 x x)) +(MULLconst [45] x) -> (LEAL8 (LEAL4 x x) (LEAL4 x x)) (MULLconst [73] x) -> (LEAL8 x (LEAL8 x x)) +(MULLconst [81] x) -> (LEAL8 (LEAL8 x x) (LEAL8 x x)) (MULLconst [c] x) && isPowerOfTwo(c+1) && c >= 15 -> (SUBL (SHLLconst [log2(c+1)] x) x) (MULLconst [c] x) && isPowerOfTwo(c-1) && c >= 17 -> (LEAL1 (SHLLconst [log2(c-1)] x) x) diff --git a/src/cmd/compile/internal/ssa/gen/AMD64.rules b/src/cmd/compile/internal/ssa/gen/AMD64.rules index f0315e8c57..4006c5cd7e 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64.rules +++ b/src/cmd/compile/internal/ssa/gen/AMD64.rules @@ -954,24 +954,34 @@ // strength reduction // Assumes that the following costs from https://gmplib.org/~tege/x86-timing.pdf: -// 1 - addq, shlq, leaq, negq +// 1 - addq, shlq, leaq, negq, subq // 3 - imulq // This limits the rewrites to two instructions. -// TODO: 27, 81 +// Note that negq always operates in-place, +// which can require a register-register move +// to preserve the original value, +// so it must be used with care. +(MULQconst [-9] x) -> (NEGQ (LEAQ8 x x)) +(MULQconst [-5] x) -> (NEGQ (LEAQ4 x x)) +(MULQconst [-3] x) -> (NEGQ (LEAQ2 x x)) (MULQconst [-1] x) -> (NEGQ x) (MULQconst [0] _) -> (MOVQconst [0]) (MULQconst [1] x) -> x (MULQconst [3] x) -> (LEAQ2 x x) (MULQconst [5] x) -> (LEAQ4 x x) -(MULQconst [7] x) -> (LEAQ8 (NEGQ x) x) +(MULQconst [7] x) -> (LEAQ2 x (LEAQ2 x x)) (MULQconst [9] x) -> (LEAQ8 x x) (MULQconst [11] x) -> (LEAQ2 x (LEAQ4 x x)) (MULQconst [13] x) -> (LEAQ4 x (LEAQ2 x x)) +(MULQconst [19] x) -> (LEAQ2 x (LEAQ8 x x)) (MULQconst [21] x) -> (LEAQ4 x (LEAQ4 x x)) (MULQconst [25] x) -> (LEAQ8 x (LEAQ2 x x)) +(MULQconst [27] x) -> (LEAQ8 (LEAQ2 x x) (LEAQ2 x x)) (MULQconst [37] x) -> (LEAQ4 x (LEAQ8 x x)) (MULQconst [41] x) -> (LEAQ8 x (LEAQ4 x x)) +(MULQconst [45] x) -> (LEAQ8 (LEAQ4 x x) (LEAQ4 x x)) (MULQconst [73] x) -> (LEAQ8 x (LEAQ8 x x)) +(MULQconst [81] x) -> (LEAQ8 (LEAQ8 x x) (LEAQ8 x x)) (MULQconst [c] x) && isPowerOfTwo(c+1) && c >= 15 -> (SUBQ (SHLQconst [log2(c+1)] x) x) (MULQconst [c] x) && isPowerOfTwo(c-1) && c >= 17 -> (LEAQ1 (SHLQconst [log2(c-1)] x) x) diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go index 039c2ffbeb..a1ea307121 100644 --- a/src/cmd/compile/internal/ssa/rewrite386.go +++ b/src/cmd/compile/internal/ssa/rewrite386.go @@ -140,7 +140,7 @@ func rewriteValue386(v *Value) bool { case Op386MULL: return rewriteValue386_Op386MULL_0(v) case Op386MULLconst: - return rewriteValue386_Op386MULLconst_0(v) || rewriteValue386_Op386MULLconst_10(v) || rewriteValue386_Op386MULLconst_20(v) + return rewriteValue386_Op386MULLconst_0(v) || rewriteValue386_Op386MULLconst_10(v) || rewriteValue386_Op386MULLconst_20(v) || rewriteValue386_Op386MULLconst_30(v) case Op386NEGL: return rewriteValue386_Op386NEGL_0(v) case Op386NOTL: @@ -8339,6 +8339,51 @@ func rewriteValue386_Op386MULLconst_0(v *Value) bool { v.AddArg(x) return true } + // match: (MULLconst [-9] x) + // cond: + // result: (NEGL (LEAL8 x x)) + for { + if v.AuxInt != -9 { + break + } + x := v.Args[0] + v.reset(Op386NEGL) + v0 := b.NewValue0(v.Pos, Op386LEAL8, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } + // match: (MULLconst [-5] x) + // cond: + // result: (NEGL (LEAL4 x x)) + for { + if v.AuxInt != -5 { + break + } + x := v.Args[0] + v.reset(Op386NEGL) + v0 := b.NewValue0(v.Pos, Op386LEAL4, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } + // match: (MULLconst [-3] x) + // cond: + // result: (NEGL (LEAL2 x x)) + for { + if v.AuxInt != -3 { + break + } + x := v.Args[0] + v.reset(Op386NEGL) + v0 := b.NewValue0(v.Pos, Op386LEAL2, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } // match: (MULLconst [-1] x) // cond: // result: (NEGL x) @@ -8403,19 +8448,25 @@ func rewriteValue386_Op386MULLconst_0(v *Value) bool { } // match: (MULLconst [7] x) // cond: - // result: (LEAL8 (NEGL x) x) + // result: (LEAL2 x (LEAL2 x x)) for { if v.AuxInt != 7 { break } x := v.Args[0] - v.reset(Op386LEAL8) - v0 := b.NewValue0(v.Pos, Op386NEGL, v.Type) + v.reset(Op386LEAL2) + v.AddArg(x) + v0 := b.NewValue0(v.Pos, Op386LEAL2, v.Type) + v0.AddArg(x) v0.AddArg(x) v.AddArg(v0) - v.AddArg(x) return true } + return false +} +func rewriteValue386_Op386MULLconst_10(v *Value) bool { + b := v.Block + _ = b // match: (MULLconst [9] x) // cond: // result: (LEAL8 x x) @@ -8461,11 +8512,22 @@ func rewriteValue386_Op386MULLconst_0(v *Value) bool { v.AddArg(v0) return true } - return false -} -func rewriteValue386_Op386MULLconst_10(v *Value) bool { - b := v.Block - _ = b + // match: (MULLconst [19] x) + // cond: + // result: (LEAL2 x (LEAL8 x x)) + for { + if v.AuxInt != 19 { + break + } + x := v.Args[0] + v.reset(Op386LEAL2) + v.AddArg(x) + v0 := b.NewValue0(v.Pos, Op386LEAL8, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } // match: (MULLconst [21] x) // cond: // result: (LEAL4 x (LEAL4 x x)) @@ -8498,6 +8560,25 @@ func rewriteValue386_Op386MULLconst_10(v *Value) bool { v.AddArg(v0) return true } + // match: (MULLconst [27] x) + // cond: + // result: (LEAL8 (LEAL2 x x) (LEAL2 x x)) + for { + if v.AuxInt != 27 { + break + } + x := v.Args[0] + v.reset(Op386LEAL8) + v0 := b.NewValue0(v.Pos, Op386LEAL2, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + v1 := b.NewValue0(v.Pos, Op386LEAL2, v.Type) + v1.AddArg(x) + v1.AddArg(x) + v.AddArg(v1) + return true + } // match: (MULLconst [37] x) // cond: // result: (LEAL4 x (LEAL8 x x)) @@ -8530,6 +8611,30 @@ func rewriteValue386_Op386MULLconst_10(v *Value) bool { v.AddArg(v0) return true } + // match: (MULLconst [45] x) + // cond: + // result: (LEAL8 (LEAL4 x x) (LEAL4 x x)) + for { + if v.AuxInt != 45 { + break + } + x := v.Args[0] + v.reset(Op386LEAL8) + v0 := b.NewValue0(v.Pos, Op386LEAL4, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + v1 := b.NewValue0(v.Pos, Op386LEAL4, v.Type) + v1.AddArg(x) + v1.AddArg(x) + v.AddArg(v1) + return true + } + return false +} +func rewriteValue386_Op386MULLconst_20(v *Value) bool { + b := v.Block + _ = b // match: (MULLconst [73] x) // cond: // result: (LEAL8 x (LEAL8 x x)) @@ -8546,6 +8651,25 @@ func rewriteValue386_Op386MULLconst_10(v *Value) bool { v.AddArg(v0) return true } + // match: (MULLconst [81] x) + // cond: + // result: (LEAL8 (LEAL8 x x) (LEAL8 x x)) + for { + if v.AuxInt != 81 { + break + } + x := v.Args[0] + v.reset(Op386LEAL8) + v0 := b.NewValue0(v.Pos, Op386LEAL8, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + v1 := b.NewValue0(v.Pos, Op386LEAL8, v.Type) + v1.AddArg(x) + v1.AddArg(x) + v.AddArg(v1) + return true + } // match: (MULLconst [c] x) // cond: isPowerOfTwo(c+1) && c >= 15 // result: (SUBL (SHLLconst [log2(c+1)] x) x) @@ -8631,11 +8755,6 @@ func rewriteValue386_Op386MULLconst_10(v *Value) bool { v.AddArg(x) return true } - return false -} -func rewriteValue386_Op386MULLconst_20(v *Value) bool { - b := v.Block - _ = b // match: (MULLconst [c] x) // cond: c%3 == 0 && isPowerOfTwo(c/3) // result: (SHLLconst [log2(c/3)] (LEAL2 x x)) @@ -8687,6 +8806,9 @@ func rewriteValue386_Op386MULLconst_20(v *Value) bool { v.AddArg(v0) return true } + return false +} +func rewriteValue386_Op386MULLconst_30(v *Value) bool { // match: (MULLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [int64(int32(c*d))]) diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index 3aac711105..3d781db6f6 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -300,7 +300,7 @@ func rewriteValueAMD64(v *Value) bool { case OpAMD64MULQ: return rewriteValueAMD64_OpAMD64MULQ_0(v) case OpAMD64MULQconst: - return rewriteValueAMD64_OpAMD64MULQconst_0(v) || rewriteValueAMD64_OpAMD64MULQconst_10(v) || rewriteValueAMD64_OpAMD64MULQconst_20(v) + return rewriteValueAMD64_OpAMD64MULQconst_0(v) || rewriteValueAMD64_OpAMD64MULQconst_10(v) || rewriteValueAMD64_OpAMD64MULQconst_20(v) || rewriteValueAMD64_OpAMD64MULQconst_30(v) case OpAMD64MULSD: return rewriteValueAMD64_OpAMD64MULSD_0(v) case OpAMD64MULSDmem: @@ -19190,6 +19190,51 @@ func rewriteValueAMD64_OpAMD64MULQconst_0(v *Value) bool { v.AddArg(x) return true } + // match: (MULQconst [-9] x) + // cond: + // result: (NEGQ (LEAQ8 x x)) + for { + if v.AuxInt != -9 { + break + } + x := v.Args[0] + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ8, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } + // match: (MULQconst [-5] x) + // cond: + // result: (NEGQ (LEAQ4 x x)) + for { + if v.AuxInt != -5 { + break + } + x := v.Args[0] + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ4, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } + // match: (MULQconst [-3] x) + // cond: + // result: (NEGQ (LEAQ2 x x)) + for { + if v.AuxInt != -3 { + break + } + x := v.Args[0] + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ2, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } // match: (MULQconst [-1] x) // cond: // result: (NEGQ x) @@ -19254,19 +19299,25 @@ func rewriteValueAMD64_OpAMD64MULQconst_0(v *Value) bool { } // match: (MULQconst [7] x) // cond: - // result: (LEAQ8 (NEGQ x) x) + // result: (LEAQ2 x (LEAQ2 x x)) for { if v.AuxInt != 7 { break } x := v.Args[0] - v.reset(OpAMD64LEAQ8) - v0 := b.NewValue0(v.Pos, OpAMD64NEGQ, v.Type) + v.reset(OpAMD64LEAQ2) + v.AddArg(x) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ2, v.Type) + v0.AddArg(x) v0.AddArg(x) v.AddArg(v0) - v.AddArg(x) return true } + return false +} +func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { + b := v.Block + _ = b // match: (MULQconst [9] x) // cond: // result: (LEAQ8 x x) @@ -19312,11 +19363,22 @@ func rewriteValueAMD64_OpAMD64MULQconst_0(v *Value) bool { v.AddArg(v0) return true } - return false -} -func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { - b := v.Block - _ = b + // match: (MULQconst [19] x) + // cond: + // result: (LEAQ2 x (LEAQ8 x x)) + for { + if v.AuxInt != 19 { + break + } + x := v.Args[0] + v.reset(OpAMD64LEAQ2) + v.AddArg(x) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ8, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + return true + } // match: (MULQconst [21] x) // cond: // result: (LEAQ4 x (LEAQ4 x x)) @@ -19349,6 +19411,25 @@ func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { v.AddArg(v0) return true } + // match: (MULQconst [27] x) + // cond: + // result: (LEAQ8 (LEAQ2 x x) (LEAQ2 x x)) + for { + if v.AuxInt != 27 { + break + } + x := v.Args[0] + v.reset(OpAMD64LEAQ8) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ2, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + v1 := b.NewValue0(v.Pos, OpAMD64LEAQ2, v.Type) + v1.AddArg(x) + v1.AddArg(x) + v.AddArg(v1) + return true + } // match: (MULQconst [37] x) // cond: // result: (LEAQ4 x (LEAQ8 x x)) @@ -19381,6 +19462,30 @@ func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { v.AddArg(v0) return true } + // match: (MULQconst [45] x) + // cond: + // result: (LEAQ8 (LEAQ4 x x) (LEAQ4 x x)) + for { + if v.AuxInt != 45 { + break + } + x := v.Args[0] + v.reset(OpAMD64LEAQ8) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ4, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + v1 := b.NewValue0(v.Pos, OpAMD64LEAQ4, v.Type) + v1.AddArg(x) + v1.AddArg(x) + v.AddArg(v1) + return true + } + return false +} +func rewriteValueAMD64_OpAMD64MULQconst_20(v *Value) bool { + b := v.Block + _ = b // match: (MULQconst [73] x) // cond: // result: (LEAQ8 x (LEAQ8 x x)) @@ -19397,6 +19502,25 @@ func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { v.AddArg(v0) return true } + // match: (MULQconst [81] x) + // cond: + // result: (LEAQ8 (LEAQ8 x x) (LEAQ8 x x)) + for { + if v.AuxInt != 81 { + break + } + x := v.Args[0] + v.reset(OpAMD64LEAQ8) + v0 := b.NewValue0(v.Pos, OpAMD64LEAQ8, v.Type) + v0.AddArg(x) + v0.AddArg(x) + v.AddArg(v0) + v1 := b.NewValue0(v.Pos, OpAMD64LEAQ8, v.Type) + v1.AddArg(x) + v1.AddArg(x) + v.AddArg(v1) + return true + } // match: (MULQconst [c] x) // cond: isPowerOfTwo(c+1) && c >= 15 // result: (SUBQ (SHLQconst [log2(c+1)] x) x) @@ -19482,11 +19606,6 @@ func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { v.AddArg(x) return true } - return false -} -func rewriteValueAMD64_OpAMD64MULQconst_20(v *Value) bool { - b := v.Block - _ = b // match: (MULQconst [c] x) // cond: c%3 == 0 && isPowerOfTwo(c/3) // result: (SHLQconst [log2(c/3)] (LEAQ2 x x)) @@ -19538,6 +19657,9 @@ func rewriteValueAMD64_OpAMD64MULQconst_20(v *Value) bool { v.AddArg(v0) return true } + return false +} +func rewriteValueAMD64_OpAMD64MULQconst_30(v *Value) bool { // match: (MULQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [c*d])