]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: on ARM, make sure *const's AuxInt fit into int32
authorCherry Zhang <cherryyz@google.com>
Tue, 31 Oct 2017 15:48:13 +0000 (11:48 -0400)
committerCherry Zhang <cherryyz@google.com>
Tue, 31 Oct 2017 20:14:55 +0000 (20:14 +0000)
Previously some of the AuxInt are uint32, which may not fit into
int32. This CL convert them to int32. This does not change the
generated code, but make ssacheck happy.

Pass "toolstash -cmp" for std cmd on ARM.

Fixes #22499.

Change-Id: Ib072d3c14962388bfeb0766c861995d00b4fa7c4
Reviewed-on: https://go-review.googlesource.com/74770
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/testdata/arithConst.go
src/cmd/compile/internal/gc/testdata/gen/arithConstGen.go
src/cmd/compile/internal/ssa/gen/ARM.rules
src/cmd/compile/internal/ssa/rewriteARM.go

index ef42359c4b6504b7d0c6e3f40acc004c811b6c47..ef565bff481789340f294980dd9086ebd3d5026b 100644 (file)
@@ -345,6 +345,156 @@ func mod_18446744073709551615_uint64_ssa(a uint64) uint64 {
        return 18446744073709551615 % a
 }
 
+//go:noinline
+func and_uint64_0_ssa(a uint64) uint64 {
+       return a & 0
+}
+
+//go:noinline
+func and_0_uint64_ssa(a uint64) uint64 {
+       return 0 & a
+}
+
+//go:noinline
+func and_uint64_1_ssa(a uint64) uint64 {
+       return a & 1
+}
+
+//go:noinline
+func and_1_uint64_ssa(a uint64) uint64 {
+       return 1 & a
+}
+
+//go:noinline
+func and_uint64_4294967296_ssa(a uint64) uint64 {
+       return a & 4294967296
+}
+
+//go:noinline
+func and_4294967296_uint64_ssa(a uint64) uint64 {
+       return 4294967296 & a
+}
+
+//go:noinline
+func and_uint64_9223372036854775808_ssa(a uint64) uint64 {
+       return a & 9223372036854775808
+}
+
+//go:noinline
+func and_9223372036854775808_uint64_ssa(a uint64) uint64 {
+       return 9223372036854775808 & a
+}
+
+//go:noinline
+func and_uint64_18446744073709551615_ssa(a uint64) uint64 {
+       return a & 18446744073709551615
+}
+
+//go:noinline
+func and_18446744073709551615_uint64_ssa(a uint64) uint64 {
+       return 18446744073709551615 & a
+}
+
+//go:noinline
+func or_uint64_0_ssa(a uint64) uint64 {
+       return a | 0
+}
+
+//go:noinline
+func or_0_uint64_ssa(a uint64) uint64 {
+       return 0 | a
+}
+
+//go:noinline
+func or_uint64_1_ssa(a uint64) uint64 {
+       return a | 1
+}
+
+//go:noinline
+func or_1_uint64_ssa(a uint64) uint64 {
+       return 1 | a
+}
+
+//go:noinline
+func or_uint64_4294967296_ssa(a uint64) uint64 {
+       return a | 4294967296
+}
+
+//go:noinline
+func or_4294967296_uint64_ssa(a uint64) uint64 {
+       return 4294967296 | a
+}
+
+//go:noinline
+func or_uint64_9223372036854775808_ssa(a uint64) uint64 {
+       return a | 9223372036854775808
+}
+
+//go:noinline
+func or_9223372036854775808_uint64_ssa(a uint64) uint64 {
+       return 9223372036854775808 | a
+}
+
+//go:noinline
+func or_uint64_18446744073709551615_ssa(a uint64) uint64 {
+       return a | 18446744073709551615
+}
+
+//go:noinline
+func or_18446744073709551615_uint64_ssa(a uint64) uint64 {
+       return 18446744073709551615 | a
+}
+
+//go:noinline
+func xor_uint64_0_ssa(a uint64) uint64 {
+       return a ^ 0
+}
+
+//go:noinline
+func xor_0_uint64_ssa(a uint64) uint64 {
+       return 0 ^ a
+}
+
+//go:noinline
+func xor_uint64_1_ssa(a uint64) uint64 {
+       return a ^ 1
+}
+
+//go:noinline
+func xor_1_uint64_ssa(a uint64) uint64 {
+       return 1 ^ a
+}
+
+//go:noinline
+func xor_uint64_4294967296_ssa(a uint64) uint64 {
+       return a ^ 4294967296
+}
+
+//go:noinline
+func xor_4294967296_uint64_ssa(a uint64) uint64 {
+       return 4294967296 ^ a
+}
+
+//go:noinline
+func xor_uint64_9223372036854775808_ssa(a uint64) uint64 {
+       return a ^ 9223372036854775808
+}
+
+//go:noinline
+func xor_9223372036854775808_uint64_ssa(a uint64) uint64 {
+       return 9223372036854775808 ^ a
+}
+
+//go:noinline
+func xor_uint64_18446744073709551615_ssa(a uint64) uint64 {
+       return a ^ 18446744073709551615
+}
+
+//go:noinline
+func xor_18446744073709551615_uint64_ssa(a uint64) uint64 {
+       return 18446744073709551615 ^ a
+}
+
 //go:noinline
 func add_int64_Neg9223372036854775808_ssa(a int64) int64 {
        return a + -9223372036854775808
@@ -786,15106 +936,24256 @@ func mod_9223372036854775807_int64_ssa(a int64) int64 {
 }
 
 //go:noinline
-func add_uint32_0_ssa(a uint32) uint32 {
-       return a + 0
+func and_int64_Neg9223372036854775808_ssa(a int64) int64 {
+       return a & -9223372036854775808
 }
 
 //go:noinline
-func add_0_uint32_ssa(a uint32) uint32 {
-       return 0 + a
+func and_Neg9223372036854775808_int64_ssa(a int64) int64 {
+       return -9223372036854775808 & a
 }
 
 //go:noinline
-func add_uint32_1_ssa(a uint32) uint32 {
-       return a + 1
+func and_int64_Neg9223372036854775807_ssa(a int64) int64 {
+       return a & -9223372036854775807
 }
 
 //go:noinline
-func add_1_uint32_ssa(a uint32) uint32 {
-       return 1 + a
+func and_Neg9223372036854775807_int64_ssa(a int64) int64 {
+       return -9223372036854775807 & a
 }
 
 //go:noinline
-func add_uint32_4294967295_ssa(a uint32) uint32 {
-       return a + 4294967295
+func and_int64_Neg4294967296_ssa(a int64) int64 {
+       return a & -4294967296
 }
 
 //go:noinline
-func add_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 + a
+func and_Neg4294967296_int64_ssa(a int64) int64 {
+       return -4294967296 & a
 }
 
 //go:noinline
-func sub_uint32_0_ssa(a uint32) uint32 {
-       return a - 0
+func and_int64_Neg1_ssa(a int64) int64 {
+       return a & -1
 }
 
 //go:noinline
-func sub_0_uint32_ssa(a uint32) uint32 {
-       return 0 - a
+func and_Neg1_int64_ssa(a int64) int64 {
+       return -1 & a
 }
 
 //go:noinline
-func sub_uint32_1_ssa(a uint32) uint32 {
-       return a - 1
+func and_int64_0_ssa(a int64) int64 {
+       return a & 0
 }
 
 //go:noinline
-func sub_1_uint32_ssa(a uint32) uint32 {
-       return 1 - a
+func and_0_int64_ssa(a int64) int64 {
+       return 0 & a
 }
 
 //go:noinline
-func sub_uint32_4294967295_ssa(a uint32) uint32 {
-       return a - 4294967295
+func and_int64_1_ssa(a int64) int64 {
+       return a & 1
 }
 
 //go:noinline
-func sub_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 - a
+func and_1_int64_ssa(a int64) int64 {
+       return 1 & a
 }
 
 //go:noinline
-func div_0_uint32_ssa(a uint32) uint32 {
-       return 0 / a
+func and_int64_4294967296_ssa(a int64) int64 {
+       return a & 4294967296
 }
 
 //go:noinline
-func div_uint32_1_ssa(a uint32) uint32 {
-       return a / 1
+func and_4294967296_int64_ssa(a int64) int64 {
+       return 4294967296 & a
 }
 
 //go:noinline
-func div_1_uint32_ssa(a uint32) uint32 {
-       return 1 / a
+func and_int64_9223372036854775806_ssa(a int64) int64 {
+       return a & 9223372036854775806
 }
 
 //go:noinline
-func div_uint32_4294967295_ssa(a uint32) uint32 {
-       return a / 4294967295
+func and_9223372036854775806_int64_ssa(a int64) int64 {
+       return 9223372036854775806 & a
 }
 
 //go:noinline
-func div_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 / a
+func and_int64_9223372036854775807_ssa(a int64) int64 {
+       return a & 9223372036854775807
 }
 
 //go:noinline
-func mul_uint32_0_ssa(a uint32) uint32 {
-       return a * 0
+func and_9223372036854775807_int64_ssa(a int64) int64 {
+       return 9223372036854775807 & a
 }
 
 //go:noinline
-func mul_0_uint32_ssa(a uint32) uint32 {
-       return 0 * a
+func or_int64_Neg9223372036854775808_ssa(a int64) int64 {
+       return a | -9223372036854775808
 }
 
 //go:noinline
-func mul_uint32_1_ssa(a uint32) uint32 {
-       return a * 1
+func or_Neg9223372036854775808_int64_ssa(a int64) int64 {
+       return -9223372036854775808 | a
 }
 
 //go:noinline
-func mul_1_uint32_ssa(a uint32) uint32 {
-       return 1 * a
+func or_int64_Neg9223372036854775807_ssa(a int64) int64 {
+       return a | -9223372036854775807
 }
 
 //go:noinline
-func mul_uint32_4294967295_ssa(a uint32) uint32 {
-       return a * 4294967295
+func or_Neg9223372036854775807_int64_ssa(a int64) int64 {
+       return -9223372036854775807 | a
 }
 
 //go:noinline
-func mul_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 * a
+func or_int64_Neg4294967296_ssa(a int64) int64 {
+       return a | -4294967296
 }
 
 //go:noinline
-func lsh_uint32_0_ssa(a uint32) uint32 {
-       return a << 0
+func or_Neg4294967296_int64_ssa(a int64) int64 {
+       return -4294967296 | a
 }
 
 //go:noinline
-func lsh_0_uint32_ssa(a uint32) uint32 {
-       return 0 << a
+func or_int64_Neg1_ssa(a int64) int64 {
+       return a | -1
 }
 
 //go:noinline
-func lsh_uint32_1_ssa(a uint32) uint32 {
-       return a << 1
+func or_Neg1_int64_ssa(a int64) int64 {
+       return -1 | a
 }
 
 //go:noinline
-func lsh_1_uint32_ssa(a uint32) uint32 {
-       return 1 << a
+func or_int64_0_ssa(a int64) int64 {
+       return a | 0
 }
 
 //go:noinline
-func lsh_uint32_4294967295_ssa(a uint32) uint32 {
-       return a << 4294967295
+func or_0_int64_ssa(a int64) int64 {
+       return 0 | a
 }
 
 //go:noinline
-func lsh_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 << a
+func or_int64_1_ssa(a int64) int64 {
+       return a | 1
 }
 
 //go:noinline
-func rsh_uint32_0_ssa(a uint32) uint32 {
-       return a >> 0
+func or_1_int64_ssa(a int64) int64 {
+       return 1 | a
 }
 
 //go:noinline
-func rsh_0_uint32_ssa(a uint32) uint32 {
-       return 0 >> a
+func or_int64_4294967296_ssa(a int64) int64 {
+       return a | 4294967296
 }
 
 //go:noinline
-func rsh_uint32_1_ssa(a uint32) uint32 {
-       return a >> 1
+func or_4294967296_int64_ssa(a int64) int64 {
+       return 4294967296 | a
 }
 
 //go:noinline
-func rsh_1_uint32_ssa(a uint32) uint32 {
-       return 1 >> a
+func or_int64_9223372036854775806_ssa(a int64) int64 {
+       return a | 9223372036854775806
 }
 
 //go:noinline
-func rsh_uint32_4294967295_ssa(a uint32) uint32 {
-       return a >> 4294967295
+func or_9223372036854775806_int64_ssa(a int64) int64 {
+       return 9223372036854775806 | a
 }
 
 //go:noinline
-func rsh_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 >> a
+func or_int64_9223372036854775807_ssa(a int64) int64 {
+       return a | 9223372036854775807
 }
 
 //go:noinline
-func mod_0_uint32_ssa(a uint32) uint32 {
-       return 0 % a
+func or_9223372036854775807_int64_ssa(a int64) int64 {
+       return 9223372036854775807 | a
 }
 
 //go:noinline
-func mod_uint32_1_ssa(a uint32) uint32 {
-       return a % 1
+func xor_int64_Neg9223372036854775808_ssa(a int64) int64 {
+       return a ^ -9223372036854775808
 }
 
 //go:noinline
-func mod_1_uint32_ssa(a uint32) uint32 {
-       return 1 % a
+func xor_Neg9223372036854775808_int64_ssa(a int64) int64 {
+       return -9223372036854775808 ^ a
 }
 
 //go:noinline
-func mod_uint32_4294967295_ssa(a uint32) uint32 {
-       return a % 4294967295
+func xor_int64_Neg9223372036854775807_ssa(a int64) int64 {
+       return a ^ -9223372036854775807
 }
 
 //go:noinline
-func mod_4294967295_uint32_ssa(a uint32) uint32 {
-       return 4294967295 % a
+func xor_Neg9223372036854775807_int64_ssa(a int64) int64 {
+       return -9223372036854775807 ^ a
 }
 
 //go:noinline
-func add_int32_Neg2147483648_ssa(a int32) int32 {
-       return a + -2147483648
+func xor_int64_Neg4294967296_ssa(a int64) int64 {
+       return a ^ -4294967296
 }
 
 //go:noinline
-func add_Neg2147483648_int32_ssa(a int32) int32 {
-       return -2147483648 + a
+func xor_Neg4294967296_int64_ssa(a int64) int64 {
+       return -4294967296 ^ a
 }
 
 //go:noinline
-func add_int32_Neg2147483647_ssa(a int32) int32 {
-       return a + -2147483647
+func xor_int64_Neg1_ssa(a int64) int64 {
+       return a ^ -1
 }
 
 //go:noinline
-func add_Neg2147483647_int32_ssa(a int32) int32 {
-       return -2147483647 + a
+func xor_Neg1_int64_ssa(a int64) int64 {
+       return -1 ^ a
 }
 
 //go:noinline
-func add_int32_Neg1_ssa(a int32) int32 {
-       return a + -1
+func xor_int64_0_ssa(a int64) int64 {
+       return a ^ 0
 }
 
 //go:noinline
-func add_Neg1_int32_ssa(a int32) int32 {
-       return -1 + a
+func xor_0_int64_ssa(a int64) int64 {
+       return 0 ^ a
 }
 
 //go:noinline
-func add_int32_0_ssa(a int32) int32 {
-       return a + 0
+func xor_int64_1_ssa(a int64) int64 {
+       return a ^ 1
 }
 
 //go:noinline
-func add_0_int32_ssa(a int32) int32 {
-       return 0 + a
+func xor_1_int64_ssa(a int64) int64 {
+       return 1 ^ a
 }
 
 //go:noinline
-func add_int32_1_ssa(a int32) int32 {
-       return a + 1
+func xor_int64_4294967296_ssa(a int64) int64 {
+       return a ^ 4294967296
 }
 
 //go:noinline
-func add_1_int32_ssa(a int32) int32 {
-       return 1 + a
+func xor_4294967296_int64_ssa(a int64) int64 {
+       return 4294967296 ^ a
 }
 
 //go:noinline
-func add_int32_2147483647_ssa(a int32) int32 {
-       return a + 2147483647
+func xor_int64_9223372036854775806_ssa(a int64) int64 {
+       return a ^ 9223372036854775806
 }
 
 //go:noinline
-func add_2147483647_int32_ssa(a int32) int32 {
-       return 2147483647 + a
+func xor_9223372036854775806_int64_ssa(a int64) int64 {
+       return 9223372036854775806 ^ a
 }
 
 //go:noinline
-func sub_int32_Neg2147483648_ssa(a int32) int32 {
-       return a - -2147483648
+func xor_int64_9223372036854775807_ssa(a int64) int64 {
+       return a ^ 9223372036854775807
 }
 
 //go:noinline
-func sub_Neg2147483648_int32_ssa(a int32) int32 {
-       return -2147483648 - a
+func xor_9223372036854775807_int64_ssa(a int64) int64 {
+       return 9223372036854775807 ^ a
 }
 
 //go:noinline
-func sub_int32_Neg2147483647_ssa(a int32) int32 {
-       return a - -2147483647
+func add_uint32_0_ssa(a uint32) uint32 {
+       return a + 0
 }
 
 //go:noinline
-func sub_Neg2147483647_int32_ssa(a int32) int32 {
-       return -2147483647 - a
+func add_0_uint32_ssa(a uint32) uint32 {
+       return 0 + a
 }
 
 //go:noinline
-func sub_int32_Neg1_ssa(a int32) int32 {
-       return a - -1
+func add_uint32_1_ssa(a uint32) uint32 {
+       return a 1
 }
 
 //go:noinline
-func sub_Neg1_int32_ssa(a int32) int32 {
-       return -1 - a
+func add_1_uint32_ssa(a uint32) uint32 {
+       return 1 + a
 }
 
 //go:noinline
-func sub_int32_0_ssa(a int32) int32 {
+func add_uint32_4294967295_ssa(a uint32) uint32 {
+       return a + 4294967295
+}
+
+//go:noinline
+func add_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 + a
+}
+
+//go:noinline
+func sub_uint32_0_ssa(a uint32) uint32 {
        return a - 0
 }
 
 //go:noinline
-func sub_0_int32_ssa(a int32) int32 {
+func sub_0_uint32_ssa(a uint32) uint32 {
        return 0 - a
 }
 
 //go:noinline
-func sub_int32_1_ssa(a int32) int32 {
+func sub_uint32_1_ssa(a uint32) uint32 {
        return a - 1
 }
 
 //go:noinline
-func sub_1_int32_ssa(a int32) int32 {
+func sub_1_uint32_ssa(a uint32) uint32 {
        return 1 - a
 }
 
 //go:noinline
-func sub_int32_2147483647_ssa(a int32) int32 {
-       return a - 2147483647
+func sub_uint32_4294967295_ssa(a uint32) uint32 {
+       return a - 4294967295
 }
 
 //go:noinline
-func sub_2147483647_int32_ssa(a int32) int32 {
-       return 2147483647 - a
+func sub_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 - a
 }
 
 //go:noinline
-func div_int32_Neg2147483648_ssa(a int32) int32 {
-       return a / -2147483648
+func div_0_uint32_ssa(a uint32) uint32 {
+       return 0 / a
 }
 
 //go:noinline
-func div_Neg2147483648_int32_ssa(a int32) int32 {
-       return -2147483648 / a
+func div_uint32_1_ssa(a uint32) uint32 {
+       return a / 1
 }
 
 //go:noinline
-func div_int32_Neg2147483647_ssa(a int32) int32 {
-       return a / -2147483647
+func div_1_uint32_ssa(a uint32) uint32 {
+       return 1 / a
 }
 
 //go:noinline
-func div_Neg2147483647_int32_ssa(a int32) int32 {
-       return -2147483647 / a
+func div_uint32_4294967295_ssa(a uint32) uint32 {
+       return a / 4294967295
 }
 
 //go:noinline
-func div_int32_Neg1_ssa(a int32) int32 {
-       return a / -1
+func div_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 / a
 }
 
 //go:noinline
-func div_Neg1_int32_ssa(a int32) int32 {
-       return -1 / a
+func mul_uint32_0_ssa(a uint32) uint32 {
+       return a * 0
 }
 
 //go:noinline
-func div_0_int32_ssa(a int32) int32 {
-       return 0 / a
+func mul_0_uint32_ssa(a uint32) uint32 {
+       return 0 * a
 }
 
 //go:noinline
-func div_int32_1_ssa(a int32) int32 {
-       return a / 1
+func mul_uint32_1_ssa(a uint32) uint32 {
+       return a * 1
 }
 
 //go:noinline
-func div_1_int32_ssa(a int32) int32 {
-       return 1 / a
+func mul_1_uint32_ssa(a uint32) uint32 {
+       return 1 * a
 }
 
 //go:noinline
-func div_int32_2147483647_ssa(a int32) int32 {
-       return a / 2147483647
+func mul_uint32_4294967295_ssa(a uint32) uint32 {
+       return a * 4294967295
 }
 
 //go:noinline
-func div_2147483647_int32_ssa(a int32) int32 {
-       return 2147483647 / a
+func mul_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 * a
 }
 
 //go:noinline
-func mul_int32_Neg2147483648_ssa(a int32) int32 {
-       return a * -2147483648
+func lsh_uint32_0_ssa(a uint32) uint32 {
+       return a << 0
 }
 
 //go:noinline
-func mul_Neg2147483648_int32_ssa(a int32) int32 {
-       return -2147483648 * a
+func lsh_0_uint32_ssa(a uint32) uint32 {
+       return 0 << a
 }
 
 //go:noinline
-func mul_int32_Neg2147483647_ssa(a int32) int32 {
-       return a * -2147483647
+func lsh_uint32_1_ssa(a uint32) uint32 {
+       return a << 1
 }
 
 //go:noinline
-func mul_Neg2147483647_int32_ssa(a int32) int32 {
-       return -2147483647 * a
+func lsh_1_uint32_ssa(a uint32) uint32 {
+       return 1 << a
 }
 
 //go:noinline
-func mul_int32_Neg1_ssa(a int32) int32 {
-       return a * -1
+func lsh_uint32_4294967295_ssa(a uint32) uint32 {
+       return a << 4294967295
 }
 
 //go:noinline
-func mul_Neg1_int32_ssa(a int32) int32 {
-       return -1 * a
+func lsh_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 << a
 }
 
 //go:noinline
-func mul_int32_0_ssa(a int32) int32 {
-       return a * 0
+func rsh_uint32_0_ssa(a uint32) uint32 {
+       return a >> 0
 }
 
 //go:noinline
-func mul_0_int32_ssa(a int32) int32 {
-       return 0 * a
+func rsh_0_uint32_ssa(a uint32) uint32 {
+       return 0 >> a
 }
 
 //go:noinline
-func mul_int32_1_ssa(a int32) int32 {
-       return a * 1
+func rsh_uint32_1_ssa(a uint32) uint32 {
+       return a >> 1
 }
 
 //go:noinline
-func mul_1_int32_ssa(a int32) int32 {
-       return 1 * a
+func rsh_1_uint32_ssa(a uint32) uint32 {
+       return 1 >> a
 }
 
 //go:noinline
-func mul_int32_2147483647_ssa(a int32) int32 {
-       return a * 2147483647
+func rsh_uint32_4294967295_ssa(a uint32) uint32 {
+       return a >> 4294967295
 }
 
 //go:noinline
-func mul_2147483647_int32_ssa(a int32) int32 {
-       return 2147483647 * a
+func rsh_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 >> a
 }
 
 //go:noinline
-func mod_int32_Neg2147483648_ssa(a int32) int32 {
-       return a % -2147483648
+func mod_0_uint32_ssa(a uint32) uint32 {
+       return 0 % a
 }
 
 //go:noinline
-func mod_Neg2147483648_int32_ssa(a int32) int32 {
-       return -2147483648 % a
+func mod_uint32_1_ssa(a uint32) uint32 {
+       return a % 1
 }
 
 //go:noinline
-func mod_int32_Neg2147483647_ssa(a int32) int32 {
-       return a % -2147483647
+func mod_1_uint32_ssa(a uint32) uint32 {
+       return 1 % a
 }
 
 //go:noinline
-func mod_Neg2147483647_int32_ssa(a int32) int32 {
-       return -2147483647 % a
+func mod_uint32_4294967295_ssa(a uint32) uint32 {
+       return a % 4294967295
 }
 
 //go:noinline
-func mod_int32_Neg1_ssa(a int32) int32 {
-       return a % -1
+func mod_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 % a
 }
 
 //go:noinline
-func mod_Neg1_int32_ssa(a int32) int32 {
-       return -1 % a
+func and_uint32_0_ssa(a uint32) uint32 {
+       return a & 0
 }
 
 //go:noinline
-func mod_0_int32_ssa(a int32) int32 {
-       return 0 % a
+func and_0_uint32_ssa(a uint32) uint32 {
+       return 0 & a
 }
 
 //go:noinline
-func mod_int32_1_ssa(a int32) int32 {
-       return a % 1
+func and_uint32_1_ssa(a uint32) uint32 {
+       return a & 1
 }
 
 //go:noinline
-func mod_1_int32_ssa(a int32) int32 {
-       return 1 % a
+func and_1_uint32_ssa(a uint32) uint32 {
+       return 1 & a
 }
 
 //go:noinline
-func mod_int32_2147483647_ssa(a int32) int32 {
-       return a % 2147483647
+func and_uint32_4294967295_ssa(a uint32) uint32 {
+       return a & 4294967295
 }
 
 //go:noinline
-func mod_2147483647_int32_ssa(a int32) int32 {
-       return 2147483647 % a
+func and_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 & a
 }
 
 //go:noinline
-func add_uint16_0_ssa(a uint16) uint16 {
-       return a + 0
+func or_uint32_0_ssa(a uint32) uint32 {
+       return a | 0
 }
 
 //go:noinline
-func add_0_uint16_ssa(a uint16) uint16 {
-       return 0 + a
+func or_0_uint32_ssa(a uint32) uint32 {
+       return 0 | a
 }
 
 //go:noinline
-func add_uint16_1_ssa(a uint16) uint16 {
-       return a + 1
+func or_uint32_1_ssa(a uint32) uint32 {
+       return a | 1
 }
 
 //go:noinline
-func add_1_uint16_ssa(a uint16) uint16 {
-       return 1 + a
+func or_1_uint32_ssa(a uint32) uint32 {
+       return 1 | a
 }
 
 //go:noinline
-func add_uint16_65535_ssa(a uint16) uint16 {
-       return a + 65535
+func or_uint32_4294967295_ssa(a uint32) uint32 {
+       return a | 4294967295
 }
 
 //go:noinline
-func add_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 + a
+func or_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 | a
 }
 
 //go:noinline
-func sub_uint16_0_ssa(a uint16) uint16 {
-       return a - 0
+func xor_uint32_0_ssa(a uint32) uint32 {
+       return a ^ 0
 }
 
 //go:noinline
-func sub_0_uint16_ssa(a uint16) uint16 {
-       return 0 - a
+func xor_0_uint32_ssa(a uint32) uint32 {
+       return 0 ^ a
 }
 
 //go:noinline
-func sub_uint16_1_ssa(a uint16) uint16 {
-       return a - 1
+func xor_uint32_1_ssa(a uint32) uint32 {
+       return a ^ 1
 }
 
 //go:noinline
-func sub_1_uint16_ssa(a uint16) uint16 {
-       return 1 - a
+func xor_1_uint32_ssa(a uint32) uint32 {
+       return 1 ^ a
 }
 
 //go:noinline
-func sub_uint16_65535_ssa(a uint16) uint16 {
-       return a - 65535
+func xor_uint32_4294967295_ssa(a uint32) uint32 {
+       return a ^ 4294967295
 }
 
 //go:noinline
-func sub_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 - a
+func xor_4294967295_uint32_ssa(a uint32) uint32 {
+       return 4294967295 ^ a
 }
 
 //go:noinline
-func div_0_uint16_ssa(a uint16) uint16 {
-       return 0 / a
+func add_int32_Neg2147483648_ssa(a int32) int32 {
+       return a + -2147483648
 }
 
 //go:noinline
-func div_uint16_1_ssa(a uint16) uint16 {
-       return a / 1
+func add_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 + a
 }
 
 //go:noinline
-func div_1_uint16_ssa(a uint16) uint16 {
-       return 1 / a
+func add_int32_Neg2147483647_ssa(a int32) int32 {
+       return a + -2147483647
 }
 
 //go:noinline
-func div_uint16_65535_ssa(a uint16) uint16 {
-       return a / 65535
+func add_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 + a
 }
 
 //go:noinline
-func div_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 / a
+func add_int32_Neg1_ssa(a int32) int32 {
+       return a + -1
 }
 
 //go:noinline
-func mul_uint16_0_ssa(a uint16) uint16 {
-       return a * 0
+func add_Neg1_int32_ssa(a int32) int32 {
+       return -1 + a
 }
 
 //go:noinline
-func mul_0_uint16_ssa(a uint16) uint16 {
-       return 0 * a
+func add_int32_0_ssa(a int32) int32 {
+       return a + 0
 }
 
 //go:noinline
-func mul_uint16_1_ssa(a uint16) uint16 {
-       return a * 1
+func add_0_int32_ssa(a int32) int32 {
+       return 0 + a
 }
 
 //go:noinline
-func mul_1_uint16_ssa(a uint16) uint16 {
-       return 1 * a
+func add_int32_1_ssa(a int32) int32 {
+       return a + 1
 }
 
 //go:noinline
-func mul_uint16_65535_ssa(a uint16) uint16 {
-       return a * 65535
+func add_1_int32_ssa(a int32) int32 {
+       return 1 + a
 }
 
 //go:noinline
-func mul_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 * a
+func add_int32_2147483647_ssa(a int32) int32 {
+       return a + 2147483647
 }
 
 //go:noinline
-func lsh_uint16_0_ssa(a uint16) uint16 {
-       return a << 0
+func add_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 + a
 }
 
 //go:noinline
-func lsh_0_uint16_ssa(a uint16) uint16 {
-       return 0 << a
+func sub_int32_Neg2147483648_ssa(a int32) int32 {
+       return a - -2147483648
 }
 
 //go:noinline
-func lsh_uint16_1_ssa(a uint16) uint16 {
-       return a << 1
+func sub_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 - a
 }
 
 //go:noinline
-func lsh_1_uint16_ssa(a uint16) uint16 {
-       return 1 << a
+func sub_int32_Neg2147483647_ssa(a int32) int32 {
+       return a - -2147483647
 }
 
 //go:noinline
-func lsh_uint16_65535_ssa(a uint16) uint16 {
-       return a << 65535
+func sub_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 - a
 }
 
 //go:noinline
-func lsh_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 << a
+func sub_int32_Neg1_ssa(a int32) int32 {
+       return a - -1
 }
 
 //go:noinline
-func rsh_uint16_0_ssa(a uint16) uint16 {
-       return a >> 0
+func sub_Neg1_int32_ssa(a int32) int32 {
+       return -1 - a
 }
 
 //go:noinline
-func rsh_0_uint16_ssa(a uint16) uint16 {
-       return 0 >> a
+func sub_int32_0_ssa(a int32) int32 {
+       return a - 0
 }
 
 //go:noinline
-func rsh_uint16_1_ssa(a uint16) uint16 {
-       return a >> 1
+func sub_0_int32_ssa(a int32) int32 {
+       return 0 - a
 }
 
 //go:noinline
-func rsh_1_uint16_ssa(a uint16) uint16 {
-       return 1 >> a
+func sub_int32_1_ssa(a int32) int32 {
+       return a - 1
 }
 
 //go:noinline
-func rsh_uint16_65535_ssa(a uint16) uint16 {
-       return a >> 65535
+func sub_1_int32_ssa(a int32) int32 {
+       return 1 - a
 }
 
 //go:noinline
-func rsh_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 >> a
+func sub_int32_2147483647_ssa(a int32) int32 {
+       return a - 2147483647
 }
 
 //go:noinline
-func mod_0_uint16_ssa(a uint16) uint16 {
-       return 0 % a
+func sub_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 - a
 }
 
 //go:noinline
-func mod_uint16_1_ssa(a uint16) uint16 {
-       return a % 1
+func div_int32_Neg2147483648_ssa(a int32) int32 {
+       return a / -2147483648
 }
 
 //go:noinline
-func mod_1_uint16_ssa(a uint16) uint16 {
-       return 1 % a
+func div_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 / a
 }
 
 //go:noinline
-func mod_uint16_65535_ssa(a uint16) uint16 {
-       return a % 65535
+func div_int32_Neg2147483647_ssa(a int32) int32 {
+       return a / -2147483647
 }
 
 //go:noinline
-func mod_65535_uint16_ssa(a uint16) uint16 {
-       return 65535 % a
+func div_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 / a
 }
 
 //go:noinline
-func add_int16_Neg32768_ssa(a int16) int16 {
-       return a + -32768
+func div_int32_Neg1_ssa(a int32) int32 {
+       return a / -1
 }
 
 //go:noinline
-func add_Neg32768_int16_ssa(a int16) int16 {
-       return -32768 + a
+func div_Neg1_int32_ssa(a int32) int32 {
+       return -1 / a
 }
 
 //go:noinline
-func add_int16_Neg32767_ssa(a int16) int16 {
-       return a + -32767
+func div_0_int32_ssa(a int32) int32 {
+       return 0 / a
 }
 
 //go:noinline
-func add_Neg32767_int16_ssa(a int16) int16 {
-       return -32767 + a
-}
-
-//go:noinline
-func add_int16_Neg1_ssa(a int16) int16 {
-       return a + -1
-}
-
-//go:noinline
-func add_Neg1_int16_ssa(a int16) int16 {
-       return -1 + a
+func div_int32_1_ssa(a int32) int32 {
+       return a / 1
 }
 
 //go:noinline
-func add_int16_0_ssa(a int16) int16 {
-       return a + 0
+func div_1_int32_ssa(a int32) int32 {
+       return 1 / a
 }
 
 //go:noinline
-func add_0_int16_ssa(a int16) int16 {
-       return 0 + a
+func div_int32_2147483647_ssa(a int32) int32 {
+       return a / 2147483647
 }
 
 //go:noinline
-func add_int16_1_ssa(a int16) int16 {
-       return a + 1
+func div_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 / a
 }
 
 //go:noinline
-func add_1_int16_ssa(a int16) int16 {
-       return 1 + a
+func mul_int32_Neg2147483648_ssa(a int32) int32 {
+       return a * -2147483648
 }
 
 //go:noinline
-func add_int16_32766_ssa(a int16) int16 {
-       return a + 32766
+func mul_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 * a
 }
 
 //go:noinline
-func add_32766_int16_ssa(a int16) int16 {
-       return 32766 + a
+func mul_int32_Neg2147483647_ssa(a int32) int32 {
+       return a * -2147483647
 }
 
 //go:noinline
-func add_int16_32767_ssa(a int16) int16 {
-       return a + 32767
+func mul_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 * a
 }
 
 //go:noinline
-func add_32767_int16_ssa(a int16) int16 {
-       return 32767 + a
+func mul_int32_Neg1_ssa(a int32) int32 {
+       return a * -1
 }
 
 //go:noinline
-func sub_int16_Neg32768_ssa(a int16) int16 {
-       return a - -32768
+func mul_Neg1_int32_ssa(a int32) int32 {
+       return -1 * a
 }
 
 //go:noinline
-func sub_Neg32768_int16_ssa(a int16) int16 {
-       return -32768 - a
+func mul_int32_0_ssa(a int32) int32 {
+       return a * 0
 }
 
 //go:noinline
-func sub_int16_Neg32767_ssa(a int16) int16 {
-       return a - -32767
+func mul_0_int32_ssa(a int32) int32 {
+       return 0 * a
 }
 
 //go:noinline
-func sub_Neg32767_int16_ssa(a int16) int16 {
-       return -32767 - a
+func mul_int32_1_ssa(a int32) int32 {
+       return a * 1
 }
 
 //go:noinline
-func sub_int16_Neg1_ssa(a int16) int16 {
-       return a - -1
+func mul_1_int32_ssa(a int32) int32 {
+       return 1 * a
 }
 
 //go:noinline
-func sub_Neg1_int16_ssa(a int16) int16 {
-       return -1 - a
+func mul_int32_2147483647_ssa(a int32) int32 {
+       return a * 2147483647
 }
 
 //go:noinline
-func sub_int16_0_ssa(a int16) int16 {
-       return a - 0
+func mul_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 * a
 }
 
 //go:noinline
-func sub_0_int16_ssa(a int16) int16 {
-       return 0 - a
+func mod_int32_Neg2147483648_ssa(a int32) int32 {
+       return a % -2147483648
 }
 
 //go:noinline
-func sub_int16_1_ssa(a int16) int16 {
-       return a - 1
+func mod_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 % a
 }
 
 //go:noinline
-func sub_1_int16_ssa(a int16) int16 {
-       return 1 - a
+func mod_int32_Neg2147483647_ssa(a int32) int32 {
+       return a % -2147483647
 }
 
 //go:noinline
-func sub_int16_32766_ssa(a int16) int16 {
-       return a - 32766
+func mod_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 % a
 }
 
 //go:noinline
-func sub_32766_int16_ssa(a int16) int16 {
-       return 32766 - a
+func mod_int32_Neg1_ssa(a int32) int32 {
+       return a % -1
 }
 
 //go:noinline
-func sub_int16_32767_ssa(a int16) int16 {
-       return a - 32767
+func mod_Neg1_int32_ssa(a int32) int32 {
+       return -1 % a
 }
 
 //go:noinline
-func sub_32767_int16_ssa(a int16) int16 {
-       return 32767 - a
+func mod_0_int32_ssa(a int32) int32 {
+       return 0 % a
 }
 
 //go:noinline
-func div_int16_Neg32768_ssa(a int16) int16 {
-       return a / -32768
+func mod_int32_1_ssa(a int32) int32 {
+       return a % 1
 }
 
 //go:noinline
-func div_Neg32768_int16_ssa(a int16) int16 {
-       return -32768 / a
+func mod_1_int32_ssa(a int32) int32 {
+       return 1 % a
 }
 
 //go:noinline
-func div_int16_Neg32767_ssa(a int16) int16 {
-       return a / -32767
+func mod_int32_2147483647_ssa(a int32) int32 {
+       return a % 2147483647
 }
 
 //go:noinline
-func div_Neg32767_int16_ssa(a int16) int16 {
-       return -32767 / a
+func mod_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 % a
 }
 
 //go:noinline
-func div_int16_Neg1_ssa(a int16) int16 {
-       return a / -1
+func and_int32_Neg2147483648_ssa(a int32) int32 {
+       return a & -2147483648
 }
 
 //go:noinline
-func div_Neg1_int16_ssa(a int16) int16 {
-       return -1 / a
+func and_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 & a
 }
 
 //go:noinline
-func div_0_int16_ssa(a int16) int16 {
-       return 0 / a
+func and_int32_Neg2147483647_ssa(a int32) int32 {
+       return a & -2147483647
 }
 
 //go:noinline
-func div_int16_1_ssa(a int16) int16 {
-       return a / 1
+func and_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 & a
 }
 
 //go:noinline
-func div_1_int16_ssa(a int16) int16 {
-       return 1 / a
+func and_int32_Neg1_ssa(a int32) int32 {
+       return a & -1
 }
 
 //go:noinline
-func div_int16_32766_ssa(a int16) int16 {
-       return a / 32766
+func and_Neg1_int32_ssa(a int32) int32 {
+       return -1 & a
 }
 
 //go:noinline
-func div_32766_int16_ssa(a int16) int16 {
-       return 32766 / a
+func and_int32_0_ssa(a int32) int32 {
+       return a & 0
 }
 
 //go:noinline
-func div_int16_32767_ssa(a int16) int16 {
-       return a / 32767
+func and_0_int32_ssa(a int32) int32 {
+       return 0 & a
 }
 
 //go:noinline
-func div_32767_int16_ssa(a int16) int16 {
-       return 32767 / a
+func and_int32_1_ssa(a int32) int32 {
+       return a & 1
 }
 
 //go:noinline
-func mul_int16_Neg32768_ssa(a int16) int16 {
-       return a * -32768
+func and_1_int32_ssa(a int32) int32 {
+       return 1 & a
 }
 
 //go:noinline
-func mul_Neg32768_int16_ssa(a int16) int16 {
-       return -32768 * a
+func and_int32_2147483647_ssa(a int32) int32 {
+       return a & 2147483647
 }
 
 //go:noinline
-func mul_int16_Neg32767_ssa(a int16) int16 {
-       return a * -32767
+func and_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 & a
 }
 
 //go:noinline
-func mul_Neg32767_int16_ssa(a int16) int16 {
-       return -32767 * a
+func or_int32_Neg2147483648_ssa(a int32) int32 {
+       return a | -2147483648
 }
 
 //go:noinline
-func mul_int16_Neg1_ssa(a int16) int16 {
-       return a * -1
+func or_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 | a
 }
 
 //go:noinline
-func mul_Neg1_int16_ssa(a int16) int16 {
-       return -1 * a
+func or_int32_Neg2147483647_ssa(a int32) int32 {
+       return a | -2147483647
 }
 
 //go:noinline
-func mul_int16_0_ssa(a int16) int16 {
-       return a * 0
+func or_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 | a
 }
 
 //go:noinline
-func mul_0_int16_ssa(a int16) int16 {
-       return 0 * a
+func or_int32_Neg1_ssa(a int32) int32 {
+       return a | -1
 }
 
 //go:noinline
-func mul_int16_1_ssa(a int16) int16 {
-       return a * 1
+func or_Neg1_int32_ssa(a int32) int32 {
+       return -1 | a
 }
 
 //go:noinline
-func mul_1_int16_ssa(a int16) int16 {
-       return 1 * a
+func or_int32_0_ssa(a int32) int32 {
+       return a | 0
 }
 
 //go:noinline
-func mul_int16_32766_ssa(a int16) int16 {
-       return a * 32766
+func or_0_int32_ssa(a int32) int32 {
+       return 0 | a
 }
 
 //go:noinline
-func mul_32766_int16_ssa(a int16) int16 {
-       return 32766 * a
+func or_int32_1_ssa(a int32) int32 {
+       return a | 1
 }
 
 //go:noinline
-func mul_int16_32767_ssa(a int16) int16 {
-       return a * 32767
+func or_1_int32_ssa(a int32) int32 {
+       return 1 | a
 }
 
 //go:noinline
-func mul_32767_int16_ssa(a int16) int16 {
-       return 32767 * a
+func or_int32_2147483647_ssa(a int32) int32 {
+       return a | 2147483647
 }
 
 //go:noinline
-func mod_int16_Neg32768_ssa(a int16) int16 {
-       return a % -32768
+func or_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 | a
 }
 
 //go:noinline
-func mod_Neg32768_int16_ssa(a int16) int16 {
-       return -32768 % a
+func xor_int32_Neg2147483648_ssa(a int32) int32 {
+       return a ^ -2147483648
 }
 
 //go:noinline
-func mod_int16_Neg32767_ssa(a int16) int16 {
-       return a % -32767
+func xor_Neg2147483648_int32_ssa(a int32) int32 {
+       return -2147483648 ^ a
 }
 
 //go:noinline
-func mod_Neg32767_int16_ssa(a int16) int16 {
-       return -32767 % a
+func xor_int32_Neg2147483647_ssa(a int32) int32 {
+       return a ^ -2147483647
 }
 
 //go:noinline
-func mod_int16_Neg1_ssa(a int16) int16 {
-       return a % -1
+func xor_Neg2147483647_int32_ssa(a int32) int32 {
+       return -2147483647 ^ a
 }
 
 //go:noinline
-func mod_Neg1_int16_ssa(a int16) int16 {
-       return -1 % a
+func xor_int32_Neg1_ssa(a int32) int32 {
+       return a ^ -1
 }
 
 //go:noinline
-func mod_0_int16_ssa(a int16) int16 {
-       return 0 % a
+func xor_Neg1_int32_ssa(a int32) int32 {
+       return -1 ^ a
 }
 
 //go:noinline
-func mod_int16_1_ssa(a int16) int16 {
-       return a % 1
+func xor_int32_0_ssa(a int32) int32 {
+       return a ^ 0
 }
 
 //go:noinline
-func mod_1_int16_ssa(a int16) int16 {
-       return 1 % a
+func xor_0_int32_ssa(a int32) int32 {
+       return 0 ^ a
 }
 
 //go:noinline
-func mod_int16_32766_ssa(a int16) int16 {
-       return a % 32766
+func xor_int32_1_ssa(a int32) int32 {
+       return a ^ 1
 }
 
 //go:noinline
-func mod_32766_int16_ssa(a int16) int16 {
-       return 32766 % a
+func xor_1_int32_ssa(a int32) int32 {
+       return 1 ^ a
 }
 
 //go:noinline
-func mod_int16_32767_ssa(a int16) int16 {
-       return a % 32767
+func xor_int32_2147483647_ssa(a int32) int32 {
+       return a ^ 2147483647
 }
 
 //go:noinline
-func mod_32767_int16_ssa(a int16) int16 {
-       return 32767 % a
+func xor_2147483647_int32_ssa(a int32) int32 {
+       return 2147483647 ^ a
 }
 
 //go:noinline
-func add_uint8_0_ssa(a uint8) uint8 {
+func add_uint16_0_ssa(a uint16) uint16 {
        return a + 0
 }
 
 //go:noinline
-func add_0_uint8_ssa(a uint8) uint8 {
+func add_0_uint16_ssa(a uint16) uint16 {
        return 0 + a
 }
 
 //go:noinline
-func add_uint8_1_ssa(a uint8) uint8 {
+func add_uint16_1_ssa(a uint16) uint16 {
        return a + 1
 }
 
 //go:noinline
-func add_1_uint8_ssa(a uint8) uint8 {
+func add_1_uint16_ssa(a uint16) uint16 {
        return 1 + a
 }
 
 //go:noinline
-func add_uint8_255_ssa(a uint8) uint8 {
-       return a + 255
+func add_uint16_65535_ssa(a uint16) uint16 {
+       return a + 65535
 }
 
 //go:noinline
-func add_255_uint8_ssa(a uint8) uint8 {
-       return 255 + a
+func add_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 + a
 }
 
 //go:noinline
-func sub_uint8_0_ssa(a uint8) uint8 {
+func sub_uint16_0_ssa(a uint16) uint16 {
        return a - 0
 }
 
 //go:noinline
-func sub_0_uint8_ssa(a uint8) uint8 {
+func sub_0_uint16_ssa(a uint16) uint16 {
        return 0 - a
 }
 
 //go:noinline
-func sub_uint8_1_ssa(a uint8) uint8 {
+func sub_uint16_1_ssa(a uint16) uint16 {
        return a - 1
 }
 
 //go:noinline
-func sub_1_uint8_ssa(a uint8) uint8 {
+func sub_1_uint16_ssa(a uint16) uint16 {
        return 1 - a
 }
 
 //go:noinline
-func sub_uint8_255_ssa(a uint8) uint8 {
-       return a - 255
+func sub_uint16_65535_ssa(a uint16) uint16 {
+       return a - 65535
 }
 
 //go:noinline
-func sub_255_uint8_ssa(a uint8) uint8 {
-       return 255 - a
+func sub_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 - a
 }
 
 //go:noinline
-func div_0_uint8_ssa(a uint8) uint8 {
+func div_0_uint16_ssa(a uint16) uint16 {
        return 0 / a
 }
 
 //go:noinline
-func div_uint8_1_ssa(a uint8) uint8 {
+func div_uint16_1_ssa(a uint16) uint16 {
        return a / 1
 }
 
 //go:noinline
-func div_1_uint8_ssa(a uint8) uint8 {
+func div_1_uint16_ssa(a uint16) uint16 {
        return 1 / a
 }
 
 //go:noinline
-func div_uint8_255_ssa(a uint8) uint8 {
-       return a / 255
+func div_uint16_65535_ssa(a uint16) uint16 {
+       return a / 65535
 }
 
 //go:noinline
-func div_255_uint8_ssa(a uint8) uint8 {
-       return 255 / a
+func div_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 / a
 }
 
 //go:noinline
-func mul_uint8_0_ssa(a uint8) uint8 {
+func mul_uint16_0_ssa(a uint16) uint16 {
        return a * 0
 }
 
 //go:noinline
-func mul_0_uint8_ssa(a uint8) uint8 {
+func mul_0_uint16_ssa(a uint16) uint16 {
        return 0 * a
 }
 
 //go:noinline
-func mul_uint8_1_ssa(a uint8) uint8 {
+func mul_uint16_1_ssa(a uint16) uint16 {
        return a * 1
 }
 
 //go:noinline
-func mul_1_uint8_ssa(a uint8) uint8 {
+func mul_1_uint16_ssa(a uint16) uint16 {
        return 1 * a
 }
 
 //go:noinline
-func mul_uint8_255_ssa(a uint8) uint8 {
-       return a * 255
+func mul_uint16_65535_ssa(a uint16) uint16 {
+       return a * 65535
 }
 
 //go:noinline
-func mul_255_uint8_ssa(a uint8) uint8 {
-       return 255 * a
+func mul_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 * a
 }
 
 //go:noinline
-func lsh_uint8_0_ssa(a uint8) uint8 {
+func lsh_uint16_0_ssa(a uint16) uint16 {
        return a << 0
 }
 
 //go:noinline
-func lsh_0_uint8_ssa(a uint8) uint8 {
+func lsh_0_uint16_ssa(a uint16) uint16 {
        return 0 << a
 }
 
 //go:noinline
-func lsh_uint8_1_ssa(a uint8) uint8 {
+func lsh_uint16_1_ssa(a uint16) uint16 {
        return a << 1
 }
 
 //go:noinline
-func lsh_1_uint8_ssa(a uint8) uint8 {
+func lsh_1_uint16_ssa(a uint16) uint16 {
        return 1 << a
 }
 
 //go:noinline
-func lsh_uint8_255_ssa(a uint8) uint8 {
-       return a << 255
+func lsh_uint16_65535_ssa(a uint16) uint16 {
+       return a << 65535
 }
 
 //go:noinline
-func lsh_255_uint8_ssa(a uint8) uint8 {
-       return 255 << a
+func lsh_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 << a
 }
 
 //go:noinline
-func rsh_uint8_0_ssa(a uint8) uint8 {
+func rsh_uint16_0_ssa(a uint16) uint16 {
        return a >> 0
 }
 
 //go:noinline
-func rsh_0_uint8_ssa(a uint8) uint8 {
+func rsh_0_uint16_ssa(a uint16) uint16 {
        return 0 >> a
 }
 
 //go:noinline
-func rsh_uint8_1_ssa(a uint8) uint8 {
+func rsh_uint16_1_ssa(a uint16) uint16 {
        return a >> 1
 }
 
 //go:noinline
-func rsh_1_uint8_ssa(a uint8) uint8 {
+func rsh_1_uint16_ssa(a uint16) uint16 {
        return 1 >> a
 }
 
 //go:noinline
-func rsh_uint8_255_ssa(a uint8) uint8 {
-       return a >> 255
+func rsh_uint16_65535_ssa(a uint16) uint16 {
+       return a >> 65535
 }
 
 //go:noinline
-func rsh_255_uint8_ssa(a uint8) uint8 {
-       return 255 >> a
+func rsh_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 >> a
 }
 
 //go:noinline
-func mod_0_uint8_ssa(a uint8) uint8 {
+func mod_0_uint16_ssa(a uint16) uint16 {
        return 0 % a
 }
 
 //go:noinline
-func mod_uint8_1_ssa(a uint8) uint8 {
+func mod_uint16_1_ssa(a uint16) uint16 {
        return a % 1
 }
 
 //go:noinline
-func mod_1_uint8_ssa(a uint8) uint8 {
+func mod_1_uint16_ssa(a uint16) uint16 {
        return 1 % a
 }
 
 //go:noinline
-func mod_uint8_255_ssa(a uint8) uint8 {
-       return a % 255
+func mod_uint16_65535_ssa(a uint16) uint16 {
+       return a % 65535
 }
 
 //go:noinline
-func mod_255_uint8_ssa(a uint8) uint8 {
-       return 255 % a
+func mod_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 % a
 }
 
 //go:noinline
-func add_int8_Neg128_ssa(a int8) int8 {
-       return a + -128
+func and_uint16_0_ssa(a uint16) uint16 {
+       return a & 0
 }
 
 //go:noinline
-func add_Neg128_int8_ssa(a int8) int8 {
-       return -128 + a
+func and_0_uint16_ssa(a uint16) uint16 {
+       return 0 & a
 }
 
 //go:noinline
-func add_int8_Neg127_ssa(a int8) int8 {
-       return a + -127
+func and_uint16_1_ssa(a uint16) uint16 {
+       return a & 1
 }
 
 //go:noinline
-func add_Neg127_int8_ssa(a int8) int8 {
-       return -127 + a
+func and_1_uint16_ssa(a uint16) uint16 {
+       return 1 & a
 }
 
 //go:noinline
-func add_int8_Neg1_ssa(a int8) int8 {
-       return a + -1
+func and_uint16_65535_ssa(a uint16) uint16 {
+       return a & 65535
 }
 
 //go:noinline
-func add_Neg1_int8_ssa(a int8) int8 {
-       return -1 + a
+func and_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 & a
 }
 
 //go:noinline
-func add_int8_0_ssa(a int8) int8 {
-       return a + 0
+func or_uint16_0_ssa(a uint16) uint16 {
+       return a | 0
 }
 
 //go:noinline
-func add_0_int8_ssa(a int8) int8 {
-       return 0 + a
+func or_0_uint16_ssa(a uint16) uint16 {
+       return 0 | a
 }
 
 //go:noinline
-func add_int8_1_ssa(a int8) int8 {
-       return a + 1
+func or_uint16_1_ssa(a uint16) uint16 {
+       return a | 1
 }
 
 //go:noinline
-func add_1_int8_ssa(a int8) int8 {
-       return 1 + a
+func or_1_uint16_ssa(a uint16) uint16 {
+       return 1 | a
 }
 
 //go:noinline
-func add_int8_126_ssa(a int8) int8 {
-       return a + 126
+func or_uint16_65535_ssa(a uint16) uint16 {
+       return a | 65535
 }
 
 //go:noinline
-func add_126_int8_ssa(a int8) int8 {
-       return 126 + a
+func or_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 | a
 }
 
 //go:noinline
-func add_int8_127_ssa(a int8) int8 {
-       return a + 127
+func xor_uint16_0_ssa(a uint16) uint16 {
+       return a ^ 0
 }
 
 //go:noinline
-func add_127_int8_ssa(a int8) int8 {
-       return 127 + a
+func xor_0_uint16_ssa(a uint16) uint16 {
+       return 0 ^ a
 }
 
 //go:noinline
-func sub_int8_Neg128_ssa(a int8) int8 {
-       return a - -128
+func xor_uint16_1_ssa(a uint16) uint16 {
+       return a ^ 1
 }
 
 //go:noinline
-func sub_Neg128_int8_ssa(a int8) int8 {
-       return -128 - a
+func xor_1_uint16_ssa(a uint16) uint16 {
+       return 1 ^ a
 }
 
 //go:noinline
-func sub_int8_Neg127_ssa(a int8) int8 {
-       return a - -127
+func xor_uint16_65535_ssa(a uint16) uint16 {
+       return a ^ 65535
 }
 
 //go:noinline
-func sub_Neg127_int8_ssa(a int8) int8 {
-       return -127 - a
+func xor_65535_uint16_ssa(a uint16) uint16 {
+       return 65535 ^ a
 }
 
 //go:noinline
-func sub_int8_Neg1_ssa(a int8) int8 {
-       return a - -1
+func add_int16_Neg32768_ssa(a int16) int16 {
+       return a + -32768
 }
 
 //go:noinline
-func sub_Neg1_int8_ssa(a int8) int8 {
-       return -1 - a
+func add_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 + a
 }
 
 //go:noinline
-func sub_int8_0_ssa(a int8) int8 {
-       return a - 0
+func add_int16_Neg32767_ssa(a int16) int16 {
+       return a + -32767
 }
 
 //go:noinline
-func sub_0_int8_ssa(a int8) int8 {
-       return 0 - a
+func add_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 + a
 }
 
 //go:noinline
-func sub_int8_1_ssa(a int8) int8 {
-       return a 1
+func add_int16_Neg1_ssa(a int16) int16 {
+       return a + -1
 }
 
 //go:noinline
-func sub_1_int8_ssa(a int8) int8 {
-       return 1 - a
+func add_Neg1_int16_ssa(a int16) int16 {
+       return -1 + a
 }
 
 //go:noinline
-func sub_int8_126_ssa(a int8) int8 {
-       return a - 126
+func add_int16_0_ssa(a int16) int16 {
+       return a + 0
 }
 
 //go:noinline
-func sub_126_int8_ssa(a int8) int8 {
-       return 126 - a
+func add_0_int16_ssa(a int16) int16 {
+       return 0 + a
 }
 
 //go:noinline
-func sub_int8_127_ssa(a int8) int8 {
-       return a - 127
+func add_int16_1_ssa(a int16) int16 {
+       return a + 1
 }
 
 //go:noinline
-func sub_127_int8_ssa(a int8) int8 {
-       return 127 - a
+func add_1_int16_ssa(a int16) int16 {
+       return 1 + a
 }
 
 //go:noinline
-func div_int8_Neg128_ssa(a int8) int8 {
-       return a / -128
+func add_int16_32766_ssa(a int16) int16 {
+       return a + 32766
 }
 
 //go:noinline
-func div_Neg128_int8_ssa(a int8) int8 {
-       return -128 / a
+func add_32766_int16_ssa(a int16) int16 {
+       return 32766 + a
 }
 
 //go:noinline
-func div_int8_Neg127_ssa(a int8) int8 {
-       return a / -127
+func add_int16_32767_ssa(a int16) int16 {
+       return a + 32767
 }
 
 //go:noinline
-func div_Neg127_int8_ssa(a int8) int8 {
-       return -127 / a
+func add_32767_int16_ssa(a int16) int16 {
+       return 32767 + a
 }
 
 //go:noinline
-func div_int8_Neg1_ssa(a int8) int8 {
-       return a / -1
+func sub_int16_Neg32768_ssa(a int16) int16 {
+       return a - -32768
 }
 
 //go:noinline
-func div_Neg1_int8_ssa(a int8) int8 {
-       return -1 / a
+func sub_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 - a
 }
 
 //go:noinline
-func div_0_int8_ssa(a int8) int8 {
-       return 0 / a
+func sub_int16_Neg32767_ssa(a int16) int16 {
+       return a - -32767
 }
 
 //go:noinline
-func div_int8_1_ssa(a int8) int8 {
-       return a / 1
+func sub_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 - a
 }
 
 //go:noinline
-func div_1_int8_ssa(a int8) int8 {
-       return 1 / a
+func sub_int16_Neg1_ssa(a int16) int16 {
+       return a - -1
 }
 
 //go:noinline
-func div_int8_126_ssa(a int8) int8 {
-       return a / 126
+func sub_Neg1_int16_ssa(a int16) int16 {
+       return -1 - a
 }
 
 //go:noinline
-func div_126_int8_ssa(a int8) int8 {
-       return 126 / a
+func sub_int16_0_ssa(a int16) int16 {
+       return a - 0
 }
 
 //go:noinline
-func div_int8_127_ssa(a int8) int8 {
-       return a / 127
+func sub_0_int16_ssa(a int16) int16 {
+       return 0 - a
 }
 
 //go:noinline
-func div_127_int8_ssa(a int8) int8 {
-       return 127 / a
+func sub_int16_1_ssa(a int16) int16 {
+       return a - 1
 }
 
 //go:noinline
-func mul_int8_Neg128_ssa(a int8) int8 {
-       return a * -128
+func sub_1_int16_ssa(a int16) int16 {
+       return 1 - a
 }
 
 //go:noinline
-func mul_Neg128_int8_ssa(a int8) int8 {
-       return -128 * a
+func sub_int16_32766_ssa(a int16) int16 {
+       return a - 32766
 }
 
 //go:noinline
-func mul_int8_Neg127_ssa(a int8) int8 {
-       return a * -127
+func sub_32766_int16_ssa(a int16) int16 {
+       return 32766 - a
 }
 
 //go:noinline
-func mul_Neg127_int8_ssa(a int8) int8 {
-       return -127 * a
+func sub_int16_32767_ssa(a int16) int16 {
+       return a - 32767
 }
 
 //go:noinline
-func mul_int8_Neg1_ssa(a int8) int8 {
-       return a * -1
+func sub_32767_int16_ssa(a int16) int16 {
+       return 32767 - a
 }
 
 //go:noinline
-func mul_Neg1_int8_ssa(a int8) int8 {
-       return -1 * a
+func div_int16_Neg32768_ssa(a int16) int16 {
+       return a / -32768
 }
 
 //go:noinline
-func mul_int8_0_ssa(a int8) int8 {
-       return a * 0
+func div_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 / a
 }
 
 //go:noinline
-func mul_0_int8_ssa(a int8) int8 {
-       return 0 * a
+func div_int16_Neg32767_ssa(a int16) int16 {
+       return a / -32767
 }
 
 //go:noinline
-func mul_int8_1_ssa(a int8) int8 {
-       return a * 1
+func div_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 / a
 }
 
 //go:noinline
-func mul_1_int8_ssa(a int8) int8 {
-       return 1 * a
+func div_int16_Neg1_ssa(a int16) int16 {
+       return a / -1
 }
 
 //go:noinline
-func mul_int8_126_ssa(a int8) int8 {
-       return a * 126
+func div_Neg1_int16_ssa(a int16) int16 {
+       return -1 / a
 }
 
 //go:noinline
-func mul_126_int8_ssa(a int8) int8 {
-       return 126 * a
+func div_0_int16_ssa(a int16) int16 {
+       return 0 / a
 }
 
 //go:noinline
-func mul_int8_127_ssa(a int8) int8 {
-       return a * 127
+func div_int16_1_ssa(a int16) int16 {
+       return a / 1
 }
 
 //go:noinline
-func mul_127_int8_ssa(a int8) int8 {
-       return 127 * a
+func div_1_int16_ssa(a int16) int16 {
+       return 1 / a
 }
 
 //go:noinline
-func mod_int8_Neg128_ssa(a int8) int8 {
-       return a % -128
+func div_int16_32766_ssa(a int16) int16 {
+       return a / 32766
 }
 
 //go:noinline
-func mod_Neg128_int8_ssa(a int8) int8 {
-       return -128 % a
+func div_32766_int16_ssa(a int16) int16 {
+       return 32766 / a
 }
 
 //go:noinline
-func mod_int8_Neg127_ssa(a int8) int8 {
-       return a % -127
+func div_int16_32767_ssa(a int16) int16 {
+       return a / 32767
 }
 
 //go:noinline
-func mod_Neg127_int8_ssa(a int8) int8 {
-       return -127 % a
+func div_32767_int16_ssa(a int16) int16 {
+       return 32767 / a
 }
 
 //go:noinline
-func mod_int8_Neg1_ssa(a int8) int8 {
-       return a % -1
+func mul_int16_Neg32768_ssa(a int16) int16 {
+       return a * -32768
 }
 
 //go:noinline
-func mod_Neg1_int8_ssa(a int8) int8 {
-       return -1 % a
+func mul_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 * a
 }
 
 //go:noinline
-func mod_0_int8_ssa(a int8) int8 {
-       return 0 % a
+func mul_int16_Neg32767_ssa(a int16) int16 {
+       return a * -32767
 }
 
 //go:noinline
-func mod_int8_1_ssa(a int8) int8 {
-       return a % 1
+func mul_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 * a
+}
+
+//go:noinline
+func mul_int16_Neg1_ssa(a int16) int16 {
+       return a * -1
+}
+
+//go:noinline
+func mul_Neg1_int16_ssa(a int16) int16 {
+       return -1 * a
+}
+
+//go:noinline
+func mul_int16_0_ssa(a int16) int16 {
+       return a * 0
+}
+
+//go:noinline
+func mul_0_int16_ssa(a int16) int16 {
+       return 0 * a
+}
+
+//go:noinline
+func mul_int16_1_ssa(a int16) int16 {
+       return a * 1
+}
+
+//go:noinline
+func mul_1_int16_ssa(a int16) int16 {
+       return 1 * a
+}
+
+//go:noinline
+func mul_int16_32766_ssa(a int16) int16 {
+       return a * 32766
+}
+
+//go:noinline
+func mul_32766_int16_ssa(a int16) int16 {
+       return 32766 * a
+}
+
+//go:noinline
+func mul_int16_32767_ssa(a int16) int16 {
+       return a * 32767
+}
+
+//go:noinline
+func mul_32767_int16_ssa(a int16) int16 {
+       return 32767 * a
+}
+
+//go:noinline
+func mod_int16_Neg32768_ssa(a int16) int16 {
+       return a % -32768
+}
+
+//go:noinline
+func mod_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 % a
+}
+
+//go:noinline
+func mod_int16_Neg32767_ssa(a int16) int16 {
+       return a % -32767
+}
+
+//go:noinline
+func mod_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 % a
+}
+
+//go:noinline
+func mod_int16_Neg1_ssa(a int16) int16 {
+       return a % -1
+}
+
+//go:noinline
+func mod_Neg1_int16_ssa(a int16) int16 {
+       return -1 % a
+}
+
+//go:noinline
+func mod_0_int16_ssa(a int16) int16 {
+       return 0 % a
+}
+
+//go:noinline
+func mod_int16_1_ssa(a int16) int16 {
+       return a % 1
+}
+
+//go:noinline
+func mod_1_int16_ssa(a int16) int16 {
+       return 1 % a
+}
+
+//go:noinline
+func mod_int16_32766_ssa(a int16) int16 {
+       return a % 32766
+}
+
+//go:noinline
+func mod_32766_int16_ssa(a int16) int16 {
+       return 32766 % a
+}
+
+//go:noinline
+func mod_int16_32767_ssa(a int16) int16 {
+       return a % 32767
+}
+
+//go:noinline
+func mod_32767_int16_ssa(a int16) int16 {
+       return 32767 % a
+}
+
+//go:noinline
+func and_int16_Neg32768_ssa(a int16) int16 {
+       return a & -32768
+}
+
+//go:noinline
+func and_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 & a
+}
+
+//go:noinline
+func and_int16_Neg32767_ssa(a int16) int16 {
+       return a & -32767
+}
+
+//go:noinline
+func and_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 & a
+}
+
+//go:noinline
+func and_int16_Neg1_ssa(a int16) int16 {
+       return a & -1
+}
+
+//go:noinline
+func and_Neg1_int16_ssa(a int16) int16 {
+       return -1 & a
+}
+
+//go:noinline
+func and_int16_0_ssa(a int16) int16 {
+       return a & 0
+}
+
+//go:noinline
+func and_0_int16_ssa(a int16) int16 {
+       return 0 & a
+}
+
+//go:noinline
+func and_int16_1_ssa(a int16) int16 {
+       return a & 1
+}
+
+//go:noinline
+func and_1_int16_ssa(a int16) int16 {
+       return 1 & a
+}
+
+//go:noinline
+func and_int16_32766_ssa(a int16) int16 {
+       return a & 32766
+}
+
+//go:noinline
+func and_32766_int16_ssa(a int16) int16 {
+       return 32766 & a
+}
+
+//go:noinline
+func and_int16_32767_ssa(a int16) int16 {
+       return a & 32767
+}
+
+//go:noinline
+func and_32767_int16_ssa(a int16) int16 {
+       return 32767 & a
+}
+
+//go:noinline
+func or_int16_Neg32768_ssa(a int16) int16 {
+       return a | -32768
+}
+
+//go:noinline
+func or_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 | a
+}
+
+//go:noinline
+func or_int16_Neg32767_ssa(a int16) int16 {
+       return a | -32767
+}
+
+//go:noinline
+func or_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 | a
+}
+
+//go:noinline
+func or_int16_Neg1_ssa(a int16) int16 {
+       return a | -1
+}
+
+//go:noinline
+func or_Neg1_int16_ssa(a int16) int16 {
+       return -1 | a
+}
+
+//go:noinline
+func or_int16_0_ssa(a int16) int16 {
+       return a | 0
+}
+
+//go:noinline
+func or_0_int16_ssa(a int16) int16 {
+       return 0 | a
+}
+
+//go:noinline
+func or_int16_1_ssa(a int16) int16 {
+       return a | 1
+}
+
+//go:noinline
+func or_1_int16_ssa(a int16) int16 {
+       return 1 | a
+}
+
+//go:noinline
+func or_int16_32766_ssa(a int16) int16 {
+       return a | 32766
 }
 
-//go:noinline
-func mod_1_int8_ssa(a int8) int8 {
-       return 1 % a
-}
+//go:noinline
+func or_32766_int16_ssa(a int16) int16 {
+       return 32766 | a
+}
+
+//go:noinline
+func or_int16_32767_ssa(a int16) int16 {
+       return a | 32767
+}
+
+//go:noinline
+func or_32767_int16_ssa(a int16) int16 {
+       return 32767 | a
+}
+
+//go:noinline
+func xor_int16_Neg32768_ssa(a int16) int16 {
+       return a ^ -32768
+}
+
+//go:noinline
+func xor_Neg32768_int16_ssa(a int16) int16 {
+       return -32768 ^ a
+}
+
+//go:noinline
+func xor_int16_Neg32767_ssa(a int16) int16 {
+       return a ^ -32767
+}
+
+//go:noinline
+func xor_Neg32767_int16_ssa(a int16) int16 {
+       return -32767 ^ a
+}
+
+//go:noinline
+func xor_int16_Neg1_ssa(a int16) int16 {
+       return a ^ -1
+}
+
+//go:noinline
+func xor_Neg1_int16_ssa(a int16) int16 {
+       return -1 ^ a
+}
+
+//go:noinline
+func xor_int16_0_ssa(a int16) int16 {
+       return a ^ 0
+}
+
+//go:noinline
+func xor_0_int16_ssa(a int16) int16 {
+       return 0 ^ a
+}
+
+//go:noinline
+func xor_int16_1_ssa(a int16) int16 {
+       return a ^ 1
+}
+
+//go:noinline
+func xor_1_int16_ssa(a int16) int16 {
+       return 1 ^ a
+}
+
+//go:noinline
+func xor_int16_32766_ssa(a int16) int16 {
+       return a ^ 32766
+}
+
+//go:noinline
+func xor_32766_int16_ssa(a int16) int16 {
+       return 32766 ^ a
+}
+
+//go:noinline
+func xor_int16_32767_ssa(a int16) int16 {
+       return a ^ 32767
+}
+
+//go:noinline
+func xor_32767_int16_ssa(a int16) int16 {
+       return 32767 ^ a
+}
+
+//go:noinline
+func add_uint8_0_ssa(a uint8) uint8 {
+       return a + 0
+}
+
+//go:noinline
+func add_0_uint8_ssa(a uint8) uint8 {
+       return 0 + a
+}
+
+//go:noinline
+func add_uint8_1_ssa(a uint8) uint8 {
+       return a + 1
+}
+
+//go:noinline
+func add_1_uint8_ssa(a uint8) uint8 {
+       return 1 + a
+}
+
+//go:noinline
+func add_uint8_255_ssa(a uint8) uint8 {
+       return a + 255
+}
+
+//go:noinline
+func add_255_uint8_ssa(a uint8) uint8 {
+       return 255 + a
+}
+
+//go:noinline
+func sub_uint8_0_ssa(a uint8) uint8 {
+       return a - 0
+}
+
+//go:noinline
+func sub_0_uint8_ssa(a uint8) uint8 {
+       return 0 - a
+}
+
+//go:noinline
+func sub_uint8_1_ssa(a uint8) uint8 {
+       return a - 1
+}
+
+//go:noinline
+func sub_1_uint8_ssa(a uint8) uint8 {
+       return 1 - a
+}
+
+//go:noinline
+func sub_uint8_255_ssa(a uint8) uint8 {
+       return a - 255
+}
+
+//go:noinline
+func sub_255_uint8_ssa(a uint8) uint8 {
+       return 255 - a
+}
+
+//go:noinline
+func div_0_uint8_ssa(a uint8) uint8 {
+       return 0 / a
+}
+
+//go:noinline
+func div_uint8_1_ssa(a uint8) uint8 {
+       return a / 1
+}
+
+//go:noinline
+func div_1_uint8_ssa(a uint8) uint8 {
+       return 1 / a
+}
+
+//go:noinline
+func div_uint8_255_ssa(a uint8) uint8 {
+       return a / 255
+}
+
+//go:noinline
+func div_255_uint8_ssa(a uint8) uint8 {
+       return 255 / a
+}
+
+//go:noinline
+func mul_uint8_0_ssa(a uint8) uint8 {
+       return a * 0
+}
+
+//go:noinline
+func mul_0_uint8_ssa(a uint8) uint8 {
+       return 0 * a
+}
+
+//go:noinline
+func mul_uint8_1_ssa(a uint8) uint8 {
+       return a * 1
+}
+
+//go:noinline
+func mul_1_uint8_ssa(a uint8) uint8 {
+       return 1 * a
+}
+
+//go:noinline
+func mul_uint8_255_ssa(a uint8) uint8 {
+       return a * 255
+}
+
+//go:noinline
+func mul_255_uint8_ssa(a uint8) uint8 {
+       return 255 * a
+}
+
+//go:noinline
+func lsh_uint8_0_ssa(a uint8) uint8 {
+       return a << 0
+}
+
+//go:noinline
+func lsh_0_uint8_ssa(a uint8) uint8 {
+       return 0 << a
+}
+
+//go:noinline
+func lsh_uint8_1_ssa(a uint8) uint8 {
+       return a << 1
+}
+
+//go:noinline
+func lsh_1_uint8_ssa(a uint8) uint8 {
+       return 1 << a
+}
+
+//go:noinline
+func lsh_uint8_255_ssa(a uint8) uint8 {
+       return a << 255
+}
+
+//go:noinline
+func lsh_255_uint8_ssa(a uint8) uint8 {
+       return 255 << a
+}
+
+//go:noinline
+func rsh_uint8_0_ssa(a uint8) uint8 {
+       return a >> 0
+}
+
+//go:noinline
+func rsh_0_uint8_ssa(a uint8) uint8 {
+       return 0 >> a
+}
+
+//go:noinline
+func rsh_uint8_1_ssa(a uint8) uint8 {
+       return a >> 1
+}
+
+//go:noinline
+func rsh_1_uint8_ssa(a uint8) uint8 {
+       return 1 >> a
+}
+
+//go:noinline
+func rsh_uint8_255_ssa(a uint8) uint8 {
+       return a >> 255
+}
+
+//go:noinline
+func rsh_255_uint8_ssa(a uint8) uint8 {
+       return 255 >> a
+}
+
+//go:noinline
+func mod_0_uint8_ssa(a uint8) uint8 {
+       return 0 % a
+}
+
+//go:noinline
+func mod_uint8_1_ssa(a uint8) uint8 {
+       return a % 1
+}
+
+//go:noinline
+func mod_1_uint8_ssa(a uint8) uint8 {
+       return 1 % a
+}
+
+//go:noinline
+func mod_uint8_255_ssa(a uint8) uint8 {
+       return a % 255
+}
+
+//go:noinline
+func mod_255_uint8_ssa(a uint8) uint8 {
+       return 255 % a
+}
+
+//go:noinline
+func and_uint8_0_ssa(a uint8) uint8 {
+       return a & 0
+}
+
+//go:noinline
+func and_0_uint8_ssa(a uint8) uint8 {
+       return 0 & a
+}
+
+//go:noinline
+func and_uint8_1_ssa(a uint8) uint8 {
+       return a & 1
+}
+
+//go:noinline
+func and_1_uint8_ssa(a uint8) uint8 {
+       return 1 & a
+}
+
+//go:noinline
+func and_uint8_255_ssa(a uint8) uint8 {
+       return a & 255
+}
+
+//go:noinline
+func and_255_uint8_ssa(a uint8) uint8 {
+       return 255 & a
+}
+
+//go:noinline
+func or_uint8_0_ssa(a uint8) uint8 {
+       return a | 0
+}
+
+//go:noinline
+func or_0_uint8_ssa(a uint8) uint8 {
+       return 0 | a
+}
+
+//go:noinline
+func or_uint8_1_ssa(a uint8) uint8 {
+       return a | 1
+}
+
+//go:noinline
+func or_1_uint8_ssa(a uint8) uint8 {
+       return 1 | a
+}
+
+//go:noinline
+func or_uint8_255_ssa(a uint8) uint8 {
+       return a | 255
+}
+
+//go:noinline
+func or_255_uint8_ssa(a uint8) uint8 {
+       return 255 | a
+}
+
+//go:noinline
+func xor_uint8_0_ssa(a uint8) uint8 {
+       return a ^ 0
+}
+
+//go:noinline
+func xor_0_uint8_ssa(a uint8) uint8 {
+       return 0 ^ a
+}
+
+//go:noinline
+func xor_uint8_1_ssa(a uint8) uint8 {
+       return a ^ 1
+}
+
+//go:noinline
+func xor_1_uint8_ssa(a uint8) uint8 {
+       return 1 ^ a
+}
+
+//go:noinline
+func xor_uint8_255_ssa(a uint8) uint8 {
+       return a ^ 255
+}
+
+//go:noinline
+func xor_255_uint8_ssa(a uint8) uint8 {
+       return 255 ^ a
+}
+
+//go:noinline
+func add_int8_Neg128_ssa(a int8) int8 {
+       return a + -128
+}
+
+//go:noinline
+func add_Neg128_int8_ssa(a int8) int8 {
+       return -128 + a
+}
+
+//go:noinline
+func add_int8_Neg127_ssa(a int8) int8 {
+       return a + -127
+}
+
+//go:noinline
+func add_Neg127_int8_ssa(a int8) int8 {
+       return -127 + a
+}
+
+//go:noinline
+func add_int8_Neg1_ssa(a int8) int8 {
+       return a + -1
+}
+
+//go:noinline
+func add_Neg1_int8_ssa(a int8) int8 {
+       return -1 + a
+}
+
+//go:noinline
+func add_int8_0_ssa(a int8) int8 {
+       return a + 0
+}
+
+//go:noinline
+func add_0_int8_ssa(a int8) int8 {
+       return 0 + a
+}
+
+//go:noinline
+func add_int8_1_ssa(a int8) int8 {
+       return a + 1
+}
+
+//go:noinline
+func add_1_int8_ssa(a int8) int8 {
+       return 1 + a
+}
+
+//go:noinline
+func add_int8_126_ssa(a int8) int8 {
+       return a + 126
+}
+
+//go:noinline
+func add_126_int8_ssa(a int8) int8 {
+       return 126 + a
+}
+
+//go:noinline
+func add_int8_127_ssa(a int8) int8 {
+       return a + 127
+}
+
+//go:noinline
+func add_127_int8_ssa(a int8) int8 {
+       return 127 + a
+}
+
+//go:noinline
+func sub_int8_Neg128_ssa(a int8) int8 {
+       return a - -128
+}
+
+//go:noinline
+func sub_Neg128_int8_ssa(a int8) int8 {
+       return -128 - a
+}
+
+//go:noinline
+func sub_int8_Neg127_ssa(a int8) int8 {
+       return a - -127
+}
+
+//go:noinline
+func sub_Neg127_int8_ssa(a int8) int8 {
+       return -127 - a
+}
+
+//go:noinline
+func sub_int8_Neg1_ssa(a int8) int8 {
+       return a - -1
+}
+
+//go:noinline
+func sub_Neg1_int8_ssa(a int8) int8 {
+       return -1 - a
+}
+
+//go:noinline
+func sub_int8_0_ssa(a int8) int8 {
+       return a - 0
+}
+
+//go:noinline
+func sub_0_int8_ssa(a int8) int8 {
+       return 0 - a
+}
+
+//go:noinline
+func sub_int8_1_ssa(a int8) int8 {
+       return a - 1
+}
+
+//go:noinline
+func sub_1_int8_ssa(a int8) int8 {
+       return 1 - a
+}
+
+//go:noinline
+func sub_int8_126_ssa(a int8) int8 {
+       return a - 126
+}
+
+//go:noinline
+func sub_126_int8_ssa(a int8) int8 {
+       return 126 - a
+}
+
+//go:noinline
+func sub_int8_127_ssa(a int8) int8 {
+       return a - 127
+}
+
+//go:noinline
+func sub_127_int8_ssa(a int8) int8 {
+       return 127 - a
+}
+
+//go:noinline
+func div_int8_Neg128_ssa(a int8) int8 {
+       return a / -128
+}
+
+//go:noinline
+func div_Neg128_int8_ssa(a int8) int8 {
+       return -128 / a
+}
+
+//go:noinline
+func div_int8_Neg127_ssa(a int8) int8 {
+       return a / -127
+}
+
+//go:noinline
+func div_Neg127_int8_ssa(a int8) int8 {
+       return -127 / a
+}
+
+//go:noinline
+func div_int8_Neg1_ssa(a int8) int8 {
+       return a / -1
+}
+
+//go:noinline
+func div_Neg1_int8_ssa(a int8) int8 {
+       return -1 / a
+}
+
+//go:noinline
+func div_0_int8_ssa(a int8) int8 {
+       return 0 / a
+}
+
+//go:noinline
+func div_int8_1_ssa(a int8) int8 {
+       return a / 1
+}
+
+//go:noinline
+func div_1_int8_ssa(a int8) int8 {
+       return 1 / a
+}
+
+//go:noinline
+func div_int8_126_ssa(a int8) int8 {
+       return a / 126
+}
+
+//go:noinline
+func div_126_int8_ssa(a int8) int8 {
+       return 126 / a
+}
+
+//go:noinline
+func div_int8_127_ssa(a int8) int8 {
+       return a / 127
+}
+
+//go:noinline
+func div_127_int8_ssa(a int8) int8 {
+       return 127 / a
+}
+
+//go:noinline
+func mul_int8_Neg128_ssa(a int8) int8 {
+       return a * -128
+}
+
+//go:noinline
+func mul_Neg128_int8_ssa(a int8) int8 {
+       return -128 * a
+}
+
+//go:noinline
+func mul_int8_Neg127_ssa(a int8) int8 {
+       return a * -127
+}
+
+//go:noinline
+func mul_Neg127_int8_ssa(a int8) int8 {
+       return -127 * a
+}
+
+//go:noinline
+func mul_int8_Neg1_ssa(a int8) int8 {
+       return a * -1
+}
+
+//go:noinline
+func mul_Neg1_int8_ssa(a int8) int8 {
+       return -1 * a
+}
+
+//go:noinline
+func mul_int8_0_ssa(a int8) int8 {
+       return a * 0
+}
+
+//go:noinline
+func mul_0_int8_ssa(a int8) int8 {
+       return 0 * a
+}
+
+//go:noinline
+func mul_int8_1_ssa(a int8) int8 {
+       return a * 1
+}
+
+//go:noinline
+func mul_1_int8_ssa(a int8) int8 {
+       return 1 * a
+}
+
+//go:noinline
+func mul_int8_126_ssa(a int8) int8 {
+       return a * 126
+}
+
+//go:noinline
+func mul_126_int8_ssa(a int8) int8 {
+       return 126 * a
+}
+
+//go:noinline
+func mul_int8_127_ssa(a int8) int8 {
+       return a * 127
+}
+
+//go:noinline
+func mul_127_int8_ssa(a int8) int8 {
+       return 127 * a
+}
+
+//go:noinline
+func mod_int8_Neg128_ssa(a int8) int8 {
+       return a % -128
+}
+
+//go:noinline
+func mod_Neg128_int8_ssa(a int8) int8 {
+       return -128 % a
+}
+
+//go:noinline
+func mod_int8_Neg127_ssa(a int8) int8 {
+       return a % -127
+}
+
+//go:noinline
+func mod_Neg127_int8_ssa(a int8) int8 {
+       return -127 % a
+}
+
+//go:noinline
+func mod_int8_Neg1_ssa(a int8) int8 {
+       return a % -1
+}
+
+//go:noinline
+func mod_Neg1_int8_ssa(a int8) int8 {
+       return -1 % a
+}
+
+//go:noinline
+func mod_0_int8_ssa(a int8) int8 {
+       return 0 % a
+}
+
+//go:noinline
+func mod_int8_1_ssa(a int8) int8 {
+       return a % 1
+}
+
+//go:noinline
+func mod_1_int8_ssa(a int8) int8 {
+       return 1 % a
+}
+
+//go:noinline
+func mod_int8_126_ssa(a int8) int8 {
+       return a % 126
+}
+
+//go:noinline
+func mod_126_int8_ssa(a int8) int8 {
+       return 126 % a
+}
+
+//go:noinline
+func mod_int8_127_ssa(a int8) int8 {
+       return a % 127
+}
+
+//go:noinline
+func mod_127_int8_ssa(a int8) int8 {
+       return 127 % a
+}
+
+//go:noinline
+func and_int8_Neg128_ssa(a int8) int8 {
+       return a & -128
+}
+
+//go:noinline
+func and_Neg128_int8_ssa(a int8) int8 {
+       return -128 & a
+}
+
+//go:noinline
+func and_int8_Neg127_ssa(a int8) int8 {
+       return a & -127
+}
+
+//go:noinline
+func and_Neg127_int8_ssa(a int8) int8 {
+       return -127 & a
+}
+
+//go:noinline
+func and_int8_Neg1_ssa(a int8) int8 {
+       return a & -1
+}
+
+//go:noinline
+func and_Neg1_int8_ssa(a int8) int8 {
+       return -1 & a
+}
+
+//go:noinline
+func and_int8_0_ssa(a int8) int8 {
+       return a & 0
+}
+
+//go:noinline
+func and_0_int8_ssa(a int8) int8 {
+       return 0 & a
+}
+
+//go:noinline
+func and_int8_1_ssa(a int8) int8 {
+       return a & 1
+}
+
+//go:noinline
+func and_1_int8_ssa(a int8) int8 {
+       return 1 & a
+}
+
+//go:noinline
+func and_int8_126_ssa(a int8) int8 {
+       return a & 126
+}
+
+//go:noinline
+func and_126_int8_ssa(a int8) int8 {
+       return 126 & a
+}
+
+//go:noinline
+func and_int8_127_ssa(a int8) int8 {
+       return a & 127
+}
+
+//go:noinline
+func and_127_int8_ssa(a int8) int8 {
+       return 127 & a
+}
+
+//go:noinline
+func or_int8_Neg128_ssa(a int8) int8 {
+       return a | -128
+}
+
+//go:noinline
+func or_Neg128_int8_ssa(a int8) int8 {
+       return -128 | a
+}
+
+//go:noinline
+func or_int8_Neg127_ssa(a int8) int8 {
+       return a | -127
+}
+
+//go:noinline
+func or_Neg127_int8_ssa(a int8) int8 {
+       return -127 | a
+}
+
+//go:noinline
+func or_int8_Neg1_ssa(a int8) int8 {
+       return a | -1
+}
+
+//go:noinline
+func or_Neg1_int8_ssa(a int8) int8 {
+       return -1 | a
+}
+
+//go:noinline
+func or_int8_0_ssa(a int8) int8 {
+       return a | 0
+}
+
+//go:noinline
+func or_0_int8_ssa(a int8) int8 {
+       return 0 | a
+}
+
+//go:noinline
+func or_int8_1_ssa(a int8) int8 {
+       return a | 1
+}
+
+//go:noinline
+func or_1_int8_ssa(a int8) int8 {
+       return 1 | a
+}
+
+//go:noinline
+func or_int8_126_ssa(a int8) int8 {
+       return a | 126
+}
+
+//go:noinline
+func or_126_int8_ssa(a int8) int8 {
+       return 126 | a
+}
+
+//go:noinline
+func or_int8_127_ssa(a int8) int8 {
+       return a | 127
+}
+
+//go:noinline
+func or_127_int8_ssa(a int8) int8 {
+       return 127 | a
+}
+
+//go:noinline
+func xor_int8_Neg128_ssa(a int8) int8 {
+       return a ^ -128
+}
+
+//go:noinline
+func xor_Neg128_int8_ssa(a int8) int8 {
+       return -128 ^ a
+}
+
+//go:noinline
+func xor_int8_Neg127_ssa(a int8) int8 {
+       return a ^ -127
+}
+
+//go:noinline
+func xor_Neg127_int8_ssa(a int8) int8 {
+       return -127 ^ a
+}
+
+//go:noinline
+func xor_int8_Neg1_ssa(a int8) int8 {
+       return a ^ -1
+}
+
+//go:noinline
+func xor_Neg1_int8_ssa(a int8) int8 {
+       return -1 ^ a
+}
+
+//go:noinline
+func xor_int8_0_ssa(a int8) int8 {
+       return a ^ 0
+}
+
+//go:noinline
+func xor_0_int8_ssa(a int8) int8 {
+       return 0 ^ a
+}
+
+//go:noinline
+func xor_int8_1_ssa(a int8) int8 {
+       return a ^ 1
+}
+
+//go:noinline
+func xor_1_int8_ssa(a int8) int8 {
+       return 1 ^ a
+}
+
+//go:noinline
+func xor_int8_126_ssa(a int8) int8 {
+       return a ^ 126
+}
+
+//go:noinline
+func xor_126_int8_ssa(a int8) int8 {
+       return 126 ^ a
+}
+
+//go:noinline
+func xor_int8_127_ssa(a int8) int8 {
+       return a ^ 127
+}
+
+//go:noinline
+func xor_127_int8_ssa(a int8) int8 {
+       return 127 ^ a
+}
+
+var failed bool
+
+func main() {
+
+       if got := add_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("add_uint64 0%s0 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("add_uint64 0%s0 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_uint64_ssa(1); got != 1 {
+               fmt.Printf("add_uint64 0%s1 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_0_ssa(1); got != 1 {
+               fmt.Printf("add_uint64 1%s0 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("add_uint64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("add_uint64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("add_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("add_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("add_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("add_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_uint64_ssa(0); got != 1 {
+               fmt.Printf("add_uint64 1%s0 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_1_ssa(0); got != 1 {
+               fmt.Printf("add_uint64 0%s1 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_uint64_ssa(1); got != 2 {
+               fmt.Printf("add_uint64 1%s1 = %d, wanted 2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_1_ssa(1); got != 2 {
+               fmt.Printf("add_uint64 1%s1 = %d, wanted 2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_uint64_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("add_uint64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("add_uint64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_uint64_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("add_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_1_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("add_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("add_uint64 1%s18446744073709551615 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_1_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("add_uint64 18446744073709551615%s1 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_uint64_ssa(0); got != 4294967296 {
+               fmt.Printf("add_uint64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("add_uint64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_uint64_ssa(1); got != 4294967297 {
+               fmt.Printf("add_uint64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("add_uint64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_uint64_ssa(4294967296); got != 8589934592 {
+               fmt.Printf("add_uint64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_4294967296_ssa(4294967296); got != 8589934592 {
+               fmt.Printf("add_uint64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_uint64_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("add_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_4294967296_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("add_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_uint64_ssa(18446744073709551615); got != 4294967295 {
+               fmt.Printf("add_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_4294967296_ssa(18446744073709551615); got != 4294967295 {
+               fmt.Printf("add_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("add_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_9223372036854775808_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("add_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775808_uint64_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("add_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_9223372036854775808_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("add_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775808_uint64_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("add_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_9223372036854775808_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("add_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("add_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("add_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("add_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("add_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("add_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_18446744073709551615_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("add_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_18446744073709551615_uint64_ssa(1); got != 0 {
+               fmt.Printf("add_uint64 18446744073709551615%s1 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_18446744073709551615_ssa(1); got != 0 {
+               fmt.Printf("add_uint64 1%s18446744073709551615 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_18446744073709551615_uint64_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("add_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_18446744073709551615_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("add_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("add_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("add_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_18446744073709551615_uint64_ssa(18446744073709551615); got != 18446744073709551614 {
+               fmt.Printf("add_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551614\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_uint64_18446744073709551615_ssa(18446744073709551615); got != 18446744073709551614 {
+               fmt.Printf("add_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551614\n", `+`, got)
+               failed = true
+       }
+
+       if got := sub_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("sub_uint64 0%s0 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("sub_uint64 0%s0 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_uint64_ssa(1); got != 18446744073709551615 {
+               fmt.Printf("sub_uint64 0%s1 = %d, wanted 18446744073709551615\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_0_ssa(1); got != 1 {
+               fmt.Printf("sub_uint64 1%s0 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_uint64_ssa(4294967296); got != 18446744069414584320 {
+               fmt.Printf("sub_uint64 0%s4294967296 = %d, wanted 18446744069414584320\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("sub_uint64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("sub_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("sub_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_uint64_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("sub_uint64 0%s18446744073709551615 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("sub_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_uint64_ssa(0); got != 1 {
+               fmt.Printf("sub_uint64 1%s0 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_1_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("sub_uint64 0%s1 = %d, wanted 18446744073709551615\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_uint64_ssa(1); got != 0 {
+               fmt.Printf("sub_uint64 1%s1 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_1_ssa(1); got != 0 {
+               fmt.Printf("sub_uint64 1%s1 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_uint64_ssa(4294967296); got != 18446744069414584321 {
+               fmt.Printf("sub_uint64 1%s4294967296 = %d, wanted 18446744069414584321\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_1_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("sub_uint64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_uint64_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("sub_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_1_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("sub_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_uint64_ssa(18446744073709551615); got != 2 {
+               fmt.Printf("sub_uint64 1%s18446744073709551615 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_1_ssa(18446744073709551615); got != 18446744073709551614 {
+               fmt.Printf("sub_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_uint64_ssa(0); got != 4294967296 {
+               fmt.Printf("sub_uint64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_4294967296_ssa(0); got != 18446744069414584320 {
+               fmt.Printf("sub_uint64 0%s4294967296 = %d, wanted 18446744069414584320\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_uint64_ssa(1); got != 4294967295 {
+               fmt.Printf("sub_uint64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_4294967296_ssa(1); got != 18446744069414584321 {
+               fmt.Printf("sub_uint64 1%s4294967296 = %d, wanted 18446744069414584321\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("sub_uint64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("sub_uint64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_uint64_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("sub_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_4294967296_ssa(9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("sub_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_uint64_ssa(18446744073709551615); got != 4294967297 {
+               fmt.Printf("sub_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_4294967296_ssa(18446744073709551615); got != 18446744069414584319 {
+               fmt.Printf("sub_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584319\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("sub_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_9223372036854775808_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("sub_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775808_uint64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("sub_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_9223372036854775808_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("sub_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775808_uint64_ssa(4294967296); got != 9223372032559808512 {
+               fmt.Printf("sub_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_9223372036854775808_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("sub_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("sub_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("sub_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775809 {
+               fmt.Printf("sub_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775809\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("sub_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("sub_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_18446744073709551615_ssa(0); got != 1 {
+               fmt.Printf("sub_uint64 0%s18446744073709551615 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_18446744073709551615_uint64_ssa(1); got != 18446744073709551614 {
+               fmt.Printf("sub_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_18446744073709551615_ssa(1); got != 2 {
+               fmt.Printf("sub_uint64 1%s18446744073709551615 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_18446744073709551615_uint64_ssa(4294967296); got != 18446744069414584319 {
+               fmt.Printf("sub_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584319\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_18446744073709551615_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("sub_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("sub_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("sub_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775809\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("sub_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("sub_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := div_0_uint64_ssa(1); got != 0 {
+               fmt.Printf("div_uint64 0%s1 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("div_uint64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("div_uint64 0%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("div_uint64 0%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_1_ssa(0); got != 0 {
+               fmt.Printf("div_uint64 0%s1 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_uint64_ssa(1); got != 1 {
+               fmt.Printf("div_uint64 1%s1 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_1_ssa(1); got != 1 {
+               fmt.Printf("div_uint64 1%s1 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("div_uint64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_1_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("div_uint64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("div_uint64 1%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_1_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("div_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("div_uint64 1%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_1_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("div_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("div_uint64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_uint64_ssa(1); got != 4294967296 {
+               fmt.Printf("div_uint64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_4294967296_ssa(1); got != 0 {
+               fmt.Printf("div_uint64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_uint64_ssa(4294967296); got != 1 {
+               fmt.Printf("div_uint64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_4294967296_ssa(4294967296); got != 1 {
+               fmt.Printf("div_uint64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("div_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_4294967296_ssa(9223372036854775808); got != 2147483648 {
+               fmt.Printf("div_uint64 9223372036854775808%s4294967296 = %d, wanted 2147483648\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("div_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_4294967296_ssa(18446744073709551615); got != 4294967295 {
+               fmt.Printf("div_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("div_uint64 0%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775808_uint64_ssa(1); got != 9223372036854775808 {
+               fmt.Printf("div_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_9223372036854775808_ssa(1); got != 0 {
+               fmt.Printf("div_uint64 1%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775808_uint64_ssa(4294967296); got != 2147483648 {
+               fmt.Printf("div_uint64 9223372036854775808%s4294967296 = %d, wanted 2147483648\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("div_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775808_uint64_ssa(9223372036854775808); got != 1 {
+               fmt.Printf("div_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_9223372036854775808_ssa(9223372036854775808); got != 1 {
+               fmt.Printf("div_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775808_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("div_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_9223372036854775808_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("div_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_18446744073709551615_ssa(0); got != 0 {
+               fmt.Printf("div_uint64 0%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_18446744073709551615_uint64_ssa(1); got != 18446744073709551615 {
+               fmt.Printf("div_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_18446744073709551615_ssa(1); got != 0 {
+               fmt.Printf("div_uint64 1%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_18446744073709551615_uint64_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("div_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_18446744073709551615_ssa(4294967296); got != 0 {
+               fmt.Printf("div_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_18446744073709551615_uint64_ssa(9223372036854775808); got != 1 {
+               fmt.Printf("div_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_18446744073709551615_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("div_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_18446744073709551615_uint64_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("div_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_uint64_18446744073709551615_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("div_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := mul_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 0%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 0%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_uint64_ssa(1); got != 0 {
+               fmt.Printf("mul_uint64 0%s1 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_0_ssa(1); got != 0 {
+               fmt.Printf("mul_uint64 1%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_uint64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_0_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_uint64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mul_uint64 0%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_0_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mul_uint64 9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("mul_uint64 0%s18446744073709551615 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_0_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("mul_uint64 18446744073709551615%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_uint64_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 1%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_1_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 0%s1 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_uint64_ssa(1); got != 1 {
+               fmt.Printf("mul_uint64 1%s1 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_1_ssa(1); got != 1 {
+               fmt.Printf("mul_uint64 1%s1 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mul_uint64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_1_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mul_uint64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_1_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("mul_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551615\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_1_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("mul_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_uint64_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_uint64_ssa(1); got != 4294967296 {
+               fmt.Printf("mul_uint64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_4294967296_ssa(1); got != 4294967296 {
+               fmt.Printf("mul_uint64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_uint64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_uint64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mul_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_4294967296_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mul_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_uint64_ssa(18446744073709551615); got != 18446744069414584320 {
+               fmt.Printf("mul_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744069414584320\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_4294967296_ssa(18446744073709551615); got != 18446744069414584320 {
+               fmt.Printf("mul_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584320\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775808_uint64_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 0%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775808_uint64_ssa(1); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_9223372036854775808_ssa(1); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775808_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mul_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mul_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_18446744073709551615_uint64_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 18446744073709551615%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_18446744073709551615_ssa(0); got != 0 {
+               fmt.Printf("mul_uint64 0%s18446744073709551615 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_18446744073709551615_uint64_ssa(1); got != 18446744073709551615 {
+               fmt.Printf("mul_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_18446744073709551615_ssa(1); got != 18446744073709551615 {
+               fmt.Printf("mul_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551615\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_18446744073709551615_uint64_ssa(4294967296); got != 18446744069414584320 {
+               fmt.Printf("mul_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584320\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_18446744073709551615_ssa(4294967296); got != 18446744069414584320 {
+               fmt.Printf("mul_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744069414584320\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("mul_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_18446744073709551615_uint64_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("mul_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_uint64_18446744073709551615_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("mul_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := lsh_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint64 0%s0 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint64 0%s0 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_0_uint64_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint64 0%s1 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_0_ssa(1); got != 1 {
+               fmt.Printf("lsh_uint64 1%s0 = %d, wanted 1\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_0_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 0%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("lsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_0_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_0_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_1_uint64_ssa(0); got != 1 {
+               fmt.Printf("lsh_uint64 1%s0 = %d, wanted 1\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_1_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint64 0%s1 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_1_uint64_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint64 1%s1 = %d, wanted 2\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_1_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint64 1%s1 = %d, wanted 2\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_1_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 1%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_1_ssa(4294967296); got != 8589934592 {
+               fmt.Printf("lsh_uint64 4294967296%s1 = %d, wanted 8589934592\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_1_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_1_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s1 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_1_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_1_ssa(18446744073709551615); got != 18446744073709551614 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_4294967296_uint64_ssa(0); got != 4294967296 {
+               fmt.Printf("lsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint64 0%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_4294967296_uint64_ssa(1); got != 8589934592 {
+               fmt.Printf("lsh_uint64 4294967296%s1 = %d, wanted 8589934592\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_4294967296_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint64 1%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_4294967296_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_4294967296_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_4294967296_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_4294967296_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_4294967296_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_9223372036854775808_uint64_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s1 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_9223372036854775808_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_9223372036854775808_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_9223372036854775808_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_9223372036854775808_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_18446744073709551615_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_18446744073709551615_uint64_ssa(1); got != 18446744073709551614 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_18446744073709551615_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_18446744073709551615_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_18446744073709551615_ssa(4294967296); got != 0 {
+               fmt.Printf("lsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_18446744073709551615_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_18446744073709551615_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("lsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := lsh_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("lsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+               failed = true
+       }
+
+       if got := rsh_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint64 0%s0 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint64 0%s0 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_0_uint64_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint64 0%s1 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_0_ssa(1); got != 1 {
+               fmt.Printf("rsh_uint64 1%s0 = %d, wanted 1\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_0_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 0%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("rsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_0_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_0_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_1_uint64_ssa(0); got != 1 {
+               fmt.Printf("rsh_uint64 1%s0 = %d, wanted 1\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_1_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint64 0%s1 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_1_uint64_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint64 1%s1 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_1_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint64 1%s1 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_1_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 1%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_1_ssa(4294967296); got != 2147483648 {
+               fmt.Printf("rsh_uint64 4294967296%s1 = %d, wanted 2147483648\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_1_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_1_ssa(9223372036854775808); got != 4611686018427387904 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s1 = %d, wanted 4611686018427387904\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_1_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_1_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s1 = %d, wanted 9223372036854775807\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_4294967296_uint64_ssa(0); got != 4294967296 {
+               fmt.Printf("rsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint64 0%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_4294967296_uint64_ssa(1); got != 2147483648 {
+               fmt.Printf("rsh_uint64 4294967296%s1 = %d, wanted 2147483648\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_4294967296_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint64 1%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_4294967296_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_4294967296_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_4294967296_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_4294967296_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_4294967296_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_9223372036854775808_uint64_ssa(1); got != 4611686018427387904 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s1 = %d, wanted 4611686018427387904\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_9223372036854775808_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_9223372036854775808_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_9223372036854775808_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_9223372036854775808_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_18446744073709551615_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_18446744073709551615_uint64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s1 = %d, wanted 9223372036854775807\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_18446744073709551615_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_18446744073709551615_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_18446744073709551615_ssa(4294967296); got != 0 {
+               fmt.Printf("rsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_18446744073709551615_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_18446744073709551615_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("rsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := rsh_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("rsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+               failed = true
+       }
+
+       if got := mod_0_uint64_ssa(1); got != 0 {
+               fmt.Printf("mod_uint64 0%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_uint64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mod_uint64 0%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("mod_uint64 0%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_1_ssa(0); got != 0 {
+               fmt.Printf("mod_uint64 0%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_uint64_ssa(1); got != 0 {
+               fmt.Printf("mod_uint64 1%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_1_ssa(1); got != 0 {
+               fmt.Printf("mod_uint64 1%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_uint64_ssa(4294967296); got != 1 {
+               fmt.Printf("mod_uint64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_1_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_uint64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_uint64_ssa(9223372036854775808); got != 1 {
+               fmt.Printf("mod_uint64 1%s9223372036854775808 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_1_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mod_uint64 9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_uint64_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("mod_uint64 1%s18446744073709551615 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_1_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("mod_uint64 18446744073709551615%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("mod_uint64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_uint64_ssa(1); got != 0 {
+               fmt.Printf("mod_uint64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_4294967296_ssa(1); got != 1 {
+               fmt.Printf("mod_uint64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_uint64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_uint64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_uint64_ssa(9223372036854775808); got != 4294967296 {
+               fmt.Printf("mod_uint64 4294967296%s9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_4294967296_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mod_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_uint64_ssa(18446744073709551615); got != 4294967296 {
+               fmt.Printf("mod_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_4294967296_ssa(18446744073709551615); got != 4294967295 {
+               fmt.Printf("mod_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("mod_uint64 0%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775808_uint64_ssa(1); got != 0 {
+               fmt.Printf("mod_uint64 9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_9223372036854775808_ssa(1); got != 1 {
+               fmt.Printf("mod_uint64 1%s9223372036854775808 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775808_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_9223372036854775808_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mod_uint64 4294967296%s9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mod_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("mod_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775808 {
+               fmt.Printf("mod_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("mod_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_18446744073709551615_ssa(0); got != 0 {
+               fmt.Printf("mod_uint64 0%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_18446744073709551615_uint64_ssa(1); got != 0 {
+               fmt.Printf("mod_uint64 18446744073709551615%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_18446744073709551615_ssa(1); got != 1 {
+               fmt.Printf("mod_uint64 1%s18446744073709551615 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_18446744073709551615_uint64_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("mod_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_18446744073709551615_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mod_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("mod_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("mod_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("mod_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("mod_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := and_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 0%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 0%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_uint64_ssa(1); got != 0 {
+               fmt.Printf("and_uint64 0%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_0_ssa(1); got != 0 {
+               fmt.Printf("and_uint64 1%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_uint64 0%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_0_ssa(4294967296); got != 0 {
+               fmt.Printf("and_uint64 4294967296%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("and_uint64 0%s9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_0_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("and_uint64 9223372036854775808%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("and_uint64 0%s18446744073709551615 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_0_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("and_uint64 18446744073709551615%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_uint64_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 1%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_1_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 0%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_uint64_ssa(1); got != 1 {
+               fmt.Printf("and_uint64 1%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_1_ssa(1); got != 1 {
+               fmt.Printf("and_uint64 1%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_uint64 1%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_1_ssa(4294967296); got != 0 {
+               fmt.Printf("and_uint64 4294967296%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("and_uint64 1%s9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_1_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("and_uint64 9223372036854775808%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_uint64_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("and_uint64 1%s18446744073709551615 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_1_ssa(18446744073709551615); got != 1 {
+               fmt.Printf("and_uint64 18446744073709551615%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_uint64_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 4294967296%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 0%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_uint64_ssa(1); got != 0 {
+               fmt.Printf("and_uint64 4294967296%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_4294967296_ssa(1); got != 0 {
+               fmt.Printf("and_uint64 1%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_uint64 4294967296%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_4294967296_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_uint64 4294967296%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("and_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_4294967296_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("and_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_uint64_ssa(18446744073709551615); got != 4294967296 {
+               fmt.Printf("and_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_4294967296_ssa(18446744073709551615); got != 4294967296 {
+               fmt.Printf("and_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775808_uint64_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 9223372036854775808%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 0%s9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775808_uint64_ssa(1); got != 0 {
+               fmt.Printf("and_uint64 9223372036854775808%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_9223372036854775808_ssa(1); got != 0 {
+               fmt.Printf("and_uint64 1%s9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775808_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("and_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775808_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("and_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_9223372036854775808_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("and_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775808 {
+               fmt.Printf("and_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775808 {
+               fmt.Printf("and_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_18446744073709551615_uint64_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 18446744073709551615%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_18446744073709551615_ssa(0); got != 0 {
+               fmt.Printf("and_uint64 0%s18446744073709551615 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_18446744073709551615_uint64_ssa(1); got != 1 {
+               fmt.Printf("and_uint64 18446744073709551615%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_18446744073709551615_ssa(1); got != 1 {
+               fmt.Printf("and_uint64 1%s18446744073709551615 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_18446744073709551615_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_18446744073709551615_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("and_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("and_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_18446744073709551615_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("and_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551615\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_uint64_18446744073709551615_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("and_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551615\n", `&`, got)
+               failed = true
+       }
+
+       if got := or_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("or_uint64 0%s0 = %d, wanted 0\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("or_uint64 0%s0 = %d, wanted 0\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_uint64_ssa(1); got != 1 {
+               fmt.Printf("or_uint64 0%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_0_ssa(1); got != 1 {
+               fmt.Printf("or_uint64 1%s0 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_uint64 0%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_uint64 4294967296%s0 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("or_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("or_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_uint64_ssa(0); got != 1 {
+               fmt.Printf("or_uint64 1%s0 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_1_ssa(0); got != 1 {
+               fmt.Printf("or_uint64 0%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_uint64_ssa(1); got != 1 {
+               fmt.Printf("or_uint64 1%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_1_ssa(1); got != 1 {
+               fmt.Printf("or_uint64 1%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_uint64_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("or_uint64 1%s4294967296 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("or_uint64 4294967296%s1 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_uint64_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("or_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_1_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("or_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_1_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_uint64_ssa(0); got != 4294967296 {
+               fmt.Printf("or_uint64 4294967296%s0 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("or_uint64 0%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_uint64_ssa(1); got != 4294967297 {
+               fmt.Printf("or_uint64 4294967296%s1 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("or_uint64 1%s4294967296 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_uint64 4294967296%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_4294967296_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_uint64 4294967296%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_uint64_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("or_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_4294967296_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("or_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_4294967296_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("or_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_9223372036854775808_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("or_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775808_uint64_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("or_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_9223372036854775808_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("or_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775808_uint64_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("or_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_9223372036854775808_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("or_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775808_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("or_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_9223372036854775808_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("or_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775808_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_9223372036854775808_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_18446744073709551615_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_18446744073709551615_uint64_ssa(1); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_18446744073709551615_ssa(1); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_18446744073709551615_uint64_ssa(4294967296); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_18446744073709551615_ssa(4294967296); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_18446744073709551615_uint64_ssa(9223372036854775808); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_18446744073709551615_ssa(9223372036854775808); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_18446744073709551615_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_uint64_18446744073709551615_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("or_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551615\n", `|`, got)
+               failed = true
+       }
+
+       if got := xor_0_uint64_ssa(0); got != 0 {
+               fmt.Printf("xor_uint64 0%s0 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_0_ssa(0); got != 0 {
+               fmt.Printf("xor_uint64 0%s0 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_0_uint64_ssa(1); got != 1 {
+               fmt.Printf("xor_uint64 0%s1 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_0_ssa(1); got != 1 {
+               fmt.Printf("xor_uint64 1%s0 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_0_uint64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("xor_uint64 0%s4294967296 = %d, wanted 4294967296\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("xor_uint64 4294967296%s0 = %d, wanted 4294967296\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_0_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("xor_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
+               fmt.Printf("xor_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_0_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("xor_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
+               fmt.Printf("xor_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_uint64_ssa(0); got != 1 {
+               fmt.Printf("xor_uint64 1%s0 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_1_ssa(0); got != 1 {
+               fmt.Printf("xor_uint64 0%s1 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_uint64_ssa(1); got != 0 {
+               fmt.Printf("xor_uint64 1%s1 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_1_ssa(1); got != 0 {
+               fmt.Printf("xor_uint64 1%s1 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_uint64_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("xor_uint64 1%s4294967296 = %d, wanted 4294967297\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("xor_uint64 4294967296%s1 = %d, wanted 4294967297\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_uint64_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("xor_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_1_ssa(9223372036854775808); got != 9223372036854775809 {
+               fmt.Printf("xor_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_uint64_ssa(18446744073709551615); got != 18446744073709551614 {
+               fmt.Printf("xor_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551614\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_1_ssa(18446744073709551615); got != 18446744073709551614 {
+               fmt.Printf("xor_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_4294967296_uint64_ssa(0); got != 4294967296 {
+               fmt.Printf("xor_uint64 4294967296%s0 = %d, wanted 4294967296\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("xor_uint64 0%s4294967296 = %d, wanted 4294967296\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_4294967296_uint64_ssa(1); got != 4294967297 {
+               fmt.Printf("xor_uint64 4294967296%s1 = %d, wanted 4294967297\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("xor_uint64 1%s4294967296 = %d, wanted 4294967297\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_4294967296_uint64_ssa(4294967296); got != 0 {
+               fmt.Printf("xor_uint64 4294967296%s4294967296 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("xor_uint64 4294967296%s4294967296 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_4294967296_uint64_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("xor_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_4294967296_ssa(9223372036854775808); got != 9223372041149743104 {
+               fmt.Printf("xor_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_4294967296_uint64_ssa(18446744073709551615); got != 18446744069414584319 {
+               fmt.Printf("xor_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744069414584319\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_4294967296_ssa(18446744073709551615); got != 18446744069414584319 {
+               fmt.Printf("xor_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584319\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("xor_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_9223372036854775808_ssa(0); got != 9223372036854775808 {
+               fmt.Printf("xor_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_9223372036854775808_uint64_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("xor_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_9223372036854775808_ssa(1); got != 9223372036854775809 {
+               fmt.Printf("xor_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_9223372036854775808_uint64_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("xor_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_9223372036854775808_ssa(4294967296); got != 9223372041149743104 {
+               fmt.Printf("xor_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("xor_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
+               fmt.Printf("xor_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("xor_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
+               fmt.Printf("xor_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("xor_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_18446744073709551615_ssa(0); got != 18446744073709551615 {
+               fmt.Printf("xor_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_18446744073709551615_uint64_ssa(1); got != 18446744073709551614 {
+               fmt.Printf("xor_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_18446744073709551615_ssa(1); got != 18446744073709551614 {
+               fmt.Printf("xor_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551614\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_18446744073709551615_uint64_ssa(4294967296); got != 18446744069414584319 {
+               fmt.Printf("xor_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584319\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_18446744073709551615_ssa(4294967296); got != 18446744069414584319 {
+               fmt.Printf("xor_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744069414584319\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("xor_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("xor_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("xor_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
+               fmt.Printf("xor_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("add_int64 -9223372036854775808%s-4294967296 = %d, wanted 9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("add_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("add_int64 -9223372036854775808%s-1 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("add_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("add_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("add_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("add_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("add_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("add_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("add_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 2 {
+               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 2 {
+               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(-4294967296); got != 9223372032559808513 {
+               fmt.Printf("add_int64 -9223372036854775807%s-4294967296 = %d, wanted 9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(-4294967296); got != 9223372032559808513 {
+               fmt.Printf("add_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("add_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("add_int64 -1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("add_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("add_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775806 {
+               fmt.Printf("add_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775806 {
+               fmt.Printf("add_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("add_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("add_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg9223372036854775807_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(-9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("add_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(-9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("add_int64 -9223372036854775808%s-4294967296 = %d, wanted 9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(-9223372036854775807); got != 9223372032559808513 {
+               fmt.Printf("add_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(-9223372036854775807); got != 9223372032559808513 {
+               fmt.Printf("add_int64 -9223372036854775807%s-4294967296 = %d, wanted 9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(-4294967296); got != -8589934592 {
+               fmt.Printf("add_int64 -4294967296%s-4294967296 = %d, wanted -8589934592\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(-4294967296); got != -8589934592 {
+               fmt.Printf("add_int64 -4294967296%s-4294967296 = %d, wanted -8589934592\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(-1); got != -4294967297 {
+               fmt.Printf("add_int64 -4294967296%s-1 = %d, wanted -4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(-1); got != -4294967297 {
+               fmt.Printf("add_int64 -1%s-4294967296 = %d, wanted -4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(0); got != -4294967296 {
+               fmt.Printf("add_int64 -4294967296%s0 = %d, wanted -4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(0); got != -4294967296 {
+               fmt.Printf("add_int64 0%s-4294967296 = %d, wanted -4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(1); got != -4294967295 {
+               fmt.Printf("add_int64 -4294967296%s1 = %d, wanted -4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(1); got != -4294967295 {
+               fmt.Printf("add_int64 1%s-4294967296 = %d, wanted -4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("add_int64 -4294967296%s4294967296 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("add_int64 4294967296%s-4294967296 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(9223372036854775806); got != 9223372032559808510 {
+               fmt.Printf("add_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808510\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(9223372036854775806); got != 9223372032559808510 {
+               fmt.Printf("add_int64 9223372036854775806%s-4294967296 = %d, wanted 9223372032559808510\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg4294967296_int64_ssa(9223372036854775807); got != 9223372032559808511 {
+               fmt.Printf("add_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg4294967296_ssa(9223372036854775807); got != 9223372032559808511 {
+               fmt.Printf("add_int64 9223372036854775807%s-4294967296 = %d, wanted 9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("add_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("add_int64 -9223372036854775808%s-1 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("add_int64 -1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("add_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(-4294967296); got != -4294967297 {
+               fmt.Printf("add_int64 -1%s-4294967296 = %d, wanted -4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(-4294967296); got != -4294967297 {
+               fmt.Printf("add_int64 -4294967296%s-1 = %d, wanted -4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(-1); got != -2 {
+               fmt.Printf("add_int64 -1%s-1 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(-1); got != -2 {
+               fmt.Printf("add_int64 -1%s-1 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(0); got != -1 {
+               fmt.Printf("add_int64 -1%s0 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(0); got != -1 {
+               fmt.Printf("add_int64 0%s-1 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(1); got != 0 {
+               fmt.Printf("add_int64 -1%s1 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(1); got != 0 {
+               fmt.Printf("add_int64 1%s-1 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("add_int64 -1%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("add_int64 4294967296%s-1 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(9223372036854775806); got != 9223372036854775805 {
+               fmt.Printf("add_int64 -1%s9223372036854775806 = %d, wanted 9223372036854775805\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(9223372036854775806); got != 9223372036854775805 {
+               fmt.Printf("add_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775805\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_Neg1_int64_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("add_int64 -1%s9223372036854775807 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_Neg1_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("add_int64 9223372036854775807%s-1 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("add_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("add_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("add_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("add_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("add_int64 0%s-4294967296 = %d, wanted -4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("add_int64 -4294967296%s0 = %d, wanted -4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(-1); got != -1 {
+               fmt.Printf("add_int64 0%s-1 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(-1); got != -1 {
+               fmt.Printf("add_int64 -1%s0 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(0); got != 0 {
+               fmt.Printf("add_int64 0%s0 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(0); got != 0 {
+               fmt.Printf("add_int64 0%s0 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(1); got != 1 {
+               fmt.Printf("add_int64 0%s1 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(1); got != 1 {
+               fmt.Printf("add_int64 1%s0 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("add_int64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("add_int64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("add_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("add_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_0_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("add_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_0_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("add_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("add_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("add_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(-9223372036854775807); got != -9223372036854775806 {
+               fmt.Printf("add_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(-9223372036854775807); got != -9223372036854775806 {
+               fmt.Printf("add_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("add_int64 1%s-4294967296 = %d, wanted -4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("add_int64 -4294967296%s1 = %d, wanted -4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(-1); got != 0 {
+               fmt.Printf("add_int64 1%s-1 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(-1); got != 0 {
+               fmt.Printf("add_int64 -1%s1 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(0); got != 1 {
+               fmt.Printf("add_int64 1%s0 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(0); got != 1 {
+               fmt.Printf("add_int64 0%s1 = %d, wanted 1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(1); got != 2 {
+               fmt.Printf("add_int64 1%s1 = %d, wanted 2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(1); got != 2 {
+               fmt.Printf("add_int64 1%s1 = %d, wanted 2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("add_int64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("add_int64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("add_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("add_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_1_int64_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("add_int64 1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_1_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("add_int64 9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("add_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("add_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("add_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("add_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("add_int64 4294967296%s-4294967296 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("add_int64 -4294967296%s4294967296 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(-1); got != 4294967295 {
+               fmt.Printf("add_int64 4294967296%s-1 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(-1); got != 4294967295 {
+               fmt.Printf("add_int64 -1%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(0); got != 4294967296 {
+               fmt.Printf("add_int64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("add_int64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(1); got != 4294967297 {
+               fmt.Printf("add_int64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("add_int64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(4294967296); got != 8589934592 {
+               fmt.Printf("add_int64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(4294967296); got != 8589934592 {
+               fmt.Printf("add_int64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(9223372036854775806); got != -9223372032559808514 {
+               fmt.Printf("add_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808514\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(9223372036854775806); got != -9223372032559808514 {
+               fmt.Printf("add_int64 9223372036854775806%s4294967296 = %d, wanted -9223372032559808514\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_4294967296_int64_ssa(9223372036854775807); got != -9223372032559808513 {
+               fmt.Printf("add_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_4294967296_ssa(9223372036854775807); got != -9223372032559808513 {
+               fmt.Printf("add_int64 9223372036854775807%s4294967296 = %d, wanted -9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(-4294967296); got != 9223372032559808510 {
+               fmt.Printf("add_int64 9223372036854775806%s-4294967296 = %d, wanted 9223372032559808510\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(-4294967296); got != 9223372032559808510 {
+               fmt.Printf("add_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808510\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(-1); got != 9223372036854775805 {
+               fmt.Printf("add_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775805\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(-1); got != 9223372036854775805 {
+               fmt.Printf("add_int64 -1%s9223372036854775806 = %d, wanted 9223372036854775805\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("add_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("add_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("add_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("add_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(4294967296); got != -9223372032559808514 {
+               fmt.Printf("add_int64 9223372036854775806%s4294967296 = %d, wanted -9223372032559808514\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(4294967296); got != -9223372032559808514 {
+               fmt.Printf("add_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808514\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(9223372036854775806); got != -4 {
+               fmt.Printf("add_int64 9223372036854775806%s9223372036854775806 = %d, wanted -4\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(9223372036854775806); got != -4 {
+               fmt.Printf("add_int64 9223372036854775806%s9223372036854775806 = %d, wanted -4\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775806_int64_ssa(9223372036854775807); got != -3 {
+               fmt.Printf("add_int64 9223372036854775806%s9223372036854775807 = %d, wanted -3\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775806_ssa(9223372036854775807); got != -3 {
+               fmt.Printf("add_int64 9223372036854775807%s9223372036854775806 = %d, wanted -3\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(-4294967296); got != 9223372032559808511 {
+               fmt.Printf("add_int64 9223372036854775807%s-4294967296 = %d, wanted 9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(-4294967296); got != 9223372032559808511 {
+               fmt.Printf("add_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808511\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("add_int64 9223372036854775807%s-1 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("add_int64 -1%s9223372036854775807 = %d, wanted 9223372036854775806\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("add_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("add_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("add_int64 9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("add_int64 1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(4294967296); got != -9223372032559808513 {
+               fmt.Printf("add_int64 9223372036854775807%s4294967296 = %d, wanted -9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(4294967296); got != -9223372032559808513 {
+               fmt.Printf("add_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808513\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(9223372036854775806); got != -3 {
+               fmt.Printf("add_int64 9223372036854775807%s9223372036854775806 = %d, wanted -3\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(9223372036854775806); got != -3 {
+               fmt.Printf("add_int64 9223372036854775806%s9223372036854775807 = %d, wanted -3\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_9223372036854775807_int64_ssa(9223372036854775807); got != -2 {
+               fmt.Printf("add_int64 9223372036854775807%s9223372036854775807 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := add_int64_9223372036854775807_ssa(9223372036854775807); got != -2 {
+               fmt.Printf("add_int64 9223372036854775807%s9223372036854775807 = %d, wanted -2\n", `+`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(-4294967296); got != -9223372032559808512 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-4294967296 = %d, wanted -9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("sub_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 -9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(4294967296); got != 9223372032559808512 {
+               fmt.Printf("sub_int64 -9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("sub_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(9223372036854775806); got != 2 {
+               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775808_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775807 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(-4294967296); got != -9223372032559808511 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-4294967296 = %d, wanted -9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(-4294967296); got != 9223372032559808511 {
+               fmt.Printf("sub_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(-1); got != -9223372036854775806 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("sub_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 0%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(4294967296); got != 9223372032559808513 {
+               fmt.Printf("sub_int64 -9223372036854775807%s4294967296 = %d, wanted 9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(4294967296); got != -9223372032559808513 {
+               fmt.Printf("sub_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(9223372036854775806); got != 3 {
+               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 3\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(9223372036854775806); got != -3 {
+               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -3\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 2 {
+               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -2 {
+               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(-9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("sub_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-4294967296 = %d, wanted -9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(-9223372036854775807); got != 9223372032559808511 {
+               fmt.Printf("sub_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-4294967296 = %d, wanted -9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("sub_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("sub_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(-1); got != -4294967295 {
+               fmt.Printf("sub_int64 -4294967296%s-1 = %d, wanted -4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(-1); got != 4294967295 {
+               fmt.Printf("sub_int64 -1%s-4294967296 = %d, wanted 4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(0); got != -4294967296 {
+               fmt.Printf("sub_int64 -4294967296%s0 = %d, wanted -4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("sub_int64 0%s-4294967296 = %d, wanted 4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(1); got != -4294967297 {
+               fmt.Printf("sub_int64 -4294967296%s1 = %d, wanted -4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("sub_int64 1%s-4294967296 = %d, wanted 4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(4294967296); got != -8589934592 {
+               fmt.Printf("sub_int64 -4294967296%s4294967296 = %d, wanted -8589934592\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(4294967296); got != 8589934592 {
+               fmt.Printf("sub_int64 4294967296%s-4294967296 = %d, wanted 8589934592\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(9223372036854775806); got != 9223372032559808514 {
+               fmt.Printf("sub_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808514\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(9223372036854775806); got != -9223372032559808514 {
+               fmt.Printf("sub_int64 9223372036854775806%s-4294967296 = %d, wanted -9223372032559808514\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg4294967296_int64_ssa(9223372036854775807); got != 9223372032559808513 {
+               fmt.Printf("sub_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg4294967296_ssa(9223372036854775807); got != -9223372032559808513 {
+               fmt.Printf("sub_int64 9223372036854775807%s-4294967296 = %d, wanted -9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("sub_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(-9223372036854775807); got != -9223372036854775806 {
+               fmt.Printf("sub_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(-4294967296); got != 4294967295 {
+               fmt.Printf("sub_int64 -1%s-4294967296 = %d, wanted 4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("sub_int64 -4294967296%s-1 = %d, wanted -4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(-1); got != 0 {
+               fmt.Printf("sub_int64 -1%s-1 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("sub_int64 -1%s-1 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(0); got != -1 {
+               fmt.Printf("sub_int64 -1%s0 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(0); got != 1 {
+               fmt.Printf("sub_int64 0%s-1 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(1); got != -2 {
+               fmt.Printf("sub_int64 -1%s1 = %d, wanted -2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(1); got != 2 {
+               fmt.Printf("sub_int64 1%s-1 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(4294967296); got != -4294967297 {
+               fmt.Printf("sub_int64 -1%s4294967296 = %d, wanted -4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("sub_int64 4294967296%s-1 = %d, wanted 4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(9223372036854775806); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_Neg1_int64_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(-9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 0%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("sub_int64 0%s-4294967296 = %d, wanted 4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("sub_int64 -4294967296%s0 = %d, wanted -4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(-1); got != 1 {
+               fmt.Printf("sub_int64 0%s-1 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(-1); got != -1 {
+               fmt.Printf("sub_int64 -1%s0 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(0); got != 0 {
+               fmt.Printf("sub_int64 0%s0 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(0); got != 0 {
+               fmt.Printf("sub_int64 0%s0 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(1); got != -1 {
+               fmt.Printf("sub_int64 0%s1 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(1); got != 1 {
+               fmt.Printf("sub_int64 1%s0 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("sub_int64 0%s4294967296 = %d, wanted -4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("sub_int64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(9223372036854775806); got != -9223372036854775806 {
+               fmt.Printf("sub_int64 0%s9223372036854775806 = %d, wanted -9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("sub_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_0_int64_ssa(9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 0%s9223372036854775807 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_0_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 -9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(-4294967296); got != 4294967297 {
+               fmt.Printf("sub_int64 1%s-4294967296 = %d, wanted 4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(-4294967296); got != -4294967297 {
+               fmt.Printf("sub_int64 -4294967296%s1 = %d, wanted -4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(-1); got != 2 {
+               fmt.Printf("sub_int64 1%s-1 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(-1); got != -2 {
+               fmt.Printf("sub_int64 -1%s1 = %d, wanted -2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(0); got != 1 {
+               fmt.Printf("sub_int64 1%s0 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(0); got != -1 {
+               fmt.Printf("sub_int64 0%s1 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(1); got != 0 {
+               fmt.Printf("sub_int64 1%s1 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(1); got != 0 {
+               fmt.Printf("sub_int64 1%s1 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(4294967296); got != -4294967295 {
+               fmt.Printf("sub_int64 1%s4294967296 = %d, wanted -4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("sub_int64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(9223372036854775806); got != -9223372036854775805 {
+               fmt.Printf("sub_int64 1%s9223372036854775806 = %d, wanted -9223372036854775805\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(9223372036854775806); got != 9223372036854775805 {
+               fmt.Printf("sub_int64 9223372036854775806%s1 = %d, wanted 9223372036854775805\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_1_int64_ssa(9223372036854775807); got != -9223372036854775806 {
+               fmt.Printf("sub_int64 1%s9223372036854775807 = %d, wanted -9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_1_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("sub_int64 9223372036854775807%s1 = %d, wanted 9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("sub_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(-9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("sub_int64 -9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(-9223372036854775807); got != -9223372032559808513 {
+               fmt.Printf("sub_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(-9223372036854775807); got != 9223372032559808513 {
+               fmt.Printf("sub_int64 -9223372036854775807%s4294967296 = %d, wanted 9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(-4294967296); got != 8589934592 {
+               fmt.Printf("sub_int64 4294967296%s-4294967296 = %d, wanted 8589934592\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(-4294967296); got != -8589934592 {
+               fmt.Printf("sub_int64 -4294967296%s4294967296 = %d, wanted -8589934592\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(-1); got != 4294967297 {
+               fmt.Printf("sub_int64 4294967296%s-1 = %d, wanted 4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(-1); got != -4294967297 {
+               fmt.Printf("sub_int64 -1%s4294967296 = %d, wanted -4294967297\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(0); got != 4294967296 {
+               fmt.Printf("sub_int64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(0); got != -4294967296 {
+               fmt.Printf("sub_int64 0%s4294967296 = %d, wanted -4294967296\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(1); got != 4294967295 {
+               fmt.Printf("sub_int64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(1); got != -4294967295 {
+               fmt.Printf("sub_int64 1%s4294967296 = %d, wanted -4294967295\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("sub_int64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("sub_int64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(9223372036854775806); got != -9223372032559808510 {
+               fmt.Printf("sub_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808510\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(9223372036854775806); got != 9223372032559808510 {
+               fmt.Printf("sub_int64 9223372036854775806%s4294967296 = %d, wanted 9223372032559808510\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_4294967296_int64_ssa(9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("sub_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_4294967296_ssa(9223372036854775807); got != 9223372032559808511 {
+               fmt.Printf("sub_int64 9223372036854775807%s4294967296 = %d, wanted 9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(-9223372036854775808); got != 2 {
+               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(-9223372036854775807); got != -3 {
+               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -3\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(-9223372036854775807); got != 3 {
+               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 3\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(-4294967296); got != -9223372032559808514 {
+               fmt.Printf("sub_int64 9223372036854775806%s-4294967296 = %d, wanted -9223372032559808514\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(-4294967296); got != 9223372032559808514 {
+               fmt.Printf("sub_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808514\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("sub_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(0); got != -9223372036854775806 {
+               fmt.Printf("sub_int64 0%s9223372036854775806 = %d, wanted -9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(1); got != 9223372036854775805 {
+               fmt.Printf("sub_int64 9223372036854775806%s1 = %d, wanted 9223372036854775805\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(1); got != -9223372036854775805 {
+               fmt.Printf("sub_int64 1%s9223372036854775806 = %d, wanted -9223372036854775805\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(4294967296); got != 9223372032559808510 {
+               fmt.Printf("sub_int64 9223372036854775806%s4294967296 = %d, wanted 9223372032559808510\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(4294967296); got != -9223372032559808510 {
+               fmt.Printf("sub_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808510\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775806_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775807 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775807 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(-9223372036854775807); got != -2 {
+               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(-9223372036854775807); got != 2 {
+               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 2\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(-4294967296); got != -9223372032559808513 {
+               fmt.Printf("sub_int64 9223372036854775807%s-4294967296 = %d, wanted -9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(-4294967296); got != 9223372032559808513 {
+               fmt.Printf("sub_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808513\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("sub_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("sub_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("sub_int64 0%s9223372036854775807 = %d, wanted -9223372036854775807\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(1); got != 9223372036854775806 {
+               fmt.Printf("sub_int64 9223372036854775807%s1 = %d, wanted 9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(1); got != -9223372036854775806 {
+               fmt.Printf("sub_int64 1%s9223372036854775807 = %d, wanted -9223372036854775806\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(4294967296); got != 9223372032559808511 {
+               fmt.Printf("sub_int64 9223372036854775807%s4294967296 = %d, wanted 9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("sub_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808511\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775807 = %d, wanted -1\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := sub_int64_9223372036854775807_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `-`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(-4294967296); got != 2147483648 {
+               fmt.Printf("div_int64 -9223372036854775808%s-4294967296 = %d, wanted 2147483648\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("div_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 -1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("div_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(1); got != 0 {
+               fmt.Printf("div_int64 1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(4294967296); got != -2147483648 {
+               fmt.Printf("div_int64 -9223372036854775808%s4294967296 = %d, wanted -2147483648\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775808_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(-4294967296); got != 2147483647 {
+               fmt.Printf("div_int64 -9223372036854775807%s-4294967296 = %d, wanted 2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("div_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 -1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("div_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(1); got != 0 {
+               fmt.Printf("div_int64 1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(4294967296); got != -2147483647 {
+               fmt.Printf("div_int64 -9223372036854775807%s4294967296 = %d, wanted -2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg9223372036854775807_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(-9223372036854775808); got != 2147483648 {
+               fmt.Printf("div_int64 -9223372036854775808%s-4294967296 = %d, wanted 2147483648\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(-9223372036854775807); got != 2147483647 {
+               fmt.Printf("div_int64 -9223372036854775807%s-4294967296 = %d, wanted 2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(-4294967296); got != 1 {
+               fmt.Printf("div_int64 -4294967296%s-4294967296 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(-4294967296); got != 1 {
+               fmt.Printf("div_int64 -4294967296%s-4294967296 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(-1); got != 4294967296 {
+               fmt.Printf("div_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 -1%s-4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s-4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(1); got != -4294967296 {
+               fmt.Printf("div_int64 -4294967296%s1 = %d, wanted -4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(1); got != 0 {
+               fmt.Printf("div_int64 1%s-4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(4294967296); got != -1 {
+               fmt.Printf("div_int64 -4294967296%s4294967296 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(4294967296); got != -1 {
+               fmt.Printf("div_int64 4294967296%s-4294967296 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(9223372036854775806); got != -2147483647 {
+               fmt.Printf("div_int64 9223372036854775806%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg4294967296_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg4294967296_ssa(9223372036854775807); got != -2147483647 {
+               fmt.Printf("div_int64 9223372036854775807%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 -1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("div_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 -1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(-9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("div_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 -1%s-4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("div_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(-1); got != 1 {
+               fmt.Printf("div_int64 -1%s-1 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("div_int64 -1%s-1 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s-1 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(1); got != -1 {
+               fmt.Printf("div_int64 -1%s1 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(1); got != -1 {
+               fmt.Printf("div_int64 1%s-1 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 -1%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("div_int64 4294967296%s-1 = %d, wanted -4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 -1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(9223372036854775806); got != -9223372036854775806 {
+               fmt.Printf("div_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_Neg1_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 -1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("div_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 0%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 0%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 0%s-4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 0%s-1 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(1); got != 0 {
+               fmt.Printf("div_int64 0%s1 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 0%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_0_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 0%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("div_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("div_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 1%s-4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("div_int64 -4294967296%s1 = %d, wanted -4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(-1); got != -1 {
+               fmt.Printf("div_int64 1%s-1 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(-1); got != -1 {
+               fmt.Printf("div_int64 -1%s1 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s1 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(1); got != 1 {
+               fmt.Printf("div_int64 1%s1 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(1); got != 1 {
+               fmt.Printf("div_int64 1%s1 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("div_int64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("div_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_1_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_1_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("div_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(-9223372036854775808); got != -2147483648 {
+               fmt.Printf("div_int64 -9223372036854775808%s4294967296 = %d, wanted -2147483648\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(-9223372036854775807); got != -2147483647 {
+               fmt.Printf("div_int64 -9223372036854775807%s4294967296 = %d, wanted -2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(-4294967296); got != -1 {
+               fmt.Printf("div_int64 4294967296%s-4294967296 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(-4294967296); got != -1 {
+               fmt.Printf("div_int64 -4294967296%s4294967296 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(-1); got != -4294967296 {
+               fmt.Printf("div_int64 4294967296%s-1 = %d, wanted -4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 -1%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(1); got != 4294967296 {
+               fmt.Printf("div_int64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(1); got != 0 {
+               fmt.Printf("div_int64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(4294967296); got != 1 {
+               fmt.Printf("div_int64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(4294967296); got != 1 {
+               fmt.Printf("div_int64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(9223372036854775806); got != 2147483647 {
+               fmt.Printf("div_int64 9223372036854775806%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_4294967296_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_4294967296_ssa(9223372036854775807); got != 2147483647 {
+               fmt.Printf("div_int64 9223372036854775807%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(-4294967296); got != -2147483647 {
+               fmt.Printf("div_int64 9223372036854775806%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(-1); got != -9223372036854775806 {
+               fmt.Printf("div_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 -1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(1); got != 9223372036854775806 {
+               fmt.Printf("div_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(1); got != 0 {
+               fmt.Printf("div_int64 1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(4294967296); got != 2147483647 {
+               fmt.Printf("div_int64 9223372036854775806%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("div_int64 9223372036854775806%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("div_int64 9223372036854775806%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775806_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("div_int64 9223372036854775806%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("div_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(-4294967296); got != -2147483647 {
+               fmt.Printf("div_int64 9223372036854775807%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(-4294967296); got != 0 {
+               fmt.Printf("div_int64 -4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("div_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(-1); got != 0 {
+               fmt.Printf("div_int64 -1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("div_int64 0%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("div_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(1); got != 0 {
+               fmt.Printf("div_int64 1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(4294967296); got != 2147483647 {
+               fmt.Printf("div_int64 9223372036854775807%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(4294967296); got != 0 {
+               fmt.Printf("div_int64 4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("div_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("div_int64 9223372036854775806%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_9223372036854775807_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("div_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := div_int64_9223372036854775807_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("div_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `/`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s-9223372036854775807 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 -9223372036854775807%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg9223372036854775807_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(-9223372036854775807); got != -4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(-9223372036854775807); got != -4294967296 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(-1); got != 4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(-1); got != 4294967296 {
+               fmt.Printf("mul_int64 -1%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(1); got != -4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s1 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(1); got != -4294967296 {
+               fmt.Printf("mul_int64 1%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(9223372036854775806); got != 8589934592 {
+               fmt.Printf("mul_int64 -4294967296%s9223372036854775806 = %d, wanted 8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(9223372036854775806); got != 8589934592 {
+               fmt.Printf("mul_int64 9223372036854775806%s-4294967296 = %d, wanted 8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg4294967296_int64_ssa(9223372036854775807); got != 4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg4294967296_ssa(9223372036854775807); got != 4294967296 {
+               fmt.Printf("mul_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(-9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(-9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 -1%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(-1); got != 1 {
+               fmt.Printf("mul_int64 -1%s-1 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("mul_int64 -1%s-1 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 -1%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s-1 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(1); got != -1 {
+               fmt.Printf("mul_int64 -1%s1 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(1); got != -1 {
+               fmt.Printf("mul_int64 1%s-1 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 -1%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 4294967296%s-1 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(9223372036854775806); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(9223372036854775806); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_Neg1_int64_ssa(9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 0%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mul_int64 0%s-9223372036854775807 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 0%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(-1); got != 0 {
+               fmt.Printf("mul_int64 0%s-1 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(-1); got != 0 {
+               fmt.Printf("mul_int64 -1%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(1); got != 0 {
+               fmt.Printf("mul_int64 0%s1 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(1); got != 0 {
+               fmt.Printf("mul_int64 1%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mul_int64 0%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mul_int64 9223372036854775806%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_0_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mul_int64 0%s9223372036854775807 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_0_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mul_int64 9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 1%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s1 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(-1); got != -1 {
+               fmt.Printf("mul_int64 1%s-1 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(-1); got != -1 {
+               fmt.Printf("mul_int64 -1%s1 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 1%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s1 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(1); got != 1 {
+               fmt.Printf("mul_int64 1%s1 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(1); got != 1 {
+               fmt.Printf("mul_int64 1%s1 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 1%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_1_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_1_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(-9223372036854775807); got != 4294967296 {
+               fmt.Printf("mul_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(-9223372036854775807); got != 4294967296 {
+               fmt.Printf("mul_int64 -9223372036854775807%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("mul_int64 -4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(-1); got != -4294967296 {
+               fmt.Printf("mul_int64 4294967296%s-1 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(-1); got != -4294967296 {
+               fmt.Printf("mul_int64 -1%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(1); got != 4294967296 {
+               fmt.Printf("mul_int64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(1); got != 4294967296 {
+               fmt.Printf("mul_int64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("mul_int64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(9223372036854775806); got != -8589934592 {
+               fmt.Printf("mul_int64 4294967296%s9223372036854775806 = %d, wanted -8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(9223372036854775806); got != -8589934592 {
+               fmt.Printf("mul_int64 9223372036854775806%s4294967296 = %d, wanted -8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_4294967296_int64_ssa(9223372036854775807); got != -4294967296 {
+               fmt.Printf("mul_int64 4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_4294967296_ssa(9223372036854775807); got != -4294967296 {
+               fmt.Printf("mul_int64 9223372036854775807%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(-9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(-4294967296); got != 8589934592 {
+               fmt.Printf("mul_int64 9223372036854775806%s-4294967296 = %d, wanted 8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(-4294967296); got != 8589934592 {
+               fmt.Printf("mul_int64 -4294967296%s9223372036854775806 = %d, wanted 8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(-1); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(-1); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 9223372036854775806%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(1); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(1); got != 9223372036854775806 {
+               fmt.Printf("mul_int64 1%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(4294967296); got != -8589934592 {
+               fmt.Printf("mul_int64 9223372036854775806%s4294967296 = %d, wanted -8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(4294967296); got != -8589934592 {
+               fmt.Printf("mul_int64 4294967296%s9223372036854775806 = %d, wanted -8589934592\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(9223372036854775806); got != 4 {
+               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775806 = %d, wanted 4\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(9223372036854775806); got != 4 {
+               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775806 = %d, wanted 4\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775806_int64_ssa(9223372036854775807); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775807 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775806_ssa(9223372036854775807); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("mul_int64 -4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("mul_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("mul_int64 0%s9223372036854775807 = %d, wanted 0\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("mul_int64 1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 9223372036854775807%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("mul_int64 4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(9223372036854775806); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(9223372036854775806); got != -9223372036854775806 {
+               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775807 = %d, wanted -9223372036854775806\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_9223372036854775807_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mul_int64_9223372036854775807_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `*`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s-9223372036854775808 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(-1); got != -1 {
+               fmt.Printf("mod_int64 -1%s-9223372036854775808 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(1); got != 1 {
+               fmt.Printf("mod_int64 1%s-9223372036854775808 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s-9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 9223372036854775806\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775808_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(-1); got != -1 {
+               fmt.Printf("mod_int64 -1%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(1); got != 1 {
+               fmt.Printf("mod_int64 1%s-9223372036854775807 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(4294967296); got != -4294967295 {
+               fmt.Printf("mod_int64 -9223372036854775807%s4294967296 = %d, wanted -4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg9223372036854775807_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(-9223372036854775808); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s-9223372036854775808 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(-9223372036854775807); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(-9223372036854775807); got != -4294967295 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(-1); got != -1 {
+               fmt.Printf("mod_int64 -1%s-4294967296 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(1); got != 1 {
+               fmt.Printf("mod_int64 1%s-4294967296 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(9223372036854775806); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s9223372036854775806 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(9223372036854775806); got != 4294967294 {
+               fmt.Printf("mod_int64 9223372036854775806%s-4294967296 = %d, wanted 4294967294\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg4294967296_int64_ssa(9223372036854775807); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg4294967296_ssa(9223372036854775807); got != 4294967295 {
+               fmt.Printf("mod_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("mod_int64 -1%s-9223372036854775808 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("mod_int64 -1%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(-4294967296); got != -1 {
+               fmt.Printf("mod_int64 -1%s-4294967296 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 -1%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 -1%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 -1%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 1%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(4294967296); got != -1 {
+               fmt.Printf("mod_int64 -1%s4294967296 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("mod_int64 -1%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775806%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_Neg1_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("mod_int64 -1%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_Neg1_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 0%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 0%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 0%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 0%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 0%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mod_int64 0%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_0_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 0%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("mod_int64 1%s-9223372036854775808 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("mod_int64 1%s-9223372036854775807 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(-4294967296); got != 1 {
+               fmt.Printf("mod_int64 1%s-4294967296 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 1%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 -1%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 1%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 1%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(4294967296); got != 1 {
+               fmt.Printf("mod_int64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("mod_int64 1%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775806%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_1_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("mod_int64 1%s9223372036854775807 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_1_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(-9223372036854775808); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s-9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(-9223372036854775807); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(-9223372036854775807); got != -4294967295 {
+               fmt.Printf("mod_int64 -9223372036854775807%s4294967296 = %d, wanted -4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("mod_int64 -4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(-1); got != -1 {
+               fmt.Printf("mod_int64 -1%s4294967296 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(1); got != 1 {
+               fmt.Printf("mod_int64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("mod_int64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(9223372036854775806); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s9223372036854775806 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(9223372036854775806); got != 4294967294 {
+               fmt.Printf("mod_int64 9223372036854775806%s4294967296 = %d, wanted 4294967294\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_4294967296_int64_ssa(9223372036854775807); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_4294967296_ssa(9223372036854775807); got != 4294967295 {
+               fmt.Printf("mod_int64 9223372036854775807%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(-9223372036854775808); got != 9223372036854775806 {
+               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 9223372036854775806\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(-4294967296); got != 4294967294 {
+               fmt.Printf("mod_int64 9223372036854775806%s-4294967296 = %d, wanted 4294967294\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s9223372036854775806 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775806%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(-1); got != -1 {
+               fmt.Printf("mod_int64 -1%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775806%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(1); got != 1 {
+               fmt.Printf("mod_int64 1%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(4294967296); got != 4294967294 {
+               fmt.Printf("mod_int64 9223372036854775806%s4294967296 = %d, wanted 4294967294\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s9223372036854775806 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775806_int64_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(-4294967296); got != 4294967295 {
+               fmt.Printf("mod_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("mod_int64 -4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(-1); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(-1); got != -1 {
+               fmt.Printf("mod_int64 -1%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("mod_int64 0%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(1); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(1); got != 1 {
+               fmt.Printf("mod_int64 1%s9223372036854775807 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(4294967296); got != 4294967295 {
+               fmt.Printf("mod_int64 9223372036854775807%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("mod_int64 4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := mod_int64_9223372036854775807_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(-4294967296); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-4294967296 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(-4294967296); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -4294967296%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(1); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(1); got != 0 {
+               fmt.Printf("and_int64 1%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775808_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775808_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("and_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("and_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(-4294967296); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775807%s-4294967296 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(-4294967296); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -4294967296%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("and_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("and_int64 -1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775807%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s-9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(1); got != 1 {
+               fmt.Printf("and_int64 -9223372036854775807%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(1); got != 1 {
+               fmt.Printf("and_int64 1%s-9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775807%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 4294967296%s-9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg9223372036854775807_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -4294967296%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-4294967296 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -4294967296%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775807%s-4294967296 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("and_int64 -4294967296%s-4294967296 = %d, wanted -4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("and_int64 -4294967296%s-4294967296 = %d, wanted -4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(-1); got != -4294967296 {
+               fmt.Printf("and_int64 -4294967296%s-1 = %d, wanted -4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(-1); got != -4294967296 {
+               fmt.Printf("and_int64 -1%s-4294967296 = %d, wanted -4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 -4294967296%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s-4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(1); got != 0 {
+               fmt.Printf("and_int64 -4294967296%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(1); got != 0 {
+               fmt.Printf("and_int64 1%s-4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 -4294967296%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s-4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(9223372036854775806); got != 9223372032559808512 {
+               fmt.Printf("and_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(9223372036854775806); got != 9223372032559808512 {
+               fmt.Printf("and_int64 9223372036854775806%s-4294967296 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg4294967296_int64_ssa(9223372036854775807); got != 9223372032559808512 {
+               fmt.Printf("and_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg4294967296_ssa(9223372036854775807); got != 9223372032559808512 {
+               fmt.Printf("and_int64 9223372036854775807%s-4294967296 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("and_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("and_int64 -1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("and_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("and_int64 -1%s-4294967296 = %d, wanted -4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("and_int64 -4294967296%s-1 = %d, wanted -4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(-1); got != -1 {
+               fmt.Printf("and_int64 -1%s-1 = %d, wanted -1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("and_int64 -1%s-1 = %d, wanted -1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 -1%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s-1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(1); got != 1 {
+               fmt.Printf("and_int64 -1%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(1); got != 1 {
+               fmt.Printf("and_int64 1%s-1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 -1%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s-1 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("and_int64 -1%s9223372036854775806 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_Neg1_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("and_int64 -1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_Neg1_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("and_int64 9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 0%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 0%s-9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775807%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("and_int64 0%s-4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(-4294967296); got != 0 {
+               fmt.Printf("and_int64 -4294967296%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(-1); got != 0 {
+               fmt.Printf("and_int64 0%s-1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(-1); got != 0 {
+               fmt.Printf("and_int64 -1%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(1); got != 0 {
+               fmt.Printf("and_int64 0%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(1); got != 0 {
+               fmt.Printf("and_int64 1%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 0%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 4294967296%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 0%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_0_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 0%s9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_0_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 9223372036854775807%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 1%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 1%s-9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 -9223372036854775807%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("and_int64 1%s-4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(-4294967296); got != 0 {
+               fmt.Printf("and_int64 -4294967296%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(-1); got != 1 {
+               fmt.Printf("and_int64 1%s-1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(-1); got != 1 {
+               fmt.Printf("and_int64 -1%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 1%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(1); got != 1 {
+               fmt.Printf("and_int64 1%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(1); got != 1 {
+               fmt.Printf("and_int64 1%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 1%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(4294967296); got != 0 {
+               fmt.Printf("and_int64 4294967296%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 1%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_1_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 1%s9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_1_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 9223372036854775807%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 4294967296%s-9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775807%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s-4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(-4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 -4294967296%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(-1); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s-1 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(-1); got != 4294967296 {
+               fmt.Printf("and_int64 -1%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 4294967296%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(1); got != 0 {
+               fmt.Printf("and_int64 4294967296%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(1); got != 0 {
+               fmt.Printf("and_int64 1%s4294967296 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(9223372036854775806); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s9223372036854775806 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(9223372036854775806); got != 4294967296 {
+               fmt.Printf("and_int64 9223372036854775806%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_4294967296_int64_ssa(9223372036854775807); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_4294967296_ssa(9223372036854775807); got != 4294967296 {
+               fmt.Printf("and_int64 9223372036854775807%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("and_int64 9223372036854775806%s-4294967296 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("and_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("and_int64 -1%s9223372036854775806 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(1); got != 0 {
+               fmt.Printf("and_int64 9223372036854775806%s1 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(1); got != 0 {
+               fmt.Printf("and_int64 1%s9223372036854775806 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 9223372036854775806%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s9223372036854775806 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775806%s9223372036854775806 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775806%s9223372036854775806 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775806_int64_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775806_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("and_int64 -9223372036854775808%s9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("and_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("and_int64 9223372036854775807%s-4294967296 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("and_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808512\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("and_int64 9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("and_int64 -1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(0); got != 0 {
+               fmt.Printf("and_int64 9223372036854775807%s0 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(0); got != 0 {
+               fmt.Printf("and_int64 0%s9223372036854775807 = %d, wanted 0\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(1); got != 1 {
+               fmt.Printf("and_int64 9223372036854775807%s1 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(1); got != 1 {
+               fmt.Printf("and_int64 1%s9223372036854775807 = %d, wanted 1\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 9223372036854775807%s4294967296 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("and_int64 4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("and_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775806\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_9223372036854775807_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("and_int64 9223372036854775807%s9223372036854775807 = %d, wanted 9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := and_int64_9223372036854775807_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("and_int64 9223372036854775807%s9223372036854775807 = %d, wanted 9223372036854775807\n", `&`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("or_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("or_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -9223372036854775808%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s-9223372036854775808 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775808%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s-9223372036854775808 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("or_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("or_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("or_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("or_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("or_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("or_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("or_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("or_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("or_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775807%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s-9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("or_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("or_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("or_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("or_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("or_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg9223372036854775807_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(-9223372036854775808); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s-9223372036854775808 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(-9223372036854775808); got != -4294967296 {
+               fmt.Printf("or_int64 -9223372036854775808%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(-9223372036854775807); got != -4294967295 {
+               fmt.Printf("or_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(-9223372036854775807); got != -4294967295 {
+               fmt.Printf("or_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -4294967296%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s-4294967296 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(0); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s0 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(0); got != -4294967296 {
+               fmt.Printf("or_int64 0%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(1); got != -4294967295 {
+               fmt.Printf("or_int64 -4294967296%s1 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(1); got != -4294967295 {
+               fmt.Printf("or_int64 1%s-4294967296 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 4294967296%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("or_int64 -4294967296%s9223372036854775806 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("or_int64 9223372036854775806%s-4294967296 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg4294967296_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -4294967296%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg4294967296_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-4294967296 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("or_int64 -1%s-9223372036854775808 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775808%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -1%s-9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775807%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(-4294967296); got != -1 {
+               fmt.Printf("or_int64 -1%s-4294967296 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(-4294967296); got != -1 {
+               fmt.Printf("or_int64 -4294967296%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(0); got != -1 {
+               fmt.Printf("or_int64 -1%s0 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(0); got != -1 {
+               fmt.Printf("or_int64 0%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(1); got != -1 {
+               fmt.Printf("or_int64 -1%s1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(1); got != -1 {
+               fmt.Printf("or_int64 1%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(4294967296); got != -1 {
+               fmt.Printf("or_int64 -1%s4294967296 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(4294967296); got != -1 {
+               fmt.Printf("or_int64 4294967296%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("or_int64 -1%s9223372036854775806 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("or_int64 9223372036854775806%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_Neg1_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -1%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_Neg1_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("or_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("or_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 0%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s0 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 0%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s0 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(0); got != 0 {
+               fmt.Printf("or_int64 0%s0 = %d, wanted 0\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(0); got != 0 {
+               fmt.Printf("or_int64 0%s0 = %d, wanted 0\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(1); got != 1 {
+               fmt.Printf("or_int64 0%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(1); got != 1 {
+               fmt.Printf("or_int64 1%s0 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_int64 0%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_int64 4294967296%s0 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("or_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("or_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_0_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_0_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("or_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("or_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("or_int64 1%s-4294967296 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("or_int64 -4294967296%s1 = %d, wanted -4294967295\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 1%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(0); got != 1 {
+               fmt.Printf("or_int64 1%s0 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(0); got != 1 {
+               fmt.Printf("or_int64 0%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(1); got != 1 {
+               fmt.Printf("or_int64 1%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(1); got != 1 {
+               fmt.Printf("or_int64 1%s1 = %d, wanted 1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("or_int64 1%s4294967296 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("or_int64 4294967296%s1 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("or_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_1_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_1_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("or_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("or_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("or_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("or_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 4294967296%s-4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("or_int64 -4294967296%s4294967296 = %d, wanted -4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 4294967296%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s4294967296 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(0); got != 4294967296 {
+               fmt.Printf("or_int64 4294967296%s0 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("or_int64 0%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(1); got != 4294967297 {
+               fmt.Printf("or_int64 4294967296%s1 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("or_int64 1%s4294967296 = %d, wanted 4294967297\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_int64 4294967296%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("or_int64 4294967296%s4294967296 = %d, wanted 4294967296\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("or_int64 4294967296%s9223372036854775806 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("or_int64 9223372036854775806%s4294967296 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_4294967296_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 4294967296%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_4294967296_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s4294967296 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("or_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("or_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(-4294967296); got != -2 {
+               fmt.Printf("or_int64 9223372036854775806%s-4294967296 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(-4294967296); got != -2 {
+               fmt.Printf("or_int64 -4294967296%s9223372036854775806 = %d, wanted -2\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 9223372036854775806%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s9223372036854775806 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("or_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("or_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("or_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(4294967296); got != 9223372036854775806 {
+               fmt.Printf("or_int64 9223372036854775806%s4294967296 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(4294967296); got != 9223372036854775806 {
+               fmt.Printf("or_int64 4294967296%s9223372036854775806 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("or_int64 9223372036854775806%s9223372036854775806 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("or_int64 9223372036854775806%s9223372036854775806 = %d, wanted 9223372036854775806\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775806_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775806_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("or_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(-4294967296); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-4294967296 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(-4294967296); got != -1 {
+               fmt.Printf("or_int64 -4294967296%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 9223372036854775807%s-1 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(-1); got != -1 {
+               fmt.Printf("or_int64 -1%s9223372036854775807 = %d, wanted -1\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("or_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("or_int64 1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(4294967296); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s4294967296 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(4294967296); got != 9223372036854775807 {
+               fmt.Printf("or_int64 4294967296%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_9223372036854775807_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := or_int64_9223372036854775807_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("or_int64 9223372036854775807%s9223372036854775807 = %d, wanted 9223372036854775807\n", `|`, got)
+               failed = true
+       }
+
+       if got := xor_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
 
-//go:noinline
-func mod_int8_126_ssa(a int8) int8 {
-       return a % 126
-}
+       if got := xor_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
 
-//go:noinline
-func mod_126_int8_ssa(a int8) int8 {
-       return 126 % a
-}
+       if got := xor_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
 
-//go:noinline
-func mod_int8_127_ssa(a int8) int8 {
-       return a % 127
-}
+       if got := xor_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 1 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
 
-//go:noinline
-func mod_127_int8_ssa(a int8) int8 {
-       return 127 % a
-}
+       if got := xor_Neg9223372036854775808_int64_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-4294967296 = %d, wanted 9223372032559808512\n", `^`, got)
+               failed = true
+       }
 
-var failed bool
+       if got := xor_int64_Neg9223372036854775808_ssa(-4294967296); got != 9223372032559808512 {
+               fmt.Printf("xor_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `^`, got)
+               failed = true
+       }
 
-func main() {
+       if got := xor_Neg9223372036854775808_int64_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-1 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
 
-       if got := add_0_uint64_ssa(0); got != 0 {
-               fmt.Printf("add_uint64 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775808_ssa(-1); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_0_ssa(0); got != 0 {
-               fmt.Printf("add_uint64 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg9223372036854775808_int64_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_uint64_ssa(1); got != 1 {
-               fmt.Printf("add_uint64 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775808_ssa(0); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_0_ssa(1); got != 1 {
-               fmt.Printf("add_uint64 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := xor_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_uint64_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("add_uint64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_0_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("add_uint64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+       if got := xor_Neg9223372036854775808_int64_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("xor_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("add_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775808_ssa(4294967296); got != -9223372032559808512 {
+               fmt.Printf("xor_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("add_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `+`, got)
+       if got := xor_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("xor_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("add_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775808_ssa(9223372036854775806); got != -2 {
+               fmt.Printf("xor_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("add_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `+`, got)
+       if got := xor_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("xor_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_uint64_ssa(0); got != 1 {
-               fmt.Printf("add_uint64 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -1 {
+               fmt.Printf("xor_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_1_ssa(0); got != 1 {
-               fmt.Printf("add_uint64 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_uint64_ssa(1); got != 2 {
-               fmt.Printf("add_uint64 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != 1 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_1_ssa(1); got != 2 {
-               fmt.Printf("add_uint64 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_uint64_ssa(4294967296); got != 4294967297 {
-               fmt.Printf("add_uint64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 0 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_1_ssa(4294967296); got != 4294967297 {
-               fmt.Printf("add_uint64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(-4294967296); got != 9223372032559808513 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-4294967296 = %d, wanted 9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_uint64_ssa(9223372036854775808); got != 9223372036854775809 {
-               fmt.Printf("add_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(-4294967296); got != 9223372032559808513 {
+               fmt.Printf("xor_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_1_ssa(9223372036854775808); got != 9223372036854775809 {
-               fmt.Printf("add_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("add_uint64 1%s18446744073709551615 = %d, wanted 0\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(-1); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_1_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("add_uint64 18446744073709551615%s1 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_4294967296_uint64_ssa(0); got != 4294967296 {
-               fmt.Printf("add_uint64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(0); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_4294967296_ssa(0); got != 4294967296 {
-               fmt.Printf("add_uint64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := add_4294967296_uint64_ssa(1); got != 4294967297 {
-               fmt.Printf("add_uint64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_4294967296_ssa(1); got != 4294967297 {
-               fmt.Printf("add_uint64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("xor_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := add_4294967296_uint64_ssa(4294967296); got != 8589934592 {
-               fmt.Printf("add_uint64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(4294967296); got != -9223372032559808511 {
+               fmt.Printf("xor_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_4294967296_ssa(4294967296); got != 8589934592 {
-               fmt.Printf("add_uint64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("xor_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_4294967296_uint64_ssa(9223372036854775808); got != 9223372041149743104 {
-               fmt.Printf("add_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(9223372036854775806); got != -1 {
+               fmt.Printf("xor_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_4294967296_ssa(9223372036854775808); got != 9223372041149743104 {
-               fmt.Printf("add_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `+`, got)
+       if got := xor_Neg9223372036854775807_int64_ssa(9223372036854775807); got != -2 {
+               fmt.Printf("xor_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_4294967296_uint64_ssa(18446744073709551615); got != 4294967295 {
-               fmt.Printf("add_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967295\n", `+`, got)
+       if got := xor_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -2 {
+               fmt.Printf("xor_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_4294967296_ssa(18446744073709551615); got != 4294967295 {
-               fmt.Printf("add_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(-9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("xor_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `^`, got)
                failed = true
        }
 
-       if got := add_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
-               fmt.Printf("add_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(-9223372036854775808); got != 9223372032559808512 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-4294967296 = %d, wanted 9223372032559808512\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_9223372036854775808_ssa(0); got != 9223372036854775808 {
-               fmt.Printf("add_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(-9223372036854775807); got != 9223372032559808513 {
+               fmt.Printf("xor_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := add_9223372036854775808_uint64_ssa(1); got != 9223372036854775809 {
-               fmt.Printf("add_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775809\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(-9223372036854775807); got != 9223372032559808513 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-4294967296 = %d, wanted 9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_9223372036854775808_ssa(1); got != 9223372036854775809 {
-               fmt.Printf("add_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(-4294967296); got != 0 {
+               fmt.Printf("xor_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_9223372036854775808_uint64_ssa(4294967296); got != 9223372041149743104 {
-               fmt.Printf("add_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372041149743104\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(-4294967296); got != 0 {
+               fmt.Printf("xor_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_9223372036854775808_ssa(4294967296); got != 9223372041149743104 {
-               fmt.Printf("add_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(-1); got != 4294967295 {
+               fmt.Printf("xor_int64 -4294967296%s-1 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := add_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("add_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(-1); got != 4294967295 {
+               fmt.Printf("xor_int64 -1%s-4294967296 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("add_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(0); got != -4294967296 {
+               fmt.Printf("xor_int64 -4294967296%s0 = %d, wanted -4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := add_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775807 {
-               fmt.Printf("add_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(0); got != -4294967296 {
+               fmt.Printf("xor_int64 0%s-4294967296 = %d, wanted -4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
-               fmt.Printf("add_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(1); got != -4294967295 {
+               fmt.Printf("xor_int64 -4294967296%s1 = %d, wanted -4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := add_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
-               fmt.Printf("add_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(1); got != -4294967295 {
+               fmt.Printf("xor_int64 1%s-4294967296 = %d, wanted -4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_18446744073709551615_ssa(0); got != 18446744073709551615 {
-               fmt.Printf("add_uint64 0%s18446744073709551615 = %d, wanted 18446744073709551615\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(4294967296); got != -8589934592 {
+               fmt.Printf("xor_int64 -4294967296%s4294967296 = %d, wanted -8589934592\n", `^`, got)
                failed = true
        }
 
-       if got := add_18446744073709551615_uint64_ssa(1); got != 0 {
-               fmt.Printf("add_uint64 18446744073709551615%s1 = %d, wanted 0\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(4294967296); got != -8589934592 {
+               fmt.Printf("xor_int64 4294967296%s-4294967296 = %d, wanted -8589934592\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_18446744073709551615_ssa(1); got != 0 {
-               fmt.Printf("add_uint64 1%s18446744073709551615 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(9223372036854775806); got != -9223372032559808514 {
+               fmt.Printf("xor_int64 -4294967296%s9223372036854775806 = %d, wanted -9223372032559808514\n", `^`, got)
                failed = true
        }
 
-       if got := add_18446744073709551615_uint64_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("add_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(9223372036854775806); got != -9223372032559808514 {
+               fmt.Printf("xor_int64 9223372036854775806%s-4294967296 = %d, wanted -9223372032559808514\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_18446744073709551615_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("add_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967295\n", `+`, got)
+       if got := xor_Neg4294967296_int64_ssa(9223372036854775807); got != -9223372032559808513 {
+               fmt.Printf("xor_int64 -4294967296%s9223372036854775807 = %d, wanted -9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := add_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("add_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := xor_int64_Neg4294967296_ssa(9223372036854775807); got != -9223372032559808513 {
+               fmt.Printf("xor_int64 9223372036854775807%s-4294967296 = %d, wanted -9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("add_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := xor_Neg1_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_18446744073709551615_uint64_ssa(18446744073709551615); got != 18446744073709551614 {
-               fmt.Printf("add_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551614\n", `+`, got)
+       if got := xor_int64_Neg1_ssa(-9223372036854775808); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 -9223372036854775808%s-1 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := add_uint64_18446744073709551615_ssa(18446744073709551615); got != 18446744073709551614 {
-               fmt.Printf("add_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 18446744073709551614\n", `+`, got)
+       if got := xor_Neg1_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := sub_0_uint64_ssa(0); got != 0 {
-               fmt.Printf("sub_uint64 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(-9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_0_ssa(0); got != 0 {
-               fmt.Printf("sub_uint64 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(-4294967296); got != 4294967295 {
+               fmt.Printf("xor_int64 -1%s-4294967296 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := sub_0_uint64_ssa(1); got != 18446744073709551615 {
-               fmt.Printf("sub_uint64 0%s1 = %d, wanted 18446744073709551615\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(-4294967296); got != 4294967295 {
+               fmt.Printf("xor_int64 -4294967296%s-1 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_0_ssa(1); got != 1 {
-               fmt.Printf("sub_uint64 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(-1); got != 0 {
+               fmt.Printf("xor_int64 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_0_uint64_ssa(4294967296); got != 18446744069414584320 {
-               fmt.Printf("sub_uint64 0%s4294967296 = %d, wanted 18446744069414584320\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("xor_int64 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_0_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("sub_uint64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(0); got != -1 {
+               fmt.Printf("xor_int64 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_0_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("sub_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(0); got != -1 {
+               fmt.Printf("xor_int64 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("sub_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(1); got != -2 {
+               fmt.Printf("xor_int64 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := sub_0_uint64_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("sub_uint64 0%s18446744073709551615 = %d, wanted 1\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(1); got != -2 {
+               fmt.Printf("xor_int64 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("sub_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(4294967296); got != -4294967297 {
+               fmt.Printf("xor_int64 -1%s4294967296 = %d, wanted -4294967297\n", `^`, got)
                failed = true
        }
 
-       if got := sub_1_uint64_ssa(0); got != 1 {
-               fmt.Printf("sub_uint64 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(4294967296); got != -4294967297 {
+               fmt.Printf("xor_int64 4294967296%s-1 = %d, wanted -4294967297\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_1_ssa(0); got != 18446744073709551615 {
-               fmt.Printf("sub_uint64 0%s1 = %d, wanted 18446744073709551615\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(9223372036854775806); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := sub_1_uint64_ssa(1); got != 0 {
-               fmt.Printf("sub_uint64 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(9223372036854775806); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_1_ssa(1); got != 0 {
-               fmt.Printf("sub_uint64 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := xor_Neg1_int64_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := sub_1_uint64_ssa(4294967296); got != 18446744069414584321 {
-               fmt.Printf("sub_uint64 1%s4294967296 = %d, wanted 18446744069414584321\n", `-`, got)
+       if got := xor_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_1_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("sub_uint64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+       if got := xor_0_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := sub_1_uint64_ssa(9223372036854775808); got != 9223372036854775809 {
-               fmt.Printf("sub_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `-`, got)
+       if got := xor_int64_0_ssa(-9223372036854775808); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_1_ssa(9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("sub_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := xor_0_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := sub_1_uint64_ssa(18446744073709551615); got != 2 {
-               fmt.Printf("sub_uint64 1%s18446744073709551615 = %d, wanted 2\n", `-`, got)
+       if got := xor_int64_0_ssa(-9223372036854775807); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_1_ssa(18446744073709551615); got != 18446744073709551614 {
-               fmt.Printf("sub_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `-`, got)
+       if got := xor_0_int64_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("xor_int64 0%s-4294967296 = %d, wanted -4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := sub_4294967296_uint64_ssa(0); got != 4294967296 {
-               fmt.Printf("sub_uint64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+       if got := xor_int64_0_ssa(-4294967296); got != -4294967296 {
+               fmt.Printf("xor_int64 -4294967296%s0 = %d, wanted -4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_4294967296_ssa(0); got != 18446744069414584320 {
-               fmt.Printf("sub_uint64 0%s4294967296 = %d, wanted 18446744069414584320\n", `-`, got)
+       if got := xor_0_int64_ssa(-1); got != -1 {
+               fmt.Printf("xor_int64 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_4294967296_uint64_ssa(1); got != 4294967295 {
-               fmt.Printf("sub_uint64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+       if got := xor_int64_0_ssa(-1); got != -1 {
+               fmt.Printf("xor_int64 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_4294967296_ssa(1); got != 18446744069414584321 {
-               fmt.Printf("sub_uint64 1%s4294967296 = %d, wanted 18446744069414584321\n", `-`, got)
+       if got := xor_0_int64_ssa(0); got != 0 {
+               fmt.Printf("xor_int64 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_4294967296_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("sub_uint64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+       if got := xor_int64_0_ssa(0); got != 0 {
+               fmt.Printf("xor_int64 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("sub_uint64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+       if got := xor_0_int64_ssa(1); got != 1 {
+               fmt.Printf("xor_int64 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_4294967296_uint64_ssa(9223372036854775808); got != 9223372041149743104 {
-               fmt.Printf("sub_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `-`, got)
+       if got := xor_int64_0_ssa(1); got != 1 {
+               fmt.Printf("xor_int64 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_4294967296_ssa(9223372036854775808); got != 9223372032559808512 {
-               fmt.Printf("sub_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+       if got := xor_0_int64_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("xor_int64 0%s4294967296 = %d, wanted 4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := sub_4294967296_uint64_ssa(18446744073709551615); got != 4294967297 {
-               fmt.Printf("sub_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967297\n", `-`, got)
+       if got := xor_int64_0_ssa(4294967296); got != 4294967296 {
+               fmt.Printf("xor_int64 4294967296%s0 = %d, wanted 4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_4294967296_ssa(18446744073709551615); got != 18446744069414584319 {
-               fmt.Printf("sub_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584319\n", `-`, got)
+       if got := xor_0_int64_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
-               fmt.Printf("sub_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `-`, got)
+       if got := xor_int64_0_ssa(9223372036854775806); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_9223372036854775808_ssa(0); got != 9223372036854775808 {
-               fmt.Printf("sub_uint64 0%s9223372036854775808 = %d, wanted 9223372036854775808\n", `-`, got)
+       if got := xor_0_int64_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775808_uint64_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("sub_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := xor_int64_0_ssa(9223372036854775807); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_9223372036854775808_ssa(1); got != 9223372036854775809 {
-               fmt.Printf("sub_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775809\n", `-`, got)
+       if got := xor_1_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(-9223372036854775808); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(-9223372036854775807); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("xor_int64 1%s-4294967296 = %d, wanted -4294967295\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(-4294967296); got != -4294967295 {
+               fmt.Printf("xor_int64 -4294967296%s1 = %d, wanted -4294967295\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(-1); got != -2 {
+               fmt.Printf("xor_int64 1%s-1 = %d, wanted -2\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(-1); got != -2 {
+               fmt.Printf("xor_int64 -1%s1 = %d, wanted -2\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(0); got != 1 {
+               fmt.Printf("xor_int64 1%s0 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(0); got != 1 {
+               fmt.Printf("xor_int64 0%s1 = %d, wanted 1\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(1); got != 0 {
+               fmt.Printf("xor_int64 1%s1 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(1); got != 0 {
+               fmt.Printf("xor_int64 1%s1 = %d, wanted 0\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("xor_int64 1%s4294967296 = %d, wanted 4294967297\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(4294967296); got != 4294967297 {
+               fmt.Printf("xor_int64 4294967296%s1 = %d, wanted 4294967297\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(9223372036854775806); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_1_int64_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 1%s9223372036854775807 = %d, wanted 9223372036854775806\n", `^`, got)
+               failed = true
+       }
+
+       if got := xor_int64_1_ssa(9223372036854775807); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 9223372036854775807%s1 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775808_uint64_ssa(4294967296); got != 9223372032559808512 {
-               fmt.Printf("sub_uint64 9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("xor_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_9223372036854775808_ssa(4294967296); got != 9223372041149743104 {
-               fmt.Printf("sub_uint64 4294967296%s9223372036854775808 = %d, wanted 9223372041149743104\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(-9223372036854775808); got != -9223372032559808512 {
+               fmt.Printf("xor_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `^`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("sub_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("xor_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("sub_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(-9223372036854775807); got != -9223372032559808511 {
+               fmt.Printf("xor_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775809 {
-               fmt.Printf("sub_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775809\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(-4294967296); got != -8589934592 {
+               fmt.Printf("xor_int64 4294967296%s-4294967296 = %d, wanted -8589934592\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
-               fmt.Printf("sub_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(-4294967296); got != -8589934592 {
+               fmt.Printf("xor_int64 -4294967296%s4294967296 = %d, wanted -8589934592\n", `^`, got)
                failed = true
        }
 
-       if got := sub_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
-               fmt.Printf("sub_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(-1); got != -4294967297 {
+               fmt.Printf("xor_int64 4294967296%s-1 = %d, wanted -4294967297\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_18446744073709551615_ssa(0); got != 1 {
-               fmt.Printf("sub_uint64 0%s18446744073709551615 = %d, wanted 1\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(-1); got != -4294967297 {
+               fmt.Printf("xor_int64 -1%s4294967296 = %d, wanted -4294967297\n", `^`, got)
                failed = true
        }
 
-       if got := sub_18446744073709551615_uint64_ssa(1); got != 18446744073709551614 {
-               fmt.Printf("sub_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(0); got != 4294967296 {
+               fmt.Printf("xor_int64 4294967296%s0 = %d, wanted 4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_18446744073709551615_ssa(1); got != 2 {
-               fmt.Printf("sub_uint64 1%s18446744073709551615 = %d, wanted 2\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(0); got != 4294967296 {
+               fmt.Printf("xor_int64 0%s4294967296 = %d, wanted 4294967296\n", `^`, got)
                failed = true
        }
 
-       if got := sub_18446744073709551615_uint64_ssa(4294967296); got != 18446744069414584319 {
-               fmt.Printf("sub_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584319\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(1); got != 4294967297 {
+               fmt.Printf("xor_int64 4294967296%s1 = %d, wanted 4294967297\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_18446744073709551615_ssa(4294967296); got != 4294967297 {
-               fmt.Printf("sub_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967297\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(1); got != 4294967297 {
+               fmt.Printf("xor_int64 1%s4294967296 = %d, wanted 4294967297\n", `^`, got)
                failed = true
        }
 
-       if got := sub_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("sub_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(4294967296); got != 0 {
+               fmt.Printf("xor_int64 4294967296%s4294967296 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775809 {
-               fmt.Printf("sub_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775809\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(4294967296); got != 0 {
+               fmt.Printf("xor_int64 4294967296%s4294967296 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("sub_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `-`, got)
+       if got := xor_4294967296_int64_ssa(9223372036854775806); got != 9223372032559808510 {
+               fmt.Printf("xor_int64 4294967296%s9223372036854775806 = %d, wanted 9223372032559808510\n", `^`, got)
                failed = true
        }
 
-       if got := sub_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("sub_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `-`, got)
+       if got := xor_int64_4294967296_ssa(9223372036854775806); got != 9223372032559808510 {
+               fmt.Printf("xor_int64 9223372036854775806%s4294967296 = %d, wanted 9223372032559808510\n", `^`, got)
                failed = true
        }
 
-       if got := div_0_uint64_ssa(1); got != 0 {
-               fmt.Printf("div_uint64 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := xor_4294967296_int64_ssa(9223372036854775807); got != 9223372032559808511 {
+               fmt.Printf("xor_int64 4294967296%s9223372036854775807 = %d, wanted 9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := div_0_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("div_uint64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_4294967296_ssa(9223372036854775807); got != 9223372032559808511 {
+               fmt.Printf("xor_int64 9223372036854775807%s4294967296 = %d, wanted 9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := div_0_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("div_uint64 0%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("xor_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := div_0_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("div_uint64 0%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(-9223372036854775808); got != -2 {
+               fmt.Printf("xor_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_1_ssa(0); got != 0 {
-               fmt.Printf("div_uint64 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("xor_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := div_1_uint64_ssa(1); got != 1 {
-               fmt.Printf("div_uint64 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
+               fmt.Printf("xor_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_1_ssa(1); got != 1 {
-               fmt.Printf("div_uint64 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(-4294967296); got != -9223372032559808514 {
+               fmt.Printf("xor_int64 9223372036854775806%s-4294967296 = %d, wanted -9223372032559808514\n", `^`, got)
                failed = true
        }
 
-       if got := div_1_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("div_uint64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(-4294967296); got != -9223372032559808514 {
+               fmt.Printf("xor_int64 -4294967296%s9223372036854775806 = %d, wanted -9223372032559808514\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_1_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("div_uint64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := div_1_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("div_uint64 1%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(-1); got != -9223372036854775807 {
+               fmt.Printf("xor_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_1_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("div_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := div_1_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("div_uint64 1%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(0); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_1_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("div_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("div_uint64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(1); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := div_4294967296_uint64_ssa(1); got != 4294967296 {
-               fmt.Printf("div_uint64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(4294967296); got != 9223372032559808510 {
+               fmt.Printf("xor_int64 9223372036854775806%s4294967296 = %d, wanted 9223372032559808510\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_4294967296_ssa(1); got != 0 {
-               fmt.Printf("div_uint64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(4294967296); got != 9223372032559808510 {
+               fmt.Printf("xor_int64 4294967296%s9223372036854775806 = %d, wanted 9223372032559808510\n", `^`, got)
                failed = true
        }
 
-       if got := div_4294967296_uint64_ssa(4294967296); got != 1 {
-               fmt.Printf("div_uint64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("xor_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_4294967296_ssa(4294967296); got != 1 {
-               fmt.Printf("div_uint64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(9223372036854775806); got != 0 {
+               fmt.Printf("xor_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_4294967296_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("div_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775806_int64_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("xor_int64 9223372036854775806%s9223372036854775807 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_4294967296_ssa(9223372036854775808); got != 2147483648 {
-               fmt.Printf("div_uint64 9223372036854775808%s4294967296 = %d, wanted 2147483648\n", `/`, got)
+       if got := xor_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
+               fmt.Printf("xor_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_4294967296_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("div_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("xor_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_4294967296_ssa(18446744073709551615); got != 4294967295 {
-               fmt.Printf("div_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
+               fmt.Printf("xor_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("div_uint64 0%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(-9223372036854775807); got != -2 {
+               fmt.Printf("xor_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775808_uint64_ssa(1); got != 9223372036854775808 {
-               fmt.Printf("div_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(-9223372036854775807); got != -2 {
+               fmt.Printf("xor_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_9223372036854775808_ssa(1); got != 0 {
-               fmt.Printf("div_uint64 1%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(-4294967296); got != -9223372032559808513 {
+               fmt.Printf("xor_int64 9223372036854775807%s-4294967296 = %d, wanted -9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775808_uint64_ssa(4294967296); got != 2147483648 {
-               fmt.Printf("div_uint64 9223372036854775808%s4294967296 = %d, wanted 2147483648\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(-4294967296); got != -9223372032559808513 {
+               fmt.Printf("xor_int64 -4294967296%s9223372036854775807 = %d, wanted -9223372032559808513\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_9223372036854775808_ssa(4294967296); got != 0 {
-               fmt.Printf("div_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775808_uint64_ssa(9223372036854775808); got != 1 {
-               fmt.Printf("div_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(-1); got != -9223372036854775808 {
+               fmt.Printf("xor_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_9223372036854775808_ssa(9223372036854775808); got != 1 {
-               fmt.Printf("div_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775808_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("div_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(0); got != 9223372036854775807 {
+               fmt.Printf("xor_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_9223372036854775808_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("div_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(1); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 9223372036854775807%s1 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_18446744073709551615_ssa(0); got != 0 {
-               fmt.Printf("div_uint64 0%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(1); got != 9223372036854775806 {
+               fmt.Printf("xor_int64 1%s9223372036854775807 = %d, wanted 9223372036854775806\n", `^`, got)
                failed = true
        }
 
-       if got := div_18446744073709551615_uint64_ssa(1); got != 18446744073709551615 {
-               fmt.Printf("div_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(4294967296); got != 9223372032559808511 {
+               fmt.Printf("xor_int64 9223372036854775807%s4294967296 = %d, wanted 9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_18446744073709551615_ssa(1); got != 0 {
-               fmt.Printf("div_uint64 1%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(4294967296); got != 9223372032559808511 {
+               fmt.Printf("xor_int64 4294967296%s9223372036854775807 = %d, wanted 9223372032559808511\n", `^`, got)
                failed = true
        }
 
-       if got := div_18446744073709551615_uint64_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("div_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("xor_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_18446744073709551615_ssa(4294967296); got != 0 {
-               fmt.Printf("div_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(9223372036854775806); got != 1 {
+               fmt.Printf("xor_int64 9223372036854775806%s9223372036854775807 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_18446744073709551615_uint64_ssa(9223372036854775808); got != 1 {
-               fmt.Printf("div_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 1\n", `/`, got)
+       if got := xor_9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("xor_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_uint64_18446744073709551615_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("div_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `/`, got)
+       if got := xor_int64_9223372036854775807_ssa(9223372036854775807); got != 0 {
+               fmt.Printf("xor_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_18446744073709551615_uint64_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("div_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `/`, got)
+       if got := add_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("add_uint32 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := div_uint64_18446744073709551615_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("div_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `/`, got)
+       if got := add_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("add_uint32 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_uint64_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_0_uint32_ssa(1); got != 1 {
+               fmt.Printf("add_uint32 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_0_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint32_0_ssa(1); got != 1 {
+               fmt.Printf("add_uint32 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_uint64_ssa(1); got != 0 {
-               fmt.Printf("mul_uint64 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := add_0_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("add_uint32 0%s4294967295 = %d, wanted 4294967295\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_0_ssa(1); got != 0 {
-               fmt.Printf("mul_uint64 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint32_0_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("add_uint32 4294967295%s0 = %d, wanted 4294967295\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_uint64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := add_1_uint32_ssa(0); got != 1 {
+               fmt.Printf("add_uint32 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_0_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_uint64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint32_1_ssa(0); got != 1 {
+               fmt.Printf("add_uint32 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mul_uint64 0%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := add_1_uint32_ssa(1); got != 2 {
+               fmt.Printf("add_uint32 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_0_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mul_uint64 9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint32_1_ssa(1); got != 2 {
+               fmt.Printf("add_uint32 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("mul_uint64 0%s18446744073709551615 = %d, wanted 0\n", `*`, got)
+       if got := add_1_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("add_uint32 1%s4294967295 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_0_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("mul_uint64 18446744073709551615%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint32_1_ssa(4294967295); got != 0 {
+               fmt.Printf("add_uint32 4294967295%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_uint64_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_4294967295_uint32_ssa(0); got != 4294967295 {
+               fmt.Printf("add_uint32 4294967295%s0 = %d, wanted 4294967295\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_1_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := add_uint32_4294967295_ssa(0); got != 4294967295 {
+               fmt.Printf("add_uint32 0%s4294967295 = %d, wanted 4294967295\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_uint64_ssa(1); got != 1 {
-               fmt.Printf("mul_uint64 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := add_4294967295_uint32_ssa(1); got != 0 {
+               fmt.Printf("add_uint32 4294967295%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_1_ssa(1); got != 1 {
-               fmt.Printf("mul_uint64 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := add_uint32_4294967295_ssa(1); got != 0 {
+               fmt.Printf("add_uint32 1%s4294967295 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_uint64_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mul_uint64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := add_4294967295_uint32_ssa(4294967295); got != 4294967294 {
+               fmt.Printf("add_uint32 4294967295%s4294967295 = %d, wanted 4294967294\n", `+`, got)
                failed = true
        }
 
-       if got := mul_uint64_1_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mul_uint64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+       if got := add_uint32_4294967295_ssa(4294967295); got != 4294967294 {
+               fmt.Printf("add_uint32 4294967295%s4294967295 = %d, wanted 4294967294\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := sub_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("sub_uint32 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_1_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := sub_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("sub_uint32 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_uint64_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("mul_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551615\n", `*`, got)
+       if got := sub_0_uint32_ssa(1); got != 4294967295 {
+               fmt.Printf("sub_uint32 0%s1 = %d, wanted 4294967295\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_1_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("mul_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `*`, got)
+       if got := sub_uint32_0_ssa(1); got != 1 {
+               fmt.Printf("sub_uint32 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967296_uint64_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_0_uint32_ssa(4294967295); got != 1 {
+               fmt.Printf("sub_uint32 0%s4294967295 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint32_0_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("sub_uint32 4294967295%s0 = %d, wanted 4294967295\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967296_uint64_ssa(1); got != 4294967296 {
-               fmt.Printf("mul_uint64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+       if got := sub_1_uint32_ssa(0); got != 1 {
+               fmt.Printf("sub_uint32 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_4294967296_ssa(1); got != 4294967296 {
-               fmt.Printf("mul_uint64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := sub_uint32_1_ssa(0); got != 4294967295 {
+               fmt.Printf("sub_uint32 0%s1 = %d, wanted 4294967295\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967296_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_uint64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := sub_1_uint32_ssa(1); got != 0 {
+               fmt.Printf("sub_uint32 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_uint64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint32_1_ssa(1); got != 0 {
+               fmt.Printf("sub_uint32 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967296_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mul_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := sub_1_uint32_ssa(4294967295); got != 2 {
+               fmt.Printf("sub_uint32 1%s4294967295 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_4294967296_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mul_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint32_1_ssa(4294967295); got != 4294967294 {
+               fmt.Printf("sub_uint32 4294967295%s1 = %d, wanted 4294967294\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967296_uint64_ssa(18446744073709551615); got != 18446744069414584320 {
-               fmt.Printf("mul_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744069414584320\n", `*`, got)
+       if got := sub_4294967295_uint32_ssa(0); got != 4294967295 {
+               fmt.Printf("sub_uint32 4294967295%s0 = %d, wanted 4294967295\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_4294967296_ssa(18446744073709551615); got != 18446744069414584320 {
-               fmt.Printf("mul_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584320\n", `*`, got)
+       if got := sub_uint32_4294967295_ssa(0); got != 1 {
+               fmt.Printf("sub_uint32 0%s4294967295 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775808_uint64_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_4294967295_uint32_ssa(1); got != 4294967294 {
+               fmt.Printf("sub_uint32 4294967295%s1 = %d, wanted 4294967294\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 0%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint32_4294967295_ssa(1); got != 2 {
+               fmt.Printf("sub_uint32 1%s4294967295 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775808_uint64_ssa(1); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 9223372036854775808%s1 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := sub_4294967295_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("sub_uint32 4294967295%s4294967295 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint64_9223372036854775808_ssa(1); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 1%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := sub_uint32_4294967295_ssa(4294967295); got != 0 {
+               fmt.Printf("sub_uint32 4294967295%s4294967295 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775808_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := div_0_uint32_ssa(1); got != 0 {
+               fmt.Printf("div_uint32 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint64_9223372036854775808_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := div_0_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("div_uint32 0%s4294967295 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mul_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := div_uint32_1_ssa(0); got != 0 {
+               fmt.Printf("div_uint32 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mul_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := div_1_uint32_ssa(1); got != 1 {
+               fmt.Printf("div_uint32 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := div_uint32_1_ssa(1); got != 1 {
+               fmt.Printf("div_uint32 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := div_1_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("div_uint32 1%s4294967295 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_18446744073709551615_uint64_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 18446744073709551615%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_uint32_1_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("div_uint32 4294967295%s1 = %d, wanted 4294967295\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint64_18446744073709551615_ssa(0); got != 0 {
-               fmt.Printf("mul_uint64 0%s18446744073709551615 = %d, wanted 0\n", `*`, got)
+       if got := div_uint32_4294967295_ssa(0); got != 0 {
+               fmt.Printf("div_uint32 0%s4294967295 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_18446744073709551615_uint64_ssa(1); got != 18446744073709551615 {
-               fmt.Printf("mul_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551615\n", `*`, got)
+       if got := div_4294967295_uint32_ssa(1); got != 4294967295 {
+               fmt.Printf("div_uint32 4294967295%s1 = %d, wanted 4294967295\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint64_18446744073709551615_ssa(1); got != 18446744073709551615 {
-               fmt.Printf("mul_uint64 1%s18446744073709551615 = %d, wanted 18446744073709551615\n", `*`, got)
+       if got := div_uint32_4294967295_ssa(1); got != 0 {
+               fmt.Printf("div_uint32 1%s4294967295 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_18446744073709551615_uint64_ssa(4294967296); got != 18446744069414584320 {
-               fmt.Printf("mul_uint64 18446744073709551615%s4294967296 = %d, wanted 18446744069414584320\n", `*`, got)
+       if got := div_4294967295_uint32_ssa(4294967295); got != 1 {
+               fmt.Printf("div_uint32 4294967295%s4294967295 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint64_18446744073709551615_ssa(4294967296); got != 18446744069414584320 {
-               fmt.Printf("mul_uint64 4294967296%s18446744073709551615 = %d, wanted 18446744069414584320\n", `*`, got)
+       if got := div_uint32_4294967295_ssa(4294967295); got != 1 {
+               fmt.Printf("div_uint32 4294967295%s4294967295 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := mul_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("mul_uint32 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("mul_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `*`, got)
+       if got := mul_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("mul_uint32 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_18446744073709551615_uint64_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("mul_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `*`, got)
+       if got := mul_0_uint32_ssa(1); got != 0 {
+               fmt.Printf("mul_uint32 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_uint64_18446744073709551615_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("mul_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 1\n", `*`, got)
+       if got := mul_uint32_0_ssa(1); got != 0 {
+               fmt.Printf("mul_uint32 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_0_uint64_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint64 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := mul_0_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("mul_uint32 0%s4294967295 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_0_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint64 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := mul_uint32_0_ssa(4294967295); got != 0 {
+               fmt.Printf("mul_uint32 4294967295%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_0_uint64_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint64 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := mul_1_uint32_ssa(0); got != 0 {
+               fmt.Printf("mul_uint32 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_0_ssa(1); got != 1 {
-               fmt.Printf("lsh_uint64 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := mul_uint32_1_ssa(0); got != 0 {
+               fmt.Printf("mul_uint32 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_0_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 0%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := mul_1_uint32_ssa(1); got != 1 {
+               fmt.Printf("mul_uint32 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_0_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("lsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `<<`, got)
+       if got := mul_uint32_1_ssa(1); got != 1 {
+               fmt.Printf("mul_uint32 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_0_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := mul_1_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("mul_uint32 1%s4294967295 = %d, wanted 4294967295\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `<<`, got)
+       if got := mul_uint32_1_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("mul_uint32 4294967295%s1 = %d, wanted 4294967295\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_0_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := mul_4294967295_uint32_ssa(0); got != 0 {
+               fmt.Printf("mul_uint32 4294967295%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `<<`, got)
+       if got := mul_uint32_4294967295_ssa(0); got != 0 {
+               fmt.Printf("mul_uint32 0%s4294967295 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_1_uint64_ssa(0); got != 1 {
-               fmt.Printf("lsh_uint64 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := mul_4294967295_uint32_ssa(1); got != 4294967295 {
+               fmt.Printf("mul_uint32 4294967295%s1 = %d, wanted 4294967295\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_1_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint64 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := mul_uint32_4294967295_ssa(1); got != 4294967295 {
+               fmt.Printf("mul_uint32 1%s4294967295 = %d, wanted 4294967295\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_1_uint64_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint64 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := mul_4294967295_uint32_ssa(4294967295); got != 1 {
+               fmt.Printf("mul_uint32 4294967295%s4294967295 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_uint64_1_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint64 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := mul_uint32_4294967295_ssa(4294967295); got != 1 {
+               fmt.Printf("mul_uint32 4294967295%s4294967295 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := lsh_1_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 1%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint32 0%s0 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_1_ssa(4294967296); got != 8589934592 {
-               fmt.Printf("lsh_uint64 4294967296%s1 = %d, wanted 8589934592\n", `<<`, got)
+       if got := lsh_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint32 0%s0 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_1_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_0_uint32_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint32 0%s1 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_1_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s1 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_0_ssa(1); got != 1 {
+               fmt.Printf("lsh_uint32 1%s0 = %d, wanted 1\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_1_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_0_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("lsh_uint32 0%s4294967295 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_1_ssa(18446744073709551615); got != 18446744073709551614 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `<<`, got)
+       if got := lsh_uint32_0_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("lsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_4294967296_uint64_ssa(0); got != 4294967296 {
-               fmt.Printf("lsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `<<`, got)
+       if got := lsh_1_uint32_ssa(0); got != 1 {
+               fmt.Printf("lsh_uint32 1%s0 = %d, wanted 1\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint64 0%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_1_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint32 0%s1 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_4294967296_uint64_ssa(1); got != 8589934592 {
-               fmt.Printf("lsh_uint64 4294967296%s1 = %d, wanted 8589934592\n", `<<`, got)
+       if got := lsh_1_uint32_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint32 1%s1 = %d, wanted 2\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_4294967296_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint64 1%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_1_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint32 1%s1 = %d, wanted 2\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_4294967296_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_1_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("lsh_uint32 1%s4294967295 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_1_ssa(4294967295); got != 4294967294 {
+               fmt.Printf("lsh_uint32 4294967295%s1 = %d, wanted 4294967294\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_4294967296_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_4294967295_uint32_ssa(0); got != 4294967295 {
+               fmt.Printf("lsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_4294967296_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_4294967295_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint32 0%s4294967295 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_4294967296_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_4294967295_uint32_ssa(1); got != 4294967294 {
+               fmt.Printf("lsh_uint32 4294967295%s1 = %d, wanted 4294967294\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_4294967296_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_4294967295_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint32 1%s4294967295 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `<<`, got)
+       if got := lsh_4294967295_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("lsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_uint64_9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := lsh_uint32_4294967295_ssa(4294967295); got != 0 {
+               fmt.Printf("lsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := lsh_9223372036854775808_uint64_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s1 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint32 0%s0 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_9223372036854775808_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint32 0%s0 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_9223372036854775808_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_0_uint32_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint32 0%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_9223372036854775808_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_0_ssa(1); got != 1 {
+               fmt.Printf("rsh_uint32 1%s0 = %d, wanted 1\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_0_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("rsh_uint32 0%s4294967295 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_0_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("rsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_9223372036854775808_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_1_uint32_ssa(0); got != 1 {
+               fmt.Printf("rsh_uint32 1%s0 = %d, wanted 1\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_9223372036854775808_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_1_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint32 0%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `<<`, got)
+       if got := rsh_1_uint32_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint32 1%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_18446744073709551615_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_1_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint32 1%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_18446744073709551615_uint64_ssa(1); got != 18446744073709551614 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s1 = %d, wanted 18446744073709551614\n", `<<`, got)
+       if got := rsh_1_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("rsh_uint32 1%s4294967295 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_18446744073709551615_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_1_ssa(4294967295); got != 2147483647 {
+               fmt.Printf("rsh_uint32 4294967295%s1 = %d, wanted 2147483647\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_18446744073709551615_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_4294967295_uint32_ssa(0); got != 4294967295 {
+               fmt.Printf("rsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_18446744073709551615_ssa(4294967296); got != 0 {
-               fmt.Printf("lsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_4294967295_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint32 0%s4294967295 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_18446744073709551615_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_4294967295_uint32_ssa(1); got != 2147483647 {
+               fmt.Printf("rsh_uint32 4294967295%s1 = %d, wanted 2147483647\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_18446744073709551615_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("lsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_4294967295_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint32 1%s4294967295 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_4294967295_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("rsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := lsh_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("lsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `<<`, got)
+       if got := rsh_uint32_4294967295_ssa(4294967295); got != 0 {
+               fmt.Printf("rsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := rsh_0_uint64_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint64 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := mod_0_uint32_ssa(1); got != 0 {
+               fmt.Printf("mod_uint32 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_uint64_0_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint64 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := mod_0_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("mod_uint32 0%s4294967295 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_0_uint64_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint64 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := mod_uint32_1_ssa(0); got != 0 {
+               fmt.Printf("mod_uint32 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_uint64_0_ssa(1); got != 1 {
-               fmt.Printf("rsh_uint64 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := mod_1_uint32_ssa(1); got != 0 {
+               fmt.Printf("mod_uint32 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_0_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 0%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := mod_uint32_1_ssa(1); got != 0 {
+               fmt.Printf("mod_uint32 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_uint64_0_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("rsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `>>`, got)
+       if got := mod_1_uint32_ssa(4294967295); got != 1 {
+               fmt.Printf("mod_uint32 1%s4294967295 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_0_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := mod_uint32_1_ssa(4294967295); got != 0 {
+               fmt.Printf("mod_uint32 4294967295%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_uint64_0_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `>>`, got)
+       if got := mod_uint32_4294967295_ssa(0); got != 0 {
+               fmt.Printf("mod_uint32 0%s4294967295 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_0_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := mod_4294967295_uint32_ssa(1); got != 0 {
+               fmt.Printf("mod_uint32 4294967295%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_uint64_0_ssa(18446744073709551615); got != 18446744073709551615 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `>>`, got)
+       if got := mod_uint32_4294967295_ssa(1); got != 1 {
+               fmt.Printf("mod_uint32 1%s4294967295 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_1_uint64_ssa(0); got != 1 {
-               fmt.Printf("rsh_uint64 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := mod_4294967295_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("mod_uint32 4294967295%s4294967295 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_uint64_1_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint64 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := mod_uint32_4294967295_ssa(4294967295); got != 0 {
+               fmt.Printf("mod_uint32 4294967295%s4294967295 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := rsh_1_uint64_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint64 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := and_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("and_uint32 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_1_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint64 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := and_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("and_uint32 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_1_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 1%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_0_uint32_ssa(1); got != 0 {
+               fmt.Printf("and_uint32 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_1_ssa(4294967296); got != 2147483648 {
-               fmt.Printf("rsh_uint64 4294967296%s1 = %d, wanted 2147483648\n", `>>`, got)
+       if got := and_uint32_0_ssa(1); got != 0 {
+               fmt.Printf("and_uint32 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_1_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := and_0_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("and_uint32 0%s4294967295 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_1_ssa(9223372036854775808); got != 4611686018427387904 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s1 = %d, wanted 4611686018427387904\n", `>>`, got)
+       if got := and_uint32_0_ssa(4294967295); got != 0 {
+               fmt.Printf("and_uint32 4294967295%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_1_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := and_1_uint32_ssa(0); got != 0 {
+               fmt.Printf("and_uint32 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_1_ssa(18446744073709551615); got != 9223372036854775807 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s1 = %d, wanted 9223372036854775807\n", `>>`, got)
+       if got := and_uint32_1_ssa(0); got != 0 {
+               fmt.Printf("and_uint32 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_4294967296_uint64_ssa(0); got != 4294967296 {
-               fmt.Printf("rsh_uint64 4294967296%s0 = %d, wanted 4294967296\n", `>>`, got)
+       if got := and_1_uint32_ssa(1); got != 1 {
+               fmt.Printf("and_uint32 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint64 0%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_uint32_1_ssa(1); got != 1 {
+               fmt.Printf("and_uint32 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_4294967296_uint64_ssa(1); got != 2147483648 {
-               fmt.Printf("rsh_uint64 4294967296%s1 = %d, wanted 2147483648\n", `>>`, got)
+       if got := and_1_uint32_ssa(4294967295); got != 1 {
+               fmt.Printf("and_uint32 1%s4294967295 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_4294967296_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint64 1%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_uint32_1_ssa(4294967295); got != 1 {
+               fmt.Printf("and_uint32 4294967295%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_4294967296_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_4294967295_uint32_ssa(0); got != 0 {
+               fmt.Printf("and_uint32 4294967295%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 4294967296%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_uint32_4294967295_ssa(0); got != 0 {
+               fmt.Printf("and_uint32 0%s4294967295 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_4294967296_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := and_4294967295_uint32_ssa(1); got != 1 {
+               fmt.Printf("and_uint32 4294967295%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_4294967296_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_uint32_4294967295_ssa(1); got != 1 {
+               fmt.Printf("and_uint32 1%s4294967295 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_4294967296_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := and_4294967295_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("and_uint32 4294967295%s4294967295 = %d, wanted 4294967295\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_uint64_4294967296_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := and_uint32_4294967295_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("and_uint32 4294967295%s4294967295 = %d, wanted 4294967295\n", `&`, got)
                failed = true
        }
 
-       if got := rsh_9223372036854775808_uint64_ssa(0); got != 9223372036854775808 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s0 = %d, wanted 9223372036854775808\n", `>>`, got)
+       if got := or_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("or_uint32 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint64 0%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("or_uint32 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_9223372036854775808_uint64_ssa(1); got != 4611686018427387904 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s1 = %d, wanted 4611686018427387904\n", `>>`, got)
+       if got := or_0_uint32_ssa(1); got != 1 {
+               fmt.Printf("or_uint32 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_9223372036854775808_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint64 1%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_0_ssa(1); got != 1 {
+               fmt.Printf("or_uint32 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_9223372036854775808_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := or_0_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("or_uint32 0%s4294967295 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_9223372036854775808_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 4294967296%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_0_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("or_uint32 4294967295%s0 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_1_uint32_ssa(0); got != 1 {
+               fmt.Printf("or_uint32 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_1_ssa(0); got != 1 {
+               fmt.Printf("or_uint32 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_9223372036854775808_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := or_1_uint32_ssa(1); got != 1 {
+               fmt.Printf("or_uint32 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_9223372036854775808_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_1_ssa(1); got != 1 {
+               fmt.Printf("or_uint32 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_18446744073709551615_uint64_ssa(0); got != 18446744073709551615 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s0 = %d, wanted 18446744073709551615\n", `>>`, got)
+       if got := or_1_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("or_uint32 1%s4294967295 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_18446744073709551615_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint64 0%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_1_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("or_uint32 4294967295%s1 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_18446744073709551615_uint64_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s1 = %d, wanted 9223372036854775807\n", `>>`, got)
+       if got := or_4294967295_uint32_ssa(0); got != 4294967295 {
+               fmt.Printf("or_uint32 4294967295%s0 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_18446744073709551615_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint64 1%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_4294967295_ssa(0); got != 4294967295 {
+               fmt.Printf("or_uint32 0%s4294967295 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_18446744073709551615_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s4294967296 = %d, wanted 0\n", `>>`, got)
+       if got := or_4294967295_uint32_ssa(1); got != 4294967295 {
+               fmt.Printf("or_uint32 4294967295%s1 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_18446744073709551615_ssa(4294967296); got != 0 {
-               fmt.Printf("rsh_uint64 4294967296%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_4294967295_ssa(1); got != 4294967295 {
+               fmt.Printf("or_uint32 1%s4294967295 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_18446744073709551615_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 0\n", `>>`, got)
+       if got := or_4294967295_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("or_uint32 4294967295%s4294967295 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint64_18446744073709551615_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("rsh_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := or_uint32_4294967295_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("or_uint32 4294967295%s4294967295 = %d, wanted 4294967295\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := xor_0_uint32_ssa(0); got != 0 {
+               fmt.Printf("xor_uint32 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := rsh_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("rsh_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `>>`, got)
+       if got := xor_uint32_0_ssa(0); got != 0 {
+               fmt.Printf("xor_uint32 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_uint64_ssa(1); got != 0 {
-               fmt.Printf("mod_uint64 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_uint32_ssa(1); got != 1 {
+               fmt.Printf("xor_uint32 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_uint64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint32_0_ssa(1); got != 1 {
+               fmt.Printf("xor_uint32 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mod_uint64 0%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_uint32_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("xor_uint32 0%s4294967295 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("mod_uint64 0%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint32_0_ssa(4294967295); got != 4294967295 {
+               fmt.Printf("xor_uint32 4294967295%s0 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_1_ssa(0); got != 0 {
-               fmt.Printf("mod_uint64 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_uint32_ssa(0); got != 1 {
+               fmt.Printf("xor_uint32 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_uint64_ssa(1); got != 0 {
-               fmt.Printf("mod_uint64 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint32_1_ssa(0); got != 1 {
+               fmt.Printf("xor_uint32 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_1_ssa(1); got != 0 {
-               fmt.Printf("mod_uint64 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_uint32_ssa(1); got != 0 {
+               fmt.Printf("xor_uint32 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_uint64_ssa(4294967296); got != 1 {
-               fmt.Printf("mod_uint64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+       if got := xor_uint32_1_ssa(1); got != 0 {
+               fmt.Printf("xor_uint32 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_1_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_uint64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_uint32_ssa(4294967295); got != 4294967294 {
+               fmt.Printf("xor_uint32 1%s4294967295 = %d, wanted 4294967294\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_uint64_ssa(9223372036854775808); got != 1 {
-               fmt.Printf("mod_uint64 1%s9223372036854775808 = %d, wanted 1\n", `%`, got)
+       if got := xor_uint32_1_ssa(4294967295); got != 4294967294 {
+               fmt.Printf("xor_uint32 4294967295%s1 = %d, wanted 4294967294\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_1_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mod_uint64 9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_4294967295_uint32_ssa(0); got != 4294967295 {
+               fmt.Printf("xor_uint32 4294967295%s0 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_uint64_ssa(18446744073709551615); got != 1 {
-               fmt.Printf("mod_uint64 1%s18446744073709551615 = %d, wanted 1\n", `%`, got)
+       if got := xor_uint32_4294967295_ssa(0); got != 4294967295 {
+               fmt.Printf("xor_uint32 0%s4294967295 = %d, wanted 4294967295\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_1_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("mod_uint64 18446744073709551615%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_4294967295_uint32_ssa(1); got != 4294967294 {
+               fmt.Printf("xor_uint32 4294967295%s1 = %d, wanted 4294967294\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("mod_uint64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint32_4294967295_ssa(1); got != 4294967294 {
+               fmt.Printf("xor_uint32 1%s4294967295 = %d, wanted 4294967294\n", `^`, got)
                failed = true
        }
 
-       if got := mod_4294967296_uint64_ssa(1); got != 0 {
-               fmt.Printf("mod_uint64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_4294967295_uint32_ssa(4294967295); got != 0 {
+               fmt.Printf("xor_uint32 4294967295%s4294967295 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_uint64_4294967296_ssa(1); got != 1 {
-               fmt.Printf("mod_uint64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+       if got := xor_uint32_4294967295_ssa(4294967295); got != 0 {
+               fmt.Printf("xor_uint32 4294967295%s4294967295 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_4294967296_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_uint64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg2147483648_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("add_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_uint64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483648_ssa(-2147483648); got != 0 {
+               fmt.Printf("add_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_uint64_ssa(9223372036854775808); got != 4294967296 {
-               fmt.Printf("mod_uint64 4294967296%s9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_Neg2147483648_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("add_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_4294967296_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mod_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483648_ssa(-2147483647); got != 1 {
+               fmt.Printf("add_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_uint64_ssa(18446744073709551615); got != 4294967296 {
-               fmt.Printf("mod_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_Neg2147483648_int32_ssa(-1); got != 2147483647 {
+               fmt.Printf("add_int32 -2147483648%s-1 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_4294967296_ssa(18446744073709551615); got != 4294967295 {
-               fmt.Printf("mod_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+       if got := add_int32_Neg2147483648_ssa(-1); got != 2147483647 {
+               fmt.Printf("add_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("mod_uint64 0%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg2147483648_int32_ssa(0); got != -2147483648 {
+               fmt.Printf("add_int32 -2147483648%s0 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775808_uint64_ssa(1); got != 0 {
-               fmt.Printf("mod_uint64 9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483648_ssa(0); got != -2147483648 {
+               fmt.Printf("add_int32 0%s-2147483648 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_9223372036854775808_ssa(1); got != 1 {
-               fmt.Printf("mod_uint64 1%s9223372036854775808 = %d, wanted 1\n", `%`, got)
+       if got := add_Neg2147483648_int32_ssa(1); got != -2147483647 {
+               fmt.Printf("add_int32 -2147483648%s1 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775808_uint64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_uint64 9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483648_ssa(1); got != -2147483647 {
+               fmt.Printf("add_int32 1%s-2147483648 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_9223372036854775808_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mod_uint64 4294967296%s9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_Neg2147483648_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("add_int32 -2147483648%s2147483647 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775808_uint64_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mod_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483648_ssa(2147483647); got != -1 {
+               fmt.Printf("add_int32 2147483647%s-2147483648 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_9223372036854775808_ssa(9223372036854775808); got != 0 {
-               fmt.Printf("mod_uint64 9223372036854775808%s9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg2147483647_int32_ssa(-2147483648); got != 1 {
+               fmt.Printf("add_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775808_uint64_ssa(18446744073709551615); got != 9223372036854775808 {
-               fmt.Printf("mod_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `%`, got)
+       if got := add_int32_Neg2147483647_ssa(-2147483648); got != 1 {
+               fmt.Printf("add_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_9223372036854775808_ssa(18446744073709551615); got != 9223372036854775807 {
-               fmt.Printf("mod_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+       if got := add_Neg2147483647_int32_ssa(-2147483647); got != 2 {
+               fmt.Printf("add_int32 -2147483647%s-2147483647 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_18446744073709551615_ssa(0); got != 0 {
-               fmt.Printf("mod_uint64 0%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483647_ssa(-2147483647); got != 2 {
+               fmt.Printf("add_int32 -2147483647%s-2147483647 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_18446744073709551615_uint64_ssa(1); got != 0 {
-               fmt.Printf("mod_uint64 18446744073709551615%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg2147483647_int32_ssa(-1); got != -2147483648 {
+               fmt.Printf("add_int32 -2147483647%s-1 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_18446744073709551615_ssa(1); got != 1 {
-               fmt.Printf("mod_uint64 1%s18446744073709551615 = %d, wanted 1\n", `%`, got)
+       if got := add_int32_Neg2147483647_ssa(-1); got != -2147483648 {
+               fmt.Printf("add_int32 -1%s-2147483647 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := mod_18446744073709551615_uint64_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("mod_uint64 18446744073709551615%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+       if got := add_Neg2147483647_int32_ssa(0); got != -2147483647 {
+               fmt.Printf("add_int32 -2147483647%s0 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_18446744073709551615_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mod_uint64 4294967296%s18446744073709551615 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_int32_Neg2147483647_ssa(0); got != -2147483647 {
+               fmt.Printf("add_int32 0%s-2147483647 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := mod_18446744073709551615_uint64_ssa(9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("mod_uint64 18446744073709551615%s9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+       if got := add_Neg2147483647_int32_ssa(1); got != -2147483646 {
+               fmt.Printf("add_int32 -2147483647%s1 = %d, wanted -2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_18446744073709551615_ssa(9223372036854775808); got != 9223372036854775808 {
-               fmt.Printf("mod_uint64 9223372036854775808%s18446744073709551615 = %d, wanted 9223372036854775808\n", `%`, got)
+       if got := add_int32_Neg2147483647_ssa(1); got != -2147483646 {
+               fmt.Printf("add_int32 1%s-2147483647 = %d, wanted -2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := mod_18446744073709551615_uint64_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("mod_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg2147483647_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("add_int32 -2147483647%s2147483647 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_uint64_18446744073709551615_ssa(18446744073709551615); got != 0 {
-               fmt.Printf("mod_uint64 18446744073709551615%s18446744073709551615 = %d, wanted 0\n", `%`, got)
+       if got := add_int32_Neg2147483647_ssa(2147483647); got != 0 {
+               fmt.Printf("add_int32 2147483647%s-2147483647 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `+`, got)
+       if got := add_Neg1_int32_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("add_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `+`, got)
+       if got := add_int32_Neg1_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("add_int32 -2147483648%s-1 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `+`, got)
+       if got := add_Neg1_int32_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("add_int32 -1%s-2147483647 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `+`, got)
+       if got := add_int32_Neg1_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("add_int32 -2147483647%s-1 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(-4294967296); got != 9223372032559808512 {
-               fmt.Printf("add_int64 -9223372036854775808%s-4294967296 = %d, wanted 9223372032559808512\n", `+`, got)
+       if got := add_Neg1_int32_ssa(-1); got != -2 {
+               fmt.Printf("add_int32 -1%s-1 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(-4294967296); got != 9223372032559808512 {
-               fmt.Printf("add_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `+`, got)
+       if got := add_int32_Neg1_ssa(-1); got != -2 {
+               fmt.Printf("add_int32 -1%s-1 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("add_int64 -9223372036854775808%s-1 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := add_Neg1_int32_ssa(0); got != -1 {
+               fmt.Printf("add_int32 -1%s0 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("add_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := add_int32_Neg1_ssa(0); got != -1 {
+               fmt.Printf("add_int32 0%s-1 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(0); got != -9223372036854775808 {
-               fmt.Printf("add_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := add_Neg1_int32_ssa(1); got != 0 {
+               fmt.Printf("add_int32 -1%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(0); got != -9223372036854775808 {
-               fmt.Printf("add_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := add_int32_Neg1_ssa(1); got != 0 {
+               fmt.Printf("add_int32 1%s-1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775807 {
-               fmt.Printf("add_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := add_Neg1_int32_ssa(2147483647); got != 2147483646 {
+               fmt.Printf("add_int32 -1%s2147483647 = %d, wanted 2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775807 {
-               fmt.Printf("add_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := add_int32_Neg1_ssa(2147483647); got != 2147483646 {
+               fmt.Printf("add_int32 2147483647%s-1 = %d, wanted 2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(4294967296); got != -9223372032559808512 {
-               fmt.Printf("add_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `+`, got)
+       if got := add_0_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("add_int32 0%s-2147483648 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(4294967296); got != -9223372032559808512 {
-               fmt.Printf("add_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `+`, got)
+       if got := add_int32_0_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("add_int32 -2147483648%s0 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -2 {
-               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `+`, got)
+       if got := add_0_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("add_int32 0%s-2147483647 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(9223372036854775806); got != -2 {
-               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `+`, got)
+       if got := add_int32_0_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("add_int32 -2147483647%s0 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `+`, got)
+       if got := add_0_int32_ssa(-1); got != -1 {
+               fmt.Printf("add_int32 0%s-1 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `+`, got)
+       if got := add_int32_0_ssa(-1); got != -1 {
+               fmt.Printf("add_int32 -1%s0 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `+`, got)
+       if got := add_0_int32_ssa(0); got != 0 {
+               fmt.Printf("add_int32 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("add_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `+`, got)
+       if got := add_int32_0_ssa(0); got != 0 {
+               fmt.Printf("add_int32 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 2 {
-               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 2\n", `+`, got)
+       if got := add_0_int32_ssa(1); got != 1 {
+               fmt.Printf("add_int32 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 2 {
-               fmt.Printf("add_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 2\n", `+`, got)
+       if got := add_int32_0_ssa(1); got != 1 {
+               fmt.Printf("add_int32 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(-4294967296); got != 9223372032559808513 {
-               fmt.Printf("add_int64 -9223372036854775807%s-4294967296 = %d, wanted 9223372032559808513\n", `+`, got)
+       if got := add_0_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("add_int32 0%s2147483647 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(-4294967296); got != 9223372032559808513 {
-               fmt.Printf("add_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808513\n", `+`, got)
+       if got := add_int32_0_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("add_int32 2147483647%s0 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("add_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := add_1_int32_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("add_int32 1%s-2147483648 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("add_int64 -1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := add_int32_1_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("add_int32 -2147483648%s1 = %d, wanted -2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(0); got != -9223372036854775807 {
-               fmt.Printf("add_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := add_1_int32_ssa(-2147483647); got != -2147483646 {
+               fmt.Printf("add_int32 1%s-2147483647 = %d, wanted -2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(0); got != -9223372036854775807 {
-               fmt.Printf("add_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := add_int32_1_ssa(-2147483647); got != -2147483646 {
+               fmt.Printf("add_int32 -2147483647%s1 = %d, wanted -2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775806 {
-               fmt.Printf("add_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775806\n", `+`, got)
+       if got := add_1_int32_ssa(-1); got != 0 {
+               fmt.Printf("add_int32 1%s-1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775806 {
-               fmt.Printf("add_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775806\n", `+`, got)
+       if got := add_int32_1_ssa(-1); got != 0 {
+               fmt.Printf("add_int32 -1%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(4294967296); got != -9223372032559808511 {
-               fmt.Printf("add_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `+`, got)
+       if got := add_1_int32_ssa(0); got != 1 {
+               fmt.Printf("add_int32 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(4294967296); got != -9223372032559808511 {
-               fmt.Printf("add_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `+`, got)
+       if got := add_int32_1_ssa(0); got != 1 {
+               fmt.Printf("add_int32 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `+`, got)
+       if got := add_1_int32_ssa(1); got != 2 {
+               fmt.Printf("add_int32 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `+`, got)
+       if got := add_int32_1_ssa(1); got != 2 {
+               fmt.Printf("add_int32 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `+`, got)
+       if got := add_1_int32_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("add_int32 1%s2147483647 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg9223372036854775807_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `+`, got)
+       if got := add_int32_1_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("add_int32 2147483647%s1 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(-9223372036854775808); got != 9223372032559808512 {
-               fmt.Printf("add_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `+`, got)
+       if got := add_2147483647_int32_ssa(-2147483648); got != -1 {
+               fmt.Printf("add_int32 2147483647%s-2147483648 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(-9223372036854775808); got != 9223372032559808512 {
-               fmt.Printf("add_int64 -9223372036854775808%s-4294967296 = %d, wanted 9223372032559808512\n", `+`, got)
+       if got := add_int32_2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("add_int32 -2147483648%s2147483647 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(-9223372036854775807); got != 9223372032559808513 {
-               fmt.Printf("add_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808513\n", `+`, got)
+       if got := add_2147483647_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("add_int32 2147483647%s-2147483647 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(-9223372036854775807); got != 9223372032559808513 {
-               fmt.Printf("add_int64 -9223372036854775807%s-4294967296 = %d, wanted 9223372032559808513\n", `+`, got)
+       if got := add_int32_2147483647_ssa(-2147483647); got != 0 {
+               fmt.Printf("add_int32 -2147483647%s2147483647 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(-4294967296); got != -8589934592 {
-               fmt.Printf("add_int64 -4294967296%s-4294967296 = %d, wanted -8589934592\n", `+`, got)
+       if got := add_2147483647_int32_ssa(-1); got != 2147483646 {
+               fmt.Printf("add_int32 2147483647%s-1 = %d, wanted 2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(-4294967296); got != -8589934592 {
-               fmt.Printf("add_int64 -4294967296%s-4294967296 = %d, wanted -8589934592\n", `+`, got)
+       if got := add_int32_2147483647_ssa(-1); got != 2147483646 {
+               fmt.Printf("add_int32 -1%s2147483647 = %d, wanted 2147483646\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(-1); got != -4294967297 {
-               fmt.Printf("add_int64 -4294967296%s-1 = %d, wanted -4294967297\n", `+`, got)
+       if got := add_2147483647_int32_ssa(0); got != 2147483647 {
+               fmt.Printf("add_int32 2147483647%s0 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(-1); got != -4294967297 {
-               fmt.Printf("add_int64 -1%s-4294967296 = %d, wanted -4294967297\n", `+`, got)
+       if got := add_int32_2147483647_ssa(0); got != 2147483647 {
+               fmt.Printf("add_int32 0%s2147483647 = %d, wanted 2147483647\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(0); got != -4294967296 {
-               fmt.Printf("add_int64 -4294967296%s0 = %d, wanted -4294967296\n", `+`, got)
+       if got := add_2147483647_int32_ssa(1); got != -2147483648 {
+               fmt.Printf("add_int32 2147483647%s1 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(0); got != -4294967296 {
-               fmt.Printf("add_int64 0%s-4294967296 = %d, wanted -4294967296\n", `+`, got)
+       if got := add_int32_2147483647_ssa(1); got != -2147483648 {
+               fmt.Printf("add_int32 1%s2147483647 = %d, wanted -2147483648\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(1); got != -4294967295 {
-               fmt.Printf("add_int64 -4294967296%s1 = %d, wanted -4294967295\n", `+`, got)
+       if got := add_2147483647_int32_ssa(2147483647); got != -2 {
+               fmt.Printf("add_int32 2147483647%s2147483647 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(1); got != -4294967295 {
-               fmt.Printf("add_int64 1%s-4294967296 = %d, wanted -4294967295\n", `+`, got)
+       if got := add_int32_2147483647_ssa(2147483647); got != -2 {
+               fmt.Printf("add_int32 2147483647%s2147483647 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("add_int64 -4294967296%s4294967296 = %d, wanted 0\n", `+`, got)
+       if got := sub_Neg2147483648_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("sub_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("add_int64 4294967296%s-4294967296 = %d, wanted 0\n", `+`, got)
+       if got := sub_int32_Neg2147483648_ssa(-2147483648); got != 0 {
+               fmt.Printf("sub_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(9223372036854775806); got != 9223372032559808510 {
-               fmt.Printf("add_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808510\n", `+`, got)
+       if got := sub_Neg2147483648_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("sub_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(9223372036854775806); got != 9223372032559808510 {
-               fmt.Printf("add_int64 9223372036854775806%s-4294967296 = %d, wanted 9223372032559808510\n", `+`, got)
+       if got := sub_int32_Neg2147483648_ssa(-2147483647); got != 1 {
+               fmt.Printf("sub_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg4294967296_int64_ssa(9223372036854775807); got != 9223372032559808511 {
-               fmt.Printf("add_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808511\n", `+`, got)
+       if got := sub_Neg2147483648_int32_ssa(-1); got != -2147483647 {
+               fmt.Printf("sub_int32 -2147483648%s-1 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg4294967296_ssa(9223372036854775807); got != 9223372032559808511 {
-               fmt.Printf("add_int64 9223372036854775807%s-4294967296 = %d, wanted 9223372032559808511\n", `+`, got)
+       if got := sub_int32_Neg2147483648_ssa(-1); got != 2147483647 {
+               fmt.Printf("sub_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("add_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := sub_Neg2147483648_int32_ssa(0); got != -2147483648 {
+               fmt.Printf("sub_int32 -2147483648%s0 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(-9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("add_int64 -9223372036854775808%s-1 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := sub_int32_Neg2147483648_ssa(0); got != -2147483648 {
+               fmt.Printf("sub_int32 0%s-2147483648 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("add_int64 -1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := sub_Neg2147483648_int32_ssa(1); got != 2147483647 {
+               fmt.Printf("sub_int32 -2147483648%s1 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(-9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("add_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := sub_int32_Neg2147483648_ssa(1); got != -2147483647 {
+               fmt.Printf("sub_int32 1%s-2147483648 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(-4294967296); got != -4294967297 {
-               fmt.Printf("add_int64 -1%s-4294967296 = %d, wanted -4294967297\n", `+`, got)
+       if got := sub_Neg2147483648_int32_ssa(2147483647); got != 1 {
+               fmt.Printf("sub_int32 -2147483648%s2147483647 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(-4294967296); got != -4294967297 {
-               fmt.Printf("add_int64 -4294967296%s-1 = %d, wanted -4294967297\n", `+`, got)
+       if got := sub_int32_Neg2147483648_ssa(2147483647); got != -1 {
+               fmt.Printf("sub_int32 2147483647%s-2147483648 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(-1); got != -2 {
-               fmt.Printf("add_int64 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := sub_Neg2147483647_int32_ssa(-2147483648); got != 1 {
+               fmt.Printf("sub_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(-1); got != -2 {
-               fmt.Printf("add_int64 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := sub_int32_Neg2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("sub_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(0); got != -1 {
-               fmt.Printf("add_int64 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := sub_Neg2147483647_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("sub_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(0); got != -1 {
-               fmt.Printf("add_int64 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := sub_int32_Neg2147483647_ssa(-2147483647); got != 0 {
+               fmt.Printf("sub_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(1); got != 0 {
-               fmt.Printf("add_int64 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := sub_Neg2147483647_int32_ssa(-1); got != -2147483646 {
+               fmt.Printf("sub_int32 -2147483647%s-1 = %d, wanted -2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(1); got != 0 {
-               fmt.Printf("add_int64 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := sub_int32_Neg2147483647_ssa(-1); got != 2147483646 {
+               fmt.Printf("sub_int32 -1%s-2147483647 = %d, wanted 2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("add_int64 -1%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+       if got := sub_Neg2147483647_int32_ssa(0); got != -2147483647 {
+               fmt.Printf("sub_int32 -2147483647%s0 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("add_int64 4294967296%s-1 = %d, wanted 4294967295\n", `+`, got)
+       if got := sub_int32_Neg2147483647_ssa(0); got != 2147483647 {
+               fmt.Printf("sub_int32 0%s-2147483647 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(9223372036854775806); got != 9223372036854775805 {
-               fmt.Printf("add_int64 -1%s9223372036854775806 = %d, wanted 9223372036854775805\n", `+`, got)
+       if got := sub_Neg2147483647_int32_ssa(1); got != -2147483648 {
+               fmt.Printf("sub_int32 -2147483647%s1 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(9223372036854775806); got != 9223372036854775805 {
-               fmt.Printf("add_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775805\n", `+`, got)
+       if got := sub_int32_Neg2147483647_ssa(1); got != -2147483648 {
+               fmt.Printf("sub_int32 1%s-2147483647 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg1_int64_ssa(9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("add_int64 -1%s9223372036854775807 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := sub_Neg2147483647_int32_ssa(2147483647); got != 2 {
+               fmt.Printf("sub_int32 -2147483647%s2147483647 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_Neg1_ssa(9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("add_int64 9223372036854775807%s-1 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := sub_int32_Neg2147483647_ssa(2147483647); got != -2 {
+               fmt.Printf("sub_int32 2147483647%s-2147483647 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("add_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := sub_Neg1_int32_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("sub_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("add_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := sub_int32_Neg1_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("sub_int32 -2147483648%s-1 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("add_int64 0%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := sub_Neg1_int32_ssa(-2147483647); got != 2147483646 {
+               fmt.Printf("sub_int32 -1%s-2147483647 = %d, wanted 2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("add_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := sub_int32_Neg1_ssa(-2147483647); got != -2147483646 {
+               fmt.Printf("sub_int32 -2147483647%s-1 = %d, wanted -2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("add_int64 0%s-4294967296 = %d, wanted -4294967296\n", `+`, got)
+       if got := sub_Neg1_int32_ssa(-1); got != 0 {
+               fmt.Printf("sub_int32 -1%s-1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("add_int64 -4294967296%s0 = %d, wanted -4294967296\n", `+`, got)
+       if got := sub_int32_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("sub_int32 -1%s-1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(-1); got != -1 {
-               fmt.Printf("add_int64 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := sub_Neg1_int32_ssa(0); got != -1 {
+               fmt.Printf("sub_int32 -1%s0 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(-1); got != -1 {
-               fmt.Printf("add_int64 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := sub_int32_Neg1_ssa(0); got != 1 {
+               fmt.Printf("sub_int32 0%s-1 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(0); got != 0 {
-               fmt.Printf("add_int64 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := sub_Neg1_int32_ssa(1); got != -2 {
+               fmt.Printf("sub_int32 -1%s1 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(0); got != 0 {
-               fmt.Printf("add_int64 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := sub_int32_Neg1_ssa(1); got != 2 {
+               fmt.Printf("sub_int32 1%s-1 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(1); got != 1 {
-               fmt.Printf("add_int64 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := sub_Neg1_int32_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("sub_int32 -1%s2147483647 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(1); got != 1 {
-               fmt.Printf("add_int64 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := sub_int32_Neg1_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("sub_int32 2147483647%s-1 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("add_int64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+       if got := sub_0_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("sub_int32 0%s-2147483648 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("add_int64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+       if got := sub_int32_0_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("sub_int32 -2147483648%s0 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("add_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := sub_0_int32_ssa(-2147483647); got != 2147483647 {
+               fmt.Printf("sub_int32 0%s-2147483647 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("add_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := sub_int32_0_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("sub_int32 -2147483647%s0 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_int64_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("add_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := sub_0_int32_ssa(-1); got != 1 {
+               fmt.Printf("sub_int32 0%s-1 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_0_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("add_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := sub_int32_0_ssa(-1); got != -1 {
+               fmt.Printf("sub_int32 -1%s0 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
-               fmt.Printf("add_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := sub_0_int32_ssa(0); got != 0 {
+               fmt.Printf("sub_int32 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(-9223372036854775808); got != -9223372036854775807 {
-               fmt.Printf("add_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775807\n", `+`, got)
+       if got := sub_int32_0_ssa(0); got != 0 {
+               fmt.Printf("sub_int32 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(-9223372036854775807); got != -9223372036854775806 {
-               fmt.Printf("add_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775806\n", `+`, got)
+       if got := sub_0_int32_ssa(1); got != -1 {
+               fmt.Printf("sub_int32 0%s1 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(-9223372036854775807); got != -9223372036854775806 {
-               fmt.Printf("add_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775806\n", `+`, got)
+       if got := sub_int32_0_ssa(1); got != 1 {
+               fmt.Printf("sub_int32 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(-4294967296); got != -4294967295 {
-               fmt.Printf("add_int64 1%s-4294967296 = %d, wanted -4294967295\n", `+`, got)
+       if got := sub_0_int32_ssa(2147483647); got != -2147483647 {
+               fmt.Printf("sub_int32 0%s2147483647 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(-4294967296); got != -4294967295 {
-               fmt.Printf("add_int64 -4294967296%s1 = %d, wanted -4294967295\n", `+`, got)
+       if got := sub_int32_0_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("sub_int32 2147483647%s0 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(-1); got != 0 {
-               fmt.Printf("add_int64 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := sub_1_int32_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("sub_int32 1%s-2147483648 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(-1); got != 0 {
-               fmt.Printf("add_int64 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := sub_int32_1_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("sub_int32 -2147483648%s1 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(0); got != 1 {
-               fmt.Printf("add_int64 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := sub_1_int32_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("sub_int32 1%s-2147483647 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(0); got != 1 {
-               fmt.Printf("add_int64 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := sub_int32_1_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("sub_int32 -2147483647%s1 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(1); got != 2 {
-               fmt.Printf("add_int64 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := sub_1_int32_ssa(-1); got != 2 {
+               fmt.Printf("sub_int32 1%s-1 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(1); got != 2 {
-               fmt.Printf("add_int64 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := sub_int32_1_ssa(-1); got != -2 {
+               fmt.Printf("sub_int32 -1%s1 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(4294967296); got != 4294967297 {
-               fmt.Printf("add_int64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+       if got := sub_1_int32_ssa(0); got != 1 {
+               fmt.Printf("sub_int32 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(4294967296); got != 4294967297 {
-               fmt.Printf("add_int64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+       if got := sub_int32_1_ssa(0); got != -1 {
+               fmt.Printf("sub_int32 0%s1 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(9223372036854775806); got != 9223372036854775807 {
-               fmt.Printf("add_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := sub_1_int32_ssa(1); got != 0 {
+               fmt.Printf("sub_int32 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(9223372036854775806); got != 9223372036854775807 {
-               fmt.Printf("add_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := sub_int32_1_ssa(1); got != 0 {
+               fmt.Printf("sub_int32 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_int64_ssa(9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("add_int64 1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := sub_1_int32_ssa(2147483647); got != -2147483646 {
+               fmt.Printf("sub_int32 1%s2147483647 = %d, wanted -2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_1_ssa(9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("add_int64 9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := sub_int32_1_ssa(2147483647); got != 2147483646 {
+               fmt.Printf("sub_int32 2147483647%s1 = %d, wanted 2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(-9223372036854775808); got != -9223372032559808512 {
-               fmt.Printf("add_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `+`, got)
+       if got := sub_2147483647_int32_ssa(-2147483648); got != -1 {
+               fmt.Printf("sub_int32 2147483647%s-2147483648 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(-9223372036854775808); got != -9223372032559808512 {
-               fmt.Printf("add_int64 -9223372036854775808%s4294967296 = %d, wanted -9223372032559808512\n", `+`, got)
+       if got := sub_int32_2147483647_ssa(-2147483648); got != 1 {
+               fmt.Printf("sub_int32 -2147483648%s2147483647 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(-9223372036854775807); got != -9223372032559808511 {
-               fmt.Printf("add_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808511\n", `+`, got)
+       if got := sub_2147483647_int32_ssa(-2147483647); got != -2 {
+               fmt.Printf("sub_int32 2147483647%s-2147483647 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(-9223372036854775807); got != -9223372032559808511 {
-               fmt.Printf("add_int64 -9223372036854775807%s4294967296 = %d, wanted -9223372032559808511\n", `+`, got)
+       if got := sub_int32_2147483647_ssa(-2147483647); got != 2 {
+               fmt.Printf("sub_int32 -2147483647%s2147483647 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("add_int64 4294967296%s-4294967296 = %d, wanted 0\n", `+`, got)
+       if got := sub_2147483647_int32_ssa(-1); got != -2147483648 {
+               fmt.Printf("sub_int32 2147483647%s-1 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(-4294967296); got != 0 {
-               fmt.Printf("add_int64 -4294967296%s4294967296 = %d, wanted 0\n", `+`, got)
+       if got := sub_int32_2147483647_ssa(-1); got != -2147483648 {
+               fmt.Printf("sub_int32 -1%s2147483647 = %d, wanted -2147483648\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(-1); got != 4294967295 {
-               fmt.Printf("add_int64 4294967296%s-1 = %d, wanted 4294967295\n", `+`, got)
+       if got := sub_2147483647_int32_ssa(0); got != 2147483647 {
+               fmt.Printf("sub_int32 2147483647%s0 = %d, wanted 2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(-1); got != 4294967295 {
-               fmt.Printf("add_int64 -1%s4294967296 = %d, wanted 4294967295\n", `+`, got)
+       if got := sub_int32_2147483647_ssa(0); got != -2147483647 {
+               fmt.Printf("sub_int32 0%s2147483647 = %d, wanted -2147483647\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(0); got != 4294967296 {
-               fmt.Printf("add_int64 4294967296%s0 = %d, wanted 4294967296\n", `+`, got)
+       if got := sub_2147483647_int32_ssa(1); got != 2147483646 {
+               fmt.Printf("sub_int32 2147483647%s1 = %d, wanted 2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(0); got != 4294967296 {
-               fmt.Printf("add_int64 0%s4294967296 = %d, wanted 4294967296\n", `+`, got)
+       if got := sub_int32_2147483647_ssa(1); got != -2147483646 {
+               fmt.Printf("sub_int32 1%s2147483647 = %d, wanted -2147483646\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(1); got != 4294967297 {
-               fmt.Printf("add_int64 4294967296%s1 = %d, wanted 4294967297\n", `+`, got)
+       if got := sub_2147483647_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("sub_int32 2147483647%s2147483647 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(1); got != 4294967297 {
-               fmt.Printf("add_int64 1%s4294967296 = %d, wanted 4294967297\n", `+`, got)
+       if got := sub_int32_2147483647_ssa(2147483647); got != 0 {
+               fmt.Printf("sub_int32 2147483647%s2147483647 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(4294967296); got != 8589934592 {
-               fmt.Printf("add_int64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+       if got := div_Neg2147483648_int32_ssa(-2147483648); got != 1 {
+               fmt.Printf("div_int32 -2147483648%s-2147483648 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(4294967296); got != 8589934592 {
-               fmt.Printf("add_int64 4294967296%s4294967296 = %d, wanted 8589934592\n", `+`, got)
+       if got := div_int32_Neg2147483648_ssa(-2147483648); got != 1 {
+               fmt.Printf("div_int32 -2147483648%s-2147483648 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(9223372036854775806); got != -9223372032559808514 {
-               fmt.Printf("add_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808514\n", `+`, got)
+       if got := div_Neg2147483648_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("div_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(9223372036854775806); got != -9223372032559808514 {
-               fmt.Printf("add_int64 9223372036854775806%s4294967296 = %d, wanted -9223372032559808514\n", `+`, got)
+       if got := div_int32_Neg2147483648_ssa(-2147483647); got != 0 {
+               fmt.Printf("div_int32 -2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_4294967296_int64_ssa(9223372036854775807); got != -9223372032559808513 {
-               fmt.Printf("add_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808513\n", `+`, got)
+       if got := div_Neg2147483648_int32_ssa(-1); got != -2147483648 {
+               fmt.Printf("div_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_4294967296_ssa(9223372036854775807); got != -9223372032559808513 {
-               fmt.Printf("add_int64 9223372036854775807%s4294967296 = %d, wanted -9223372032559808513\n", `+`, got)
+       if got := div_int32_Neg2147483648_ssa(-1); got != 0 {
+               fmt.Printf("div_int32 -1%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(-9223372036854775808); got != -2 {
-               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `+`, got)
+       if got := div_int32_Neg2147483648_ssa(0); got != 0 {
+               fmt.Printf("div_int32 0%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(-9223372036854775808); got != -2 {
-               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `+`, got)
+       if got := div_Neg2147483648_int32_ssa(1); got != -2147483648 {
+               fmt.Printf("div_int32 -2147483648%s1 = %d, wanted -2147483648\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("add_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -1\n", `+`, got)
+       if got := div_int32_Neg2147483648_ssa(1); got != 0 {
+               fmt.Printf("div_int32 1%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `+`, got)
+       if got := div_Neg2147483648_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("div_int32 -2147483648%s2147483647 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(-4294967296); got != 9223372032559808510 {
-               fmt.Printf("add_int64 9223372036854775806%s-4294967296 = %d, wanted 9223372032559808510\n", `+`, got)
+       if got := div_int32_Neg2147483648_ssa(2147483647); got != 0 {
+               fmt.Printf("div_int32 2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(-4294967296); got != 9223372032559808510 {
-               fmt.Printf("add_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808510\n", `+`, got)
+       if got := div_Neg2147483647_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("div_int32 -2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(-1); got != 9223372036854775805 {
-               fmt.Printf("add_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775805\n", `+`, got)
+       if got := div_int32_Neg2147483647_ssa(-2147483648); got != 1 {
+               fmt.Printf("div_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(-1); got != 9223372036854775805 {
-               fmt.Printf("add_int64 -1%s9223372036854775806 = %d, wanted 9223372036854775805\n", `+`, got)
+       if got := div_Neg2147483647_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("div_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(0); got != 9223372036854775806 {
-               fmt.Printf("add_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := div_int32_Neg2147483647_ssa(-2147483647); got != 1 {
+               fmt.Printf("div_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(0); got != 9223372036854775806 {
-               fmt.Printf("add_int64 0%s9223372036854775806 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := div_Neg2147483647_int32_ssa(-1); got != 2147483647 {
+               fmt.Printf("div_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("add_int64 9223372036854775806%s1 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := div_int32_Neg2147483647_ssa(-1); got != 0 {
+               fmt.Printf("div_int32 -1%s-2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("add_int64 1%s9223372036854775806 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := div_int32_Neg2147483647_ssa(0); got != 0 {
+               fmt.Printf("div_int32 0%s-2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(4294967296); got != -9223372032559808514 {
-               fmt.Printf("add_int64 9223372036854775806%s4294967296 = %d, wanted -9223372032559808514\n", `+`, got)
+       if got := div_Neg2147483647_int32_ssa(1); got != -2147483647 {
+               fmt.Printf("div_int32 -2147483647%s1 = %d, wanted -2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(4294967296); got != -9223372032559808514 {
-               fmt.Printf("add_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808514\n", `+`, got)
+       if got := div_int32_Neg2147483647_ssa(1); got != 0 {
+               fmt.Printf("div_int32 1%s-2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(9223372036854775806); got != -4 {
-               fmt.Printf("add_int64 9223372036854775806%s9223372036854775806 = %d, wanted -4\n", `+`, got)
+       if got := div_Neg2147483647_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("div_int32 -2147483647%s2147483647 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(9223372036854775806); got != -4 {
-               fmt.Printf("add_int64 9223372036854775806%s9223372036854775806 = %d, wanted -4\n", `+`, got)
+       if got := div_int32_Neg2147483647_ssa(2147483647); got != -1 {
+               fmt.Printf("div_int32 2147483647%s-2147483647 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775806_int64_ssa(9223372036854775807); got != -3 {
-               fmt.Printf("add_int64 9223372036854775806%s9223372036854775807 = %d, wanted -3\n", `+`, got)
+       if got := div_Neg1_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("div_int32 -1%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775806_ssa(9223372036854775807); got != -3 {
-               fmt.Printf("add_int64 9223372036854775807%s9223372036854775806 = %d, wanted -3\n", `+`, got)
+       if got := div_int32_Neg1_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("div_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `+`, got)
+       if got := div_Neg1_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("div_int32 -1%s-2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("add_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `+`, got)
+       if got := div_int32_Neg1_ssa(-2147483647); got != 2147483647 {
+               fmt.Printf("div_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("add_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `+`, got)
+       if got := div_Neg1_int32_ssa(-1); got != 1 {
+               fmt.Printf("div_int32 -1%s-1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("add_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `+`, got)
+       if got := div_int32_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("div_int32 -1%s-1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(-4294967296); got != 9223372032559808511 {
-               fmt.Printf("add_int64 9223372036854775807%s-4294967296 = %d, wanted 9223372032559808511\n", `+`, got)
+       if got := div_int32_Neg1_ssa(0); got != 0 {
+               fmt.Printf("div_int32 0%s-1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(-4294967296); got != 9223372032559808511 {
-               fmt.Printf("add_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808511\n", `+`, got)
+       if got := div_Neg1_int32_ssa(1); got != -1 {
+               fmt.Printf("div_int32 -1%s1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(-1); got != 9223372036854775806 {
-               fmt.Printf("add_int64 9223372036854775807%s-1 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := div_int32_Neg1_ssa(1); got != -1 {
+               fmt.Printf("div_int32 1%s-1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(-1); got != 9223372036854775806 {
-               fmt.Printf("add_int64 -1%s9223372036854775807 = %d, wanted 9223372036854775806\n", `+`, got)
+       if got := div_Neg1_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("div_int32 -1%s2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(0); got != 9223372036854775807 {
-               fmt.Printf("add_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := div_int32_Neg1_ssa(2147483647); got != -2147483647 {
+               fmt.Printf("div_int32 2147483647%s-1 = %d, wanted -2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(0); got != 9223372036854775807 {
-               fmt.Printf("add_int64 0%s9223372036854775807 = %d, wanted 9223372036854775807\n", `+`, got)
+       if got := div_0_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("div_int32 0%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("add_int64 9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := div_0_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("div_int32 0%s-2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("add_int64 1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `+`, got)
+       if got := div_0_int32_ssa(-1); got != 0 {
+               fmt.Printf("div_int32 0%s-1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(4294967296); got != -9223372032559808513 {
-               fmt.Printf("add_int64 9223372036854775807%s4294967296 = %d, wanted -9223372032559808513\n", `+`, got)
+       if got := div_0_int32_ssa(1); got != 0 {
+               fmt.Printf("div_int32 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(4294967296); got != -9223372032559808513 {
-               fmt.Printf("add_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808513\n", `+`, got)
+       if got := div_0_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("div_int32 0%s2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(9223372036854775806); got != -3 {
-               fmt.Printf("add_int64 9223372036854775807%s9223372036854775806 = %d, wanted -3\n", `+`, got)
+       if got := div_1_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("div_int32 1%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(9223372036854775806); got != -3 {
-               fmt.Printf("add_int64 9223372036854775806%s9223372036854775807 = %d, wanted -3\n", `+`, got)
+       if got := div_int32_1_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("div_int32 -2147483648%s1 = %d, wanted -2147483648\n", `/`, got)
                failed = true
        }
 
-       if got := add_9223372036854775807_int64_ssa(9223372036854775807); got != -2 {
-               fmt.Printf("add_int64 9223372036854775807%s9223372036854775807 = %d, wanted -2\n", `+`, got)
+       if got := div_1_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("div_int32 1%s-2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int64_9223372036854775807_ssa(9223372036854775807); got != -2 {
-               fmt.Printf("add_int64 9223372036854775807%s9223372036854775807 = %d, wanted -2\n", `+`, got)
+       if got := div_int32_1_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("div_int32 -2147483647%s1 = %d, wanted -2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `-`, got)
+       if got := div_1_int32_ssa(-1); got != -1 {
+               fmt.Printf("div_int32 1%s-1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `-`, got)
+       if got := div_int32_1_ssa(-1); got != -1 {
+               fmt.Printf("div_int32 -1%s1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `-`, got)
+       if got := div_int32_1_ssa(0); got != 0 {
+               fmt.Printf("div_int32 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `-`, got)
+       if got := div_1_int32_ssa(1); got != 1 {
+               fmt.Printf("div_int32 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(-4294967296); got != -9223372032559808512 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-4294967296 = %d, wanted -9223372032559808512\n", `-`, got)
+       if got := div_int32_1_ssa(1); got != 1 {
+               fmt.Printf("div_int32 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(-4294967296); got != 9223372032559808512 {
-               fmt.Printf("sub_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `-`, got)
+       if got := div_1_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("div_int32 1%s2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := div_int32_1_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("div_int32 2147483647%s1 = %d, wanted 2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := div_2147483647_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("div_int32 2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(0); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := div_int32_2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("div_int32 -2147483648%s2147483647 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(0); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := div_2147483647_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("div_int32 2147483647%s-2147483647 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 -9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := div_int32_2147483647_ssa(-2147483647); got != -1 {
+               fmt.Printf("div_int32 -2147483647%s2147483647 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := div_2147483647_int32_ssa(-1); got != -2147483647 {
+               fmt.Printf("div_int32 2147483647%s-1 = %d, wanted -2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(4294967296); got != 9223372032559808512 {
-               fmt.Printf("sub_int64 -9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+       if got := div_int32_2147483647_ssa(-1); got != 0 {
+               fmt.Printf("div_int32 -1%s2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(4294967296); got != -9223372032559808512 {
-               fmt.Printf("sub_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `-`, got)
+       if got := div_int32_2147483647_ssa(0); got != 0 {
+               fmt.Printf("div_int32 0%s2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(9223372036854775806); got != 2 {
-               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 2\n", `-`, got)
+       if got := div_2147483647_int32_ssa(1); got != 2147483647 {
+               fmt.Printf("div_int32 2147483647%s1 = %d, wanted 2147483647\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(9223372036854775806); got != -2 {
-               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `-`, got)
+       if got := div_int32_2147483647_ssa(1); got != 0 {
+               fmt.Printf("div_int32 1%s2147483647 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775808_int64_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775807 = %d, wanted 1\n", `-`, got)
+       if got := div_2147483647_int32_ssa(2147483647); got != 1 {
+               fmt.Printf("div_int32 2147483647%s2147483647 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `-`, got)
+       if got := div_int32_2147483647_ssa(2147483647); got != 1 {
+               fmt.Printf("div_int32 2147483647%s2147483647 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 1\n", `-`, got)
+       if got := mul_Neg2147483648_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("mul_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `-`, got)
+       if got := mul_int32_Neg2147483648_ssa(-2147483648); got != 0 {
+               fmt.Printf("mul_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `-`, got)
+       if got := mul_Neg2147483648_int32_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s-2147483647 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `-`, got)
+       if got := mul_int32_Neg2147483648_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(-4294967296); got != -9223372032559808511 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-4294967296 = %d, wanted -9223372032559808511\n", `-`, got)
+       if got := mul_Neg2147483648_int32_ssa(-1); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(-4294967296); got != 9223372032559808511 {
-               fmt.Printf("sub_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808511\n", `-`, got)
+       if got := mul_int32_Neg2147483648_ssa(-1); got != -2147483648 {
+               fmt.Printf("mul_int32 -1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(-1); got != -9223372036854775806 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775806\n", `-`, got)
+       if got := mul_Neg2147483648_int32_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 -2147483648%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(-1); got != 9223372036854775806 {
-               fmt.Printf("sub_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `-`, got)
+       if got := mul_int32_Neg2147483648_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s-2147483648 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(0); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mul_Neg2147483648_int32_ssa(1); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s1 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(0); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 0%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mul_int32_Neg2147483648_ssa(1); got != -2147483648 {
+               fmt.Printf("mul_int32 1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mul_Neg2147483648_int32_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s2147483647 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mul_int32_Neg2147483648_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("mul_int32 2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(4294967296); got != 9223372032559808513 {
-               fmt.Printf("sub_int64 -9223372036854775807%s4294967296 = %d, wanted 9223372032559808513\n", `-`, got)
+       if got := mul_Neg2147483647_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(4294967296); got != -9223372032559808513 {
-               fmt.Printf("sub_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808513\n", `-`, got)
+       if got := mul_int32_Neg2147483647_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s-2147483647 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(9223372036854775806); got != 3 {
-               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 3\n", `-`, got)
+       if got := mul_Neg2147483647_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("mul_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(9223372036854775806); got != -3 {
-               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -3\n", `-`, got)
+       if got := mul_int32_Neg2147483647_ssa(-2147483647); got != 1 {
+               fmt.Printf("mul_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 2 {
-               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 2\n", `-`, got)
+       if got := mul_Neg2147483647_int32_ssa(-1); got != 2147483647 {
+               fmt.Printf("mul_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -2 {
-               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -2\n", `-`, got)
+       if got := mul_int32_Neg2147483647_ssa(-1); got != 2147483647 {
+               fmt.Printf("mul_int32 -1%s-2147483647 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(-9223372036854775808); got != 9223372032559808512 {
-               fmt.Printf("sub_int64 -4294967296%s-9223372036854775808 = %d, wanted 9223372032559808512\n", `-`, got)
+       if got := mul_Neg2147483647_int32_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 -2147483647%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(-9223372036854775808); got != -9223372032559808512 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-4294967296 = %d, wanted -9223372032559808512\n", `-`, got)
+       if got := mul_int32_Neg2147483647_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s-2147483647 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(-9223372036854775807); got != 9223372032559808511 {
-               fmt.Printf("sub_int64 -4294967296%s-9223372036854775807 = %d, wanted 9223372032559808511\n", `-`, got)
+       if got := mul_Neg2147483647_int32_ssa(1); got != -2147483647 {
+               fmt.Printf("mul_int32 -2147483647%s1 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(-9223372036854775807); got != -9223372032559808511 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-4294967296 = %d, wanted -9223372032559808511\n", `-`, got)
+       if got := mul_int32_Neg2147483647_ssa(1); got != -2147483647 {
+               fmt.Printf("mul_int32 1%s-2147483647 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("sub_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `-`, got)
+       if got := mul_Neg2147483647_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("mul_int32 -2147483647%s2147483647 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(-4294967296); got != 0 {
-               fmt.Printf("sub_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `-`, got)
+       if got := mul_int32_Neg2147483647_ssa(2147483647); got != -1 {
+               fmt.Printf("mul_int32 2147483647%s-2147483647 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(-1); got != -4294967295 {
-               fmt.Printf("sub_int64 -4294967296%s-1 = %d, wanted -4294967295\n", `-`, got)
+       if got := mul_Neg1_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 -1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(-1); got != 4294967295 {
-               fmt.Printf("sub_int64 -1%s-4294967296 = %d, wanted 4294967295\n", `-`, got)
+       if got := mul_int32_Neg1_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(0); got != -4294967296 {
-               fmt.Printf("sub_int64 -4294967296%s0 = %d, wanted -4294967296\n", `-`, got)
+       if got := mul_Neg1_int32_ssa(-2147483647); got != 2147483647 {
+               fmt.Printf("mul_int32 -1%s-2147483647 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(0); got != 4294967296 {
-               fmt.Printf("sub_int64 0%s-4294967296 = %d, wanted 4294967296\n", `-`, got)
+       if got := mul_int32_Neg1_ssa(-2147483647); got != 2147483647 {
+               fmt.Printf("mul_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(1); got != -4294967297 {
-               fmt.Printf("sub_int64 -4294967296%s1 = %d, wanted -4294967297\n", `-`, got)
+       if got := mul_Neg1_int32_ssa(-1); got != 1 {
+               fmt.Printf("mul_int32 -1%s-1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(1); got != 4294967297 {
-               fmt.Printf("sub_int64 1%s-4294967296 = %d, wanted 4294967297\n", `-`, got)
+       if got := mul_int32_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("mul_int32 -1%s-1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(4294967296); got != -8589934592 {
-               fmt.Printf("sub_int64 -4294967296%s4294967296 = %d, wanted -8589934592\n", `-`, got)
+       if got := mul_Neg1_int32_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 -1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(4294967296); got != 8589934592 {
-               fmt.Printf("sub_int64 4294967296%s-4294967296 = %d, wanted 8589934592\n", `-`, got)
+       if got := mul_int32_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s-1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(9223372036854775806); got != 9223372032559808514 {
-               fmt.Printf("sub_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808514\n", `-`, got)
+       if got := mul_Neg1_int32_ssa(1); got != -1 {
+               fmt.Printf("mul_int32 -1%s1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(9223372036854775806); got != -9223372032559808514 {
-               fmt.Printf("sub_int64 9223372036854775806%s-4294967296 = %d, wanted -9223372032559808514\n", `-`, got)
+       if got := mul_int32_Neg1_ssa(1); got != -1 {
+               fmt.Printf("mul_int32 1%s-1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg4294967296_int64_ssa(9223372036854775807); got != 9223372032559808513 {
-               fmt.Printf("sub_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808513\n", `-`, got)
+       if got := mul_Neg1_int32_ssa(2147483647); got != -2147483647 {
+               fmt.Printf("mul_int32 -1%s2147483647 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg4294967296_ssa(9223372036854775807); got != -9223372032559808513 {
-               fmt.Printf("sub_int64 9223372036854775807%s-4294967296 = %d, wanted -9223372032559808513\n", `-`, got)
+       if got := mul_int32_Neg1_ssa(2147483647); got != -2147483647 {
+               fmt.Printf("mul_int32 2147483647%s-1 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 -1%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mul_0_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("mul_int32 0%s-2147483648 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mul_int32_0_ssa(-2147483648); got != 0 {
+               fmt.Printf("mul_int32 -2147483648%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("sub_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `-`, got)
+       if got := mul_0_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("mul_int32 0%s-2147483647 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(-9223372036854775807); got != -9223372036854775806 {
-               fmt.Printf("sub_int64 -9223372036854775807%s-1 = %d, wanted -9223372036854775806\n", `-`, got)
+       if got := mul_int32_0_ssa(-2147483647); got != 0 {
+               fmt.Printf("mul_int32 -2147483647%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(-4294967296); got != 4294967295 {
-               fmt.Printf("sub_int64 -1%s-4294967296 = %d, wanted 4294967295\n", `-`, got)
+       if got := mul_0_int32_ssa(-1); got != 0 {
+               fmt.Printf("mul_int32 0%s-1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(-4294967296); got != -4294967295 {
-               fmt.Printf("sub_int64 -4294967296%s-1 = %d, wanted -4294967295\n", `-`, got)
+       if got := mul_int32_0_ssa(-1); got != 0 {
+               fmt.Printf("mul_int32 -1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(-1); got != 0 {
-               fmt.Printf("sub_int64 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := mul_0_int32_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("sub_int64 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := mul_int32_0_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(0); got != -1 {
-               fmt.Printf("sub_int64 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := mul_0_int32_ssa(1); got != 0 {
+               fmt.Printf("mul_int32 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(0); got != 1 {
-               fmt.Printf("sub_int64 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := mul_int32_0_ssa(1); got != 0 {
+               fmt.Printf("mul_int32 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(1); got != -2 {
-               fmt.Printf("sub_int64 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := mul_0_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("mul_int32 0%s2147483647 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(1); got != 2 {
-               fmt.Printf("sub_int64 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := mul_int32_0_ssa(2147483647); got != 0 {
+               fmt.Printf("mul_int32 2147483647%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(4294967296); got != -4294967297 {
-               fmt.Printf("sub_int64 -1%s4294967296 = %d, wanted -4294967297\n", `-`, got)
+       if got := mul_1_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(4294967296); got != 4294967297 {
-               fmt.Printf("sub_int64 4294967296%s-1 = %d, wanted 4294967297\n", `-`, got)
+       if got := mul_int32_1_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s1 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(9223372036854775806); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mul_1_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("mul_int32 1%s-2147483647 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(9223372036854775806); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mul_int32_1_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("mul_int32 -2147483647%s1 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int64_ssa(9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mul_1_int32_ssa(-1); got != -1 {
+               fmt.Printf("mul_int32 1%s-1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mul_int32_1_ssa(-1); got != -1 {
+               fmt.Printf("mul_int32 -1%s1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 0%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mul_1_int32_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 -9223372036854775808%s0 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mul_int32_1_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(-9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 0%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mul_1_int32_ssa(1); got != 1 {
+               fmt.Printf("mul_int32 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 -9223372036854775807%s0 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mul_int32_1_ssa(1); got != 1 {
+               fmt.Printf("mul_int32 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(-4294967296); got != 4294967296 {
-               fmt.Printf("sub_int64 0%s-4294967296 = %d, wanted 4294967296\n", `-`, got)
+       if got := mul_1_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("mul_int32 1%s2147483647 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("sub_int64 -4294967296%s0 = %d, wanted -4294967296\n", `-`, got)
+       if got := mul_int32_1_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("mul_int32 2147483647%s1 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(-1); got != 1 {
-               fmt.Printf("sub_int64 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := mul_2147483647_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(-1); got != -1 {
-               fmt.Printf("sub_int64 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := mul_int32_2147483647_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("mul_int32 -2147483648%s2147483647 = %d, wanted -2147483648\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(0); got != 0 {
-               fmt.Printf("sub_int64 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := mul_2147483647_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("mul_int32 2147483647%s-2147483647 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(0); got != 0 {
-               fmt.Printf("sub_int64 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := mul_int32_2147483647_ssa(-2147483647); got != -1 {
+               fmt.Printf("mul_int32 -2147483647%s2147483647 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(1); got != -1 {
-               fmt.Printf("sub_int64 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := mul_2147483647_int32_ssa(-1); got != -2147483647 {
+               fmt.Printf("mul_int32 2147483647%s-1 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(1); got != 1 {
-               fmt.Printf("sub_int64 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := mul_int32_2147483647_ssa(-1); got != -2147483647 {
+               fmt.Printf("mul_int32 -1%s2147483647 = %d, wanted -2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(4294967296); got != -4294967296 {
-               fmt.Printf("sub_int64 0%s4294967296 = %d, wanted -4294967296\n", `-`, got)
+       if got := mul_2147483647_int32_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 2147483647%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("sub_int64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+       if got := mul_int32_2147483647_ssa(0); got != 0 {
+               fmt.Printf("mul_int32 0%s2147483647 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(9223372036854775806); got != -9223372036854775806 {
-               fmt.Printf("sub_int64 0%s9223372036854775806 = %d, wanted -9223372036854775806\n", `-`, got)
+       if got := mul_2147483647_int32_ssa(1); got != 2147483647 {
+               fmt.Printf("mul_int32 2147483647%s1 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("sub_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `-`, got)
+       if got := mul_int32_2147483647_ssa(1); got != 2147483647 {
+               fmt.Printf("mul_int32 1%s2147483647 = %d, wanted 2147483647\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int64_ssa(9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 0%s9223372036854775807 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mul_2147483647_int32_ssa(2147483647); got != 1 {
+               fmt.Printf("mul_int32 2147483647%s2147483647 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int64_0_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mul_int32_2147483647_ssa(2147483647); got != 1 {
+               fmt.Printf("mul_int32 2147483647%s2147483647 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mod_Neg2147483648_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("mod_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(-9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 -9223372036854775808%s1 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mod_int32_Neg2147483648_ssa(-2147483648); got != 0 {
+               fmt.Printf("mod_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mod_Neg2147483648_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("mod_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(-9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := mod_int32_Neg2147483648_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("mod_int32 -2147483647%s-2147483648 = %d, wanted -2147483647\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(-4294967296); got != 4294967297 {
-               fmt.Printf("sub_int64 1%s-4294967296 = %d, wanted 4294967297\n", `-`, got)
+       if got := mod_Neg2147483648_int32_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 -2147483648%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(-4294967296); got != -4294967297 {
-               fmt.Printf("sub_int64 -4294967296%s1 = %d, wanted -4294967297\n", `-`, got)
+       if got := mod_int32_Neg2147483648_ssa(-1); got != -1 {
+               fmt.Printf("mod_int32 -1%s-2147483648 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(-1); got != 2 {
-               fmt.Printf("sub_int64 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := mod_int32_Neg2147483648_ssa(0); got != 0 {
+               fmt.Printf("mod_int32 0%s-2147483648 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(-1); got != -2 {
-               fmt.Printf("sub_int64 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := mod_Neg2147483648_int32_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 -2147483648%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(0); got != 1 {
-               fmt.Printf("sub_int64 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := mod_int32_Neg2147483648_ssa(1); got != 1 {
+               fmt.Printf("mod_int32 1%s-2147483648 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(0); got != -1 {
-               fmt.Printf("sub_int64 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := mod_Neg2147483648_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("mod_int32 -2147483648%s2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(1); got != 0 {
-               fmt.Printf("sub_int64 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mod_int32_Neg2147483648_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("mod_int32 2147483647%s-2147483648 = %d, wanted 2147483647\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(1); got != 0 {
-               fmt.Printf("sub_int64 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mod_Neg2147483647_int32_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("mod_int32 -2147483647%s-2147483648 = %d, wanted -2147483647\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(4294967296); got != -4294967295 {
-               fmt.Printf("sub_int64 1%s4294967296 = %d, wanted -4294967295\n", `-`, got)
+       if got := mod_int32_Neg2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("mod_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("sub_int64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+       if got := mod_Neg2147483647_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(9223372036854775806); got != -9223372036854775805 {
-               fmt.Printf("sub_int64 1%s9223372036854775806 = %d, wanted -9223372036854775805\n", `-`, got)
+       if got := mod_int32_Neg2147483647_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(9223372036854775806); got != 9223372036854775805 {
-               fmt.Printf("sub_int64 9223372036854775806%s1 = %d, wanted 9223372036854775805\n", `-`, got)
+       if got := mod_Neg2147483647_int32_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int64_ssa(9223372036854775807); got != -9223372036854775806 {
-               fmt.Printf("sub_int64 1%s9223372036854775807 = %d, wanted -9223372036854775806\n", `-`, got)
+       if got := mod_int32_Neg2147483647_ssa(-1); got != -1 {
+               fmt.Printf("mod_int32 -1%s-2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_1_ssa(9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("sub_int64 9223372036854775807%s1 = %d, wanted 9223372036854775806\n", `-`, got)
+       if got := mod_int32_Neg2147483647_ssa(0); got != 0 {
+               fmt.Printf("mod_int32 0%s-2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(-9223372036854775808); got != -9223372032559808512 {
-               fmt.Printf("sub_int64 4294967296%s-9223372036854775808 = %d, wanted -9223372032559808512\n", `-`, got)
+       if got := mod_Neg2147483647_int32_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(-9223372036854775808); got != 9223372032559808512 {
-               fmt.Printf("sub_int64 -9223372036854775808%s4294967296 = %d, wanted 9223372032559808512\n", `-`, got)
+       if got := mod_int32_Neg2147483647_ssa(1); got != 1 {
+               fmt.Printf("mod_int32 1%s-2147483647 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(-9223372036854775807); got != -9223372032559808513 {
-               fmt.Printf("sub_int64 4294967296%s-9223372036854775807 = %d, wanted -9223372032559808513\n", `-`, got)
+       if got := mod_Neg2147483647_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(-9223372036854775807); got != 9223372032559808513 {
-               fmt.Printf("sub_int64 -9223372036854775807%s4294967296 = %d, wanted 9223372032559808513\n", `-`, got)
+       if got := mod_int32_Neg2147483647_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(-4294967296); got != 8589934592 {
-               fmt.Printf("sub_int64 4294967296%s-4294967296 = %d, wanted 8589934592\n", `-`, got)
+       if got := mod_Neg1_int32_ssa(-2147483648); got != -1 {
+               fmt.Printf("mod_int32 -1%s-2147483648 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(-4294967296); got != -8589934592 {
-               fmt.Printf("sub_int64 -4294967296%s4294967296 = %d, wanted -8589934592\n", `-`, got)
+       if got := mod_int32_Neg1_ssa(-2147483648); got != 0 {
+               fmt.Printf("mod_int32 -2147483648%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(-1); got != 4294967297 {
-               fmt.Printf("sub_int64 4294967296%s-1 = %d, wanted 4294967297\n", `-`, got)
+       if got := mod_Neg1_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("mod_int32 -1%s-2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(-1); got != -4294967297 {
-               fmt.Printf("sub_int64 -1%s4294967296 = %d, wanted -4294967297\n", `-`, got)
+       if got := mod_int32_Neg1_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(0); got != 4294967296 {
-               fmt.Printf("sub_int64 4294967296%s0 = %d, wanted 4294967296\n", `-`, got)
+       if got := mod_Neg1_int32_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 -1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(0); got != -4294967296 {
-               fmt.Printf("sub_int64 0%s4294967296 = %d, wanted -4294967296\n", `-`, got)
+       if got := mod_int32_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 -1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(1); got != 4294967295 {
-               fmt.Printf("sub_int64 4294967296%s1 = %d, wanted 4294967295\n", `-`, got)
+       if got := mod_int32_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mod_int32 0%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(1); got != -4294967295 {
-               fmt.Printf("sub_int64 1%s4294967296 = %d, wanted -4294967295\n", `-`, got)
+       if got := mod_Neg1_int32_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 -1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("sub_int64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+       if got := mod_int32_Neg1_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("sub_int64 4294967296%s4294967296 = %d, wanted 0\n", `-`, got)
+       if got := mod_Neg1_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("mod_int32 -1%s2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(9223372036854775806); got != -9223372032559808510 {
-               fmt.Printf("sub_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808510\n", `-`, got)
+       if got := mod_int32_Neg1_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(9223372036854775806); got != 9223372032559808510 {
-               fmt.Printf("sub_int64 9223372036854775806%s4294967296 = %d, wanted 9223372032559808510\n", `-`, got)
+       if got := mod_0_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("mod_int32 0%s-2147483648 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_4294967296_int64_ssa(9223372036854775807); got != -9223372032559808511 {
-               fmt.Printf("sub_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808511\n", `-`, got)
+       if got := mod_0_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 0%s-2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_4294967296_ssa(9223372036854775807); got != 9223372032559808511 {
-               fmt.Printf("sub_int64 9223372036854775807%s4294967296 = %d, wanted 9223372032559808511\n", `-`, got)
+       if got := mod_0_int32_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 0%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(-9223372036854775808); got != -2 {
-               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775808 = %d, wanted -2\n", `-`, got)
+       if got := mod_0_int32_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(-9223372036854775808); got != 2 {
-               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 2\n", `-`, got)
+       if got := mod_0_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 0%s2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(-9223372036854775807); got != -3 {
-               fmt.Printf("sub_int64 9223372036854775806%s-9223372036854775807 = %d, wanted -3\n", `-`, got)
+       if got := mod_1_int32_ssa(-2147483648); got != 1 {
+               fmt.Printf("mod_int32 1%s-2147483648 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(-9223372036854775807); got != 3 {
-               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 3\n", `-`, got)
+       if got := mod_int32_1_ssa(-2147483648); got != 0 {
+               fmt.Printf("mod_int32 -2147483648%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(-4294967296); got != -9223372032559808514 {
-               fmt.Printf("sub_int64 9223372036854775806%s-4294967296 = %d, wanted -9223372032559808514\n", `-`, got)
+       if got := mod_1_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("mod_int32 1%s-2147483647 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(-4294967296); got != 9223372032559808514 {
-               fmt.Printf("sub_int64 -4294967296%s9223372036854775806 = %d, wanted 9223372032559808514\n", `-`, got)
+       if got := mod_int32_1_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 9223372036854775806%s-1 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := mod_1_int32_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(-1); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := mod_int32_1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 -1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(0); got != 9223372036854775806 {
-               fmt.Printf("sub_int64 9223372036854775806%s0 = %d, wanted 9223372036854775806\n", `-`, got)
+       if got := mod_int32_1_ssa(0); got != 0 {
+               fmt.Printf("mod_int32 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(0); got != -9223372036854775806 {
-               fmt.Printf("sub_int64 0%s9223372036854775806 = %d, wanted -9223372036854775806\n", `-`, got)
+       if got := mod_1_int32_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(1); got != 9223372036854775805 {
-               fmt.Printf("sub_int64 9223372036854775806%s1 = %d, wanted 9223372036854775805\n", `-`, got)
+       if got := mod_int32_1_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(1); got != -9223372036854775805 {
-               fmt.Printf("sub_int64 1%s9223372036854775806 = %d, wanted -9223372036854775805\n", `-`, got)
+       if got := mod_1_int32_ssa(2147483647); got != 1 {
+               fmt.Printf("mod_int32 1%s2147483647 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(4294967296); got != 9223372032559808510 {
-               fmt.Printf("sub_int64 9223372036854775806%s4294967296 = %d, wanted 9223372032559808510\n", `-`, got)
+       if got := mod_int32_1_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(4294967296); got != -9223372032559808510 {
-               fmt.Printf("sub_int64 4294967296%s9223372036854775806 = %d, wanted -9223372032559808510\n", `-`, got)
+       if got := mod_2147483647_int32_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("mod_int32 2147483647%s-2147483648 = %d, wanted 2147483647\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `-`, got)
+       if got := mod_int32_2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("mod_int32 -2147483648%s2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `-`, got)
+       if got := mod_2147483647_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775806_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775807 = %d, wanted -1\n", `-`, got)
+       if got := mod_int32_2147483647_ssa(-2147483647); got != 0 {
+               fmt.Printf("mod_int32 -2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `-`, got)
+       if got := mod_2147483647_int32_ssa(-1); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -1\n", `-`, got)
+       if got := mod_int32_2147483647_ssa(-1); got != -1 {
+               fmt.Printf("mod_int32 -1%s2147483647 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("sub_int64 -9223372036854775808%s9223372036854775807 = %d, wanted 1\n", `-`, got)
+       if got := mod_int32_2147483647_ssa(0); got != 0 {
+               fmt.Printf("mod_int32 0%s2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(-9223372036854775807); got != -2 {
-               fmt.Printf("sub_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -2\n", `-`, got)
+       if got := mod_2147483647_int32_ssa(1); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(-9223372036854775807); got != 2 {
-               fmt.Printf("sub_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 2\n", `-`, got)
+       if got := mod_int32_2147483647_ssa(1); got != 1 {
+               fmt.Printf("mod_int32 1%s2147483647 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(-4294967296); got != -9223372032559808513 {
-               fmt.Printf("sub_int64 9223372036854775807%s-4294967296 = %d, wanted -9223372032559808513\n", `-`, got)
+       if got := mod_2147483647_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(-4294967296); got != 9223372032559808513 {
-               fmt.Printf("sub_int64 -4294967296%s9223372036854775807 = %d, wanted 9223372032559808513\n", `-`, got)
+       if got := mod_int32_2147483647_ssa(2147483647); got != 0 {
+               fmt.Printf("mod_int32 2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := and_Neg2147483648_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483648%s-2147483648 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("sub_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775808\n", `-`, got)
+       if got := and_int32_Neg2147483648_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483648%s-2147483648 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(0); got != 9223372036854775807 {
-               fmt.Printf("sub_int64 9223372036854775807%s0 = %d, wanted 9223372036854775807\n", `-`, got)
+       if got := and_Neg2147483648_int32_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483648%s-2147483647 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(0); got != -9223372036854775807 {
-               fmt.Printf("sub_int64 0%s9223372036854775807 = %d, wanted -9223372036854775807\n", `-`, got)
+       if got := and_int32_Neg2147483648_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483647%s-2147483648 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(1); got != 9223372036854775806 {
-               fmt.Printf("sub_int64 9223372036854775807%s1 = %d, wanted 9223372036854775806\n", `-`, got)
+       if got := and_Neg2147483648_int32_ssa(-1); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(1); got != -9223372036854775806 {
-               fmt.Printf("sub_int64 1%s9223372036854775807 = %d, wanted -9223372036854775806\n", `-`, got)
+       if got := and_int32_Neg2147483648_ssa(-1); got != -2147483648 {
+               fmt.Printf("and_int32 -1%s-2147483648 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(4294967296); got != 9223372032559808511 {
-               fmt.Printf("sub_int64 9223372036854775807%s4294967296 = %d, wanted 9223372032559808511\n", `-`, got)
+       if got := and_Neg2147483648_int32_ssa(0); got != 0 {
+               fmt.Printf("and_int32 -2147483648%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(4294967296); got != -9223372032559808511 {
-               fmt.Printf("sub_int64 4294967296%s9223372036854775807 = %d, wanted -9223372032559808511\n", `-`, got)
+       if got := and_int32_Neg2147483648_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s-2147483648 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
-               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `-`, got)
+       if got := and_Neg2147483648_int32_ssa(1); got != 0 {
+               fmt.Printf("and_int32 -2147483648%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("sub_int64 9223372036854775806%s9223372036854775807 = %d, wanted -1\n", `-`, got)
+       if got := and_int32_Neg2147483648_ssa(1); got != 0 {
+               fmt.Printf("and_int32 1%s-2147483648 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `-`, got)
+       if got := and_Neg2147483648_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("and_int32 -2147483648%s2147483647 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int64_9223372036854775807_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("sub_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `-`, got)
+       if got := and_int32_Neg2147483648_ssa(2147483647); got != 0 {
+               fmt.Printf("and_int32 2147483647%s-2147483648 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 1\n", `/`, got)
+       if got := and_Neg2147483647_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483647%s-2147483648 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 1\n", `/`, got)
+       if got := and_int32_Neg2147483647_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483648%s-2147483647 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+       if got := and_Neg2147483647_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("and_int32 -2147483647%s-2147483647 = %d, wanted -2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_Neg2147483647_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("and_int32 -2147483647%s-2147483647 = %d, wanted -2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(-4294967296); got != 2147483648 {
-               fmt.Printf("div_int64 -9223372036854775808%s-4294967296 = %d, wanted 2147483648\n", `/`, got)
+       if got := and_Neg2147483647_int32_ssa(-1); got != -2147483647 {
+               fmt.Printf("and_int32 -2147483647%s-1 = %d, wanted -2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_Neg2147483647_ssa(-1); got != -2147483647 {
+               fmt.Printf("and_int32 -1%s-2147483647 = %d, wanted -2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("div_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `/`, got)
+       if got := and_Neg2147483647_int32_ssa(0); got != 0 {
+               fmt.Printf("and_int32 -2147483647%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 -1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_Neg2147483647_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s-2147483647 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg2147483647_int32_ssa(1); got != 1 {
+               fmt.Printf("and_int32 -2147483647%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("div_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `/`, got)
+       if got := and_int32_Neg2147483647_ssa(1); got != 1 {
+               fmt.Printf("and_int32 1%s-2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(1); got != 0 {
-               fmt.Printf("div_int64 1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg2147483647_int32_ssa(2147483647); got != 1 {
+               fmt.Printf("and_int32 -2147483647%s2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(4294967296); got != -2147483648 {
-               fmt.Printf("div_int64 -9223372036854775808%s4294967296 = %d, wanted -2147483648\n", `/`, got)
+       if got := and_int32_Neg2147483647_ssa(2147483647); got != 1 {
+               fmt.Printf("and_int32 2147483647%s-2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("and_int32 -1%s-2147483648 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+       if got := and_int32_Neg1_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("and_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("and_int32 -1%s-2147483647 = %d, wanted -2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+       if got := and_int32_Neg1_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("and_int32 -2147483647%s-1 = %d, wanted -2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775808_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int32_ssa(-1); got != -1 {
+               fmt.Printf("and_int32 -1%s-1 = %d, wanted -1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("and_int32 -1%s-1 = %d, wanted -1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("div_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+       if got := and_Neg1_int32_ssa(0); got != 0 {
+               fmt.Printf("and_int32 -1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+       if got := and_int32_Neg1_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s-1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("div_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `/`, got)
+       if got := and_Neg1_int32_ssa(1); got != 1 {
+               fmt.Printf("and_int32 -1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(-4294967296); got != 2147483647 {
-               fmt.Printf("div_int64 -9223372036854775807%s-4294967296 = %d, wanted 2147483647\n", `/`, got)
+       if got := and_int32_Neg1_ssa(1); got != 1 {
+               fmt.Printf("and_int32 1%s-1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("and_int32 -1%s2147483647 = %d, wanted 2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("div_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `/`, got)
+       if got := and_int32_Neg1_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("and_int32 2147483647%s-1 = %d, wanted 2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 -1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_0_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("and_int32 0%s-2147483648 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_0_ssa(-2147483648); got != 0 {
+               fmt.Printf("and_int32 -2147483648%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775807 {
-               fmt.Printf("div_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `/`, got)
+       if got := and_0_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("and_int32 0%s-2147483647 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(1); got != 0 {
-               fmt.Printf("div_int64 1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_0_ssa(-2147483647); got != 0 {
+               fmt.Printf("and_int32 -2147483647%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(4294967296); got != -2147483647 {
-               fmt.Printf("div_int64 -9223372036854775807%s4294967296 = %d, wanted -2147483647\n", `/`, got)
+       if got := and_0_int32_ssa(-1); got != 0 {
+               fmt.Printf("and_int32 0%s-1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_0_ssa(-1); got != 0 {
+               fmt.Printf("and_int32 -1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+       if got := and_0_int32_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_0_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg9223372036854775807_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+       if got := and_0_int32_ssa(1); got != 0 {
+               fmt.Printf("and_int32 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `/`, got)
+       if got := and_int32_0_ssa(1); got != 0 {
+               fmt.Printf("and_int32 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_0_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("and_int32 0%s2147483647 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(-9223372036854775808); got != 2147483648 {
-               fmt.Printf("div_int64 -9223372036854775808%s-4294967296 = %d, wanted 2147483648\n", `/`, got)
+       if got := and_int32_0_ssa(2147483647); got != 0 {
+               fmt.Printf("and_int32 2147483647%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_1_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("and_int32 1%s-2147483648 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(-9223372036854775807); got != 2147483647 {
-               fmt.Printf("div_int64 -9223372036854775807%s-4294967296 = %d, wanted 2147483647\n", `/`, got)
+       if got := and_int32_1_ssa(-2147483648); got != 0 {
+               fmt.Printf("and_int32 -2147483648%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(-4294967296); got != 1 {
-               fmt.Printf("div_int64 -4294967296%s-4294967296 = %d, wanted 1\n", `/`, got)
+       if got := and_1_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("and_int32 1%s-2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(-4294967296); got != 1 {
-               fmt.Printf("div_int64 -4294967296%s-4294967296 = %d, wanted 1\n", `/`, got)
+       if got := and_int32_1_ssa(-2147483647); got != 1 {
+               fmt.Printf("and_int32 -2147483647%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(-1); got != 4294967296 {
-               fmt.Printf("div_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `/`, got)
+       if got := and_1_int32_ssa(-1); got != 1 {
+               fmt.Printf("and_int32 1%s-1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 -1%s-4294967296 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_1_ssa(-1); got != 1 {
+               fmt.Printf("and_int32 -1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s-4294967296 = %d, wanted 0\n", `/`, got)
+       if got := and_1_int32_ssa(0); got != 0 {
+               fmt.Printf("and_int32 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(1); got != -4294967296 {
-               fmt.Printf("div_int64 -4294967296%s1 = %d, wanted -4294967296\n", `/`, got)
+       if got := and_int32_1_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(1); got != 0 {
-               fmt.Printf("div_int64 1%s-4294967296 = %d, wanted 0\n", `/`, got)
+       if got := and_1_int32_ssa(1); got != 1 {
+               fmt.Printf("and_int32 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(4294967296); got != -1 {
-               fmt.Printf("div_int64 -4294967296%s4294967296 = %d, wanted -1\n", `/`, got)
+       if got := and_int32_1_ssa(1); got != 1 {
+               fmt.Printf("and_int32 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(4294967296); got != -1 {
-               fmt.Printf("div_int64 4294967296%s-4294967296 = %d, wanted -1\n", `/`, got)
+       if got := and_1_int32_ssa(2147483647); got != 1 {
+               fmt.Printf("and_int32 1%s2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_1_ssa(2147483647); got != 1 {
+               fmt.Printf("and_int32 2147483647%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(9223372036854775806); got != -2147483647 {
-               fmt.Printf("div_int64 9223372036854775806%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+       if got := and_2147483647_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("and_int32 2147483647%s-2147483648 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg4294967296_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_2147483647_ssa(-2147483648); got != 0 {
+               fmt.Printf("and_int32 -2147483648%s2147483647 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg4294967296_ssa(9223372036854775807); got != -2147483647 {
-               fmt.Printf("div_int64 9223372036854775807%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+       if got := and_2147483647_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("and_int32 2147483647%s-2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 -1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_2147483647_ssa(-2147483647); got != 1 {
+               fmt.Printf("and_int32 -2147483647%s2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("div_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `/`, got)
+       if got := and_2147483647_int32_ssa(-1); got != 2147483647 {
+               fmt.Printf("and_int32 2147483647%s-1 = %d, wanted 2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 -1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_2147483647_ssa(-1); got != 2147483647 {
+               fmt.Printf("and_int32 -1%s2147483647 = %d, wanted 2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(-9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("div_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `/`, got)
+       if got := and_2147483647_int32_ssa(0); got != 0 {
+               fmt.Printf("and_int32 2147483647%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 -1%s-4294967296 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_2147483647_ssa(0); got != 0 {
+               fmt.Printf("and_int32 0%s2147483647 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(-4294967296); got != 4294967296 {
-               fmt.Printf("div_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `/`, got)
+       if got := and_2147483647_int32_ssa(1); got != 1 {
+               fmt.Printf("and_int32 2147483647%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(-1); got != 1 {
-               fmt.Printf("div_int64 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := and_int32_2147483647_ssa(1); got != 1 {
+               fmt.Printf("and_int32 1%s2147483647 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("div_int64 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := and_2147483647_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("and_int32 2147483647%s2147483647 = %d, wanted 2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := and_int32_2147483647_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("and_int32 2147483647%s2147483647 = %d, wanted 2147483647\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(1); got != -1 {
-               fmt.Printf("div_int64 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := or_Neg2147483648_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("or_int32 -2147483648%s-2147483648 = %d, wanted -2147483648\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(1); got != -1 {
-               fmt.Printf("div_int64 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := or_int32_Neg2147483648_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("or_int32 -2147483648%s-2147483648 = %d, wanted -2147483648\n", `|`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 -1%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483648_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483648%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(4294967296); got != -4294967296 {
-               fmt.Printf("div_int64 4294967296%s-1 = %d, wanted -4294967296\n", `/`, got)
+       if got := or_int32_Neg2147483648_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s-2147483648 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 -1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483648_int32_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -2147483648%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(9223372036854775806); got != -9223372036854775806 {
-               fmt.Printf("div_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `/`, got)
+       if got := or_int32_Neg2147483648_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s-2147483648 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_Neg1_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 -1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483648_int32_ssa(0); got != -2147483648 {
+               fmt.Printf("or_int32 -2147483648%s0 = %d, wanted -2147483648\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("div_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `/`, got)
+       if got := or_int32_Neg2147483648_ssa(0); got != -2147483648 {
+               fmt.Printf("or_int32 0%s-2147483648 = %d, wanted -2147483648\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 0%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483648_int32_ssa(1); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483648%s1 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 0%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg2147483648_ssa(1); got != -2147483647 {
+               fmt.Printf("or_int32 1%s-2147483648 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 0%s-4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483648_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("or_int32 -2147483648%s2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg2147483648_ssa(2147483647); got != -1 {
+               fmt.Printf("or_int32 2147483647%s-2147483648 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(1); got != 0 {
-               fmt.Printf("div_int64 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483647_int32_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s-2147483648 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg2147483647_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483648%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 0%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483647_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 0%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg2147483647_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 1%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483647_int32_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -2147483647%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("div_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `/`, got)
+       if got := or_int32_Neg2147483647_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s-2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 1%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483647_int32_ssa(0); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s0 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("div_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `/`, got)
+       if got := or_int32_Neg2147483647_ssa(0); got != -2147483647 {
+               fmt.Printf("or_int32 0%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 1%s-4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg2147483647_int32_ssa(1); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s1 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("div_int64 -4294967296%s1 = %d, wanted -4294967296\n", `/`, got)
+       if got := or_int32_Neg2147483647_ssa(1); got != -2147483647 {
+               fmt.Printf("or_int32 1%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(-1); got != -1 {
-               fmt.Printf("div_int64 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := or_Neg2147483647_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("or_int32 -2147483647%s2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(-1); got != -1 {
-               fmt.Printf("div_int64 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := or_int32_Neg2147483647_ssa(2147483647); got != -1 {
+               fmt.Printf("or_int32 2147483647%s-2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg1_int32_ssa(-2147483648); got != -1 {
+               fmt.Printf("or_int32 -1%s-2147483648 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(1); got != 1 {
-               fmt.Printf("div_int64 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := or_int32_Neg1_ssa(-2147483648); got != -1 {
+               fmt.Printf("or_int32 -2147483648%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(1); got != 1 {
-               fmt.Printf("div_int64 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := or_Neg1_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("or_int32 -1%s-2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg1_ssa(-2147483647); got != -1 {
+               fmt.Printf("or_int32 -2147483647%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("div_int64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+       if got := or_Neg1_int32_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("div_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `/`, got)
+       if got := or_Neg1_int32_ssa(0); got != -1 {
+               fmt.Printf("or_int32 -1%s0 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg1_ssa(0); got != -1 {
+               fmt.Printf("or_int32 0%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_1_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("div_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `/`, got)
+       if got := or_Neg1_int32_ssa(1); got != -1 {
+               fmt.Printf("or_int32 -1%s1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg1_ssa(1); got != -1 {
+               fmt.Printf("or_int32 1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(-9223372036854775808); got != -2147483648 {
-               fmt.Printf("div_int64 -9223372036854775808%s4294967296 = %d, wanted -2147483648\n", `/`, got)
+       if got := or_Neg1_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("or_int32 -1%s2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 4294967296%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_Neg1_ssa(2147483647); got != -1 {
+               fmt.Printf("or_int32 2147483647%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(-9223372036854775807); got != -2147483647 {
-               fmt.Printf("div_int64 -9223372036854775807%s4294967296 = %d, wanted -2147483647\n", `/`, got)
+       if got := or_0_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("or_int32 0%s-2147483648 = %d, wanted -2147483648\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(-4294967296); got != -1 {
-               fmt.Printf("div_int64 4294967296%s-4294967296 = %d, wanted -1\n", `/`, got)
+       if got := or_int32_0_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("or_int32 -2147483648%s0 = %d, wanted -2147483648\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(-4294967296); got != -1 {
-               fmt.Printf("div_int64 -4294967296%s4294967296 = %d, wanted -1\n", `/`, got)
+       if got := or_0_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 0%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(-1); got != -4294967296 {
-               fmt.Printf("div_int64 4294967296%s-1 = %d, wanted -4294967296\n", `/`, got)
+       if got := or_int32_0_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s0 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 -1%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_0_int32_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 0%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_0_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s0 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(1); got != 4294967296 {
-               fmt.Printf("div_int64 4294967296%s1 = %d, wanted 4294967296\n", `/`, got)
+       if got := or_0_int32_ssa(0); got != 0 {
+               fmt.Printf("or_int32 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(1); got != 0 {
-               fmt.Printf("div_int64 1%s4294967296 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_0_ssa(0); got != 0 {
+               fmt.Printf("or_int32 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(4294967296); got != 1 {
-               fmt.Printf("div_int64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+       if got := or_0_int32_ssa(1); got != 1 {
+               fmt.Printf("or_int32 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(4294967296); got != 1 {
-               fmt.Printf("div_int64 4294967296%s4294967296 = %d, wanted 1\n", `/`, got)
+       if got := or_int32_0_ssa(1); got != 1 {
+               fmt.Printf("or_int32 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_0_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("or_int32 0%s2147483647 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(9223372036854775806); got != 2147483647 {
-               fmt.Printf("div_int64 9223372036854775806%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+       if got := or_int32_0_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("or_int32 2147483647%s0 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_4294967296_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_1_int32_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("or_int32 1%s-2147483648 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_4294967296_ssa(9223372036854775807); got != 2147483647 {
-               fmt.Printf("div_int64 9223372036854775807%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+       if got := or_int32_1_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483648%s1 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := or_1_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 1%s-2147483647 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+       if got := or_int32_1_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("or_int32 -2147483647%s1 = %d, wanted -2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_1_int32_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `/`, got)
+       if got := or_int32_1_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(-4294967296); got != -2147483647 {
-               fmt.Printf("div_int64 9223372036854775806%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+       if got := or_1_int32_ssa(0); got != 1 {
+               fmt.Printf("or_int32 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_1_ssa(0); got != 1 {
+               fmt.Printf("or_int32 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(-1); got != -9223372036854775806 {
-               fmt.Printf("div_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `/`, got)
+       if got := or_1_int32_ssa(1); got != 1 {
+               fmt.Printf("or_int32 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 -1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_1_ssa(1); got != 1 {
+               fmt.Printf("or_int32 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_1_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("or_int32 1%s2147483647 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(1); got != 9223372036854775806 {
-               fmt.Printf("div_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `/`, got)
+       if got := or_int32_1_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("or_int32 2147483647%s1 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(1); got != 0 {
-               fmt.Printf("div_int64 1%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_2147483647_int32_ssa(-2147483648); got != -1 {
+               fmt.Printf("or_int32 2147483647%s-2147483648 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(4294967296); got != 2147483647 {
-               fmt.Printf("div_int64 9223372036854775806%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+       if got := or_int32_2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("or_int32 -2147483648%s2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 4294967296%s9223372036854775806 = %d, wanted 0\n", `/`, got)
+       if got := or_2147483647_int32_ssa(-2147483647); got != -1 {
+               fmt.Printf("or_int32 2147483647%s-2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(9223372036854775806); got != 1 {
-               fmt.Printf("div_int64 9223372036854775806%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+       if got := or_int32_2147483647_ssa(-2147483647); got != -1 {
+               fmt.Printf("or_int32 -2147483647%s2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(9223372036854775806); got != 1 {
-               fmt.Printf("div_int64 9223372036854775806%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+       if got := or_2147483647_int32_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 2147483647%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775806_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("div_int64 9223372036854775806%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_2147483647_ssa(-1); got != -1 {
+               fmt.Printf("or_int32 -1%s2147483647 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("div_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+       if got := or_2147483647_int32_ssa(0); got != 2147483647 {
+               fmt.Printf("or_int32 2147483647%s0 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 0\n", `/`, got)
+       if got := or_int32_2147483647_ssa(0); got != 2147483647 {
+               fmt.Printf("or_int32 0%s2147483647 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+       if got := or_2147483647_int32_ssa(1); got != 2147483647 {
+               fmt.Printf("or_int32 2147483647%s1 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("div_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `/`, got)
+       if got := or_int32_2147483647_ssa(1); got != 2147483647 {
+               fmt.Printf("or_int32 1%s2147483647 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("div_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `/`, got)
+       if got := or_2147483647_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("or_int32 2147483647%s2147483647 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(-4294967296); got != -2147483647 {
-               fmt.Printf("div_int64 9223372036854775807%s-4294967296 = %d, wanted -2147483647\n", `/`, got)
+       if got := or_int32_2147483647_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("or_int32 2147483647%s2147483647 = %d, wanted 2147483647\n", `|`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(-4294967296); got != 0 {
-               fmt.Printf("div_int64 -4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := xor_Neg2147483648_int32_ssa(-2147483648); got != 0 {
+               fmt.Printf("xor_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(-1); got != -9223372036854775807 {
-               fmt.Printf("div_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `/`, got)
+       if got := xor_int32_Neg2147483648_ssa(-2147483648); got != 0 {
+               fmt.Printf("xor_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(-1); got != 0 {
-               fmt.Printf("div_int64 -1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := xor_Neg2147483648_int32_ssa(-2147483647); got != 1 {
+               fmt.Printf("xor_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(0); got != 0 {
-               fmt.Printf("div_int64 0%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := xor_int32_Neg2147483648_ssa(-2147483647); got != 1 {
+               fmt.Printf("xor_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("div_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `/`, got)
+       if got := xor_Neg2147483648_int32_ssa(-1); got != 2147483647 {
+               fmt.Printf("xor_int32 -2147483648%s-1 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(1); got != 0 {
-               fmt.Printf("div_int64 1%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := xor_int32_Neg2147483648_ssa(-1); got != 2147483647 {
+               fmt.Printf("xor_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(4294967296); got != 2147483647 {
-               fmt.Printf("div_int64 9223372036854775807%s4294967296 = %d, wanted 2147483647\n", `/`, got)
+       if got := xor_Neg2147483648_int32_ssa(0); got != -2147483648 {
+               fmt.Printf("xor_int32 -2147483648%s0 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(4294967296); got != 0 {
-               fmt.Printf("div_int64 4294967296%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := xor_int32_Neg2147483648_ssa(0); got != -2147483648 {
+               fmt.Printf("xor_int32 0%s-2147483648 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
-               fmt.Printf("div_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `/`, got)
+       if got := xor_Neg2147483648_int32_ssa(1); got != -2147483647 {
+               fmt.Printf("xor_int32 -2147483648%s1 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("div_int64 9223372036854775806%s9223372036854775807 = %d, wanted 0\n", `/`, got)
+       if got := xor_int32_Neg2147483648_ssa(1); got != -2147483647 {
+               fmt.Printf("xor_int32 1%s-2147483648 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := div_9223372036854775807_int64_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("div_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `/`, got)
+       if got := xor_Neg2147483648_int32_ssa(2147483647); got != -1 {
+               fmt.Printf("xor_int32 -2147483648%s2147483647 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := div_int64_9223372036854775807_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("div_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `/`, got)
+       if got := xor_int32_Neg2147483648_ssa(2147483647); got != -1 {
+               fmt.Printf("xor_int32 2147483647%s-2147483648 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_Neg2147483647_int32_ssa(-2147483648); got != 1 {
+               fmt.Printf("xor_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_Neg2147483647_ssa(-2147483648); got != 1 {
+               fmt.Printf("xor_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_Neg2147483647_int32_ssa(-2147483647); got != 0 {
+               fmt.Printf("xor_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_int32_Neg2147483647_ssa(-2147483647); got != 0 {
+               fmt.Printf("xor_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_Neg2147483647_int32_ssa(-1); got != 2147483646 {
+               fmt.Printf("xor_int32 -2147483647%s-1 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_Neg2147483647_ssa(-1); got != 2147483646 {
+               fmt.Printf("xor_int32 -1%s-2147483647 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_Neg2147483647_int32_ssa(0); got != -2147483647 {
+               fmt.Printf("xor_int32 -2147483647%s0 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(-1); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_int32_Neg2147483647_ssa(0); got != -2147483647 {
+               fmt.Printf("xor_int32 0%s-2147483647 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+       if got := xor_Neg2147483647_int32_ssa(1); got != -2147483648 {
+               fmt.Printf("xor_int32 -2147483647%s1 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_Neg2147483647_ssa(1); got != -2147483648 {
+               fmt.Printf("xor_int32 1%s-2147483647 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_Neg2147483647_int32_ssa(2147483647); got != -2 {
+               fmt.Printf("xor_int32 -2147483647%s2147483647 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(1); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_int32_Neg2147483647_ssa(2147483647); got != -2 {
+               fmt.Printf("xor_int32 2147483647%s-2147483647 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_Neg1_int32_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("xor_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_Neg1_ssa(-2147483648); got != 2147483647 {
+               fmt.Printf("xor_int32 -2147483648%s-1 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+       if got := xor_Neg1_int32_ssa(-2147483647); got != 2147483646 {
+               fmt.Printf("xor_int32 -1%s-2147483647 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_Neg1_ssa(-2147483647); got != 2147483646 {
+               fmt.Printf("xor_int32 -2147483647%s-1 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_Neg1_int32_ssa(-1); got != 0 {
+               fmt.Printf("xor_int32 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775808_ssa(9223372036854775807); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_int32_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("xor_int32 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_Neg1_int32_ssa(0); got != -1 {
+               fmt.Printf("xor_int32 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_int32_Neg1_ssa(0); got != -1 {
+               fmt.Printf("xor_int32 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `*`, got)
+       if got := xor_Neg1_int32_ssa(1); got != -2 {
+               fmt.Printf("xor_int32 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 1\n", `*`, got)
+       if got := xor_int32_Neg1_ssa(1); got != -2 {
+               fmt.Printf("xor_int32 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := xor_Neg1_int32_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("xor_int32 -1%s2147483647 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+       if got := xor_int32_Neg1_ssa(2147483647); got != -2147483648 {
+               fmt.Printf("xor_int32 2147483647%s-1 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := xor_0_int32_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("xor_int32 0%s-2147483648 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(-1); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := xor_int32_0_ssa(-2147483648); got != -2147483648 {
+               fmt.Printf("xor_int32 -2147483648%s0 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+       if got := xor_0_int32_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("xor_int32 0%s-2147483647 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s-9223372036854775807 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_0_ssa(-2147483647); got != -2147483647 {
+               fmt.Printf("xor_int32 -2147483647%s0 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(1); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := xor_0_int32_ssa(-1); got != -1 {
+               fmt.Printf("xor_int32 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(1); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := xor_int32_0_ssa(-1); got != -1 {
+               fmt.Printf("xor_int32 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 -9223372036854775807%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_0_int32_ssa(0); got != 0 {
+               fmt.Printf("xor_int32 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_int32_0_ssa(0); got != 0 {
+               fmt.Printf("xor_int32 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := xor_0_int32_ssa(1); got != 1 {
+               fmt.Printf("xor_int32 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := xor_int32_0_ssa(1); got != 1 {
+               fmt.Printf("xor_int32 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg9223372036854775807_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `*`, got)
+       if got := xor_0_int32_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("xor_int32 0%s2147483647 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg9223372036854775807_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `*`, got)
+       if got := xor_int32_0_ssa(2147483647); got != 2147483647 {
+               fmt.Printf("xor_int32 2147483647%s0 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := xor_1_int32_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("xor_int32 1%s-2147483648 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_1_ssa(-2147483648); got != -2147483647 {
+               fmt.Printf("xor_int32 -2147483648%s1 = %d, wanted -2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(-9223372036854775807); got != -4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+       if got := xor_1_int32_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("xor_int32 1%s-2147483647 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(-9223372036854775807); got != -4294967296 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := xor_int32_1_ssa(-2147483647); got != -2147483648 {
+               fmt.Printf("xor_int32 -2147483647%s1 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_1_int32_ssa(-1); got != -2 {
+               fmt.Printf("xor_int32 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_1_ssa(-1); got != -2 {
+               fmt.Printf("xor_int32 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(-1); got != 4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_1_int32_ssa(0); got != 1 {
+               fmt.Printf("xor_int32 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(-1); got != 4294967296 {
-               fmt.Printf("mul_int64 -1%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_int32_1_ssa(0); got != 1 {
+               fmt.Printf("xor_int32 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s0 = %d, wanted 0\n", `*`, got)
+       if got := xor_1_int32_ssa(1); got != 0 {
+               fmt.Printf("xor_int32 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_1_ssa(1); got != 0 {
+               fmt.Printf("xor_int32 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(1); got != -4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s1 = %d, wanted -4294967296\n", `*`, got)
+       if got := xor_1_int32_ssa(2147483647); got != 2147483646 {
+               fmt.Printf("xor_int32 1%s2147483647 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(1); got != -4294967296 {
-               fmt.Printf("mul_int64 1%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := xor_int32_1_ssa(2147483647); got != 2147483646 {
+               fmt.Printf("xor_int32 2147483647%s1 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_2147483647_int32_ssa(-2147483648); got != -1 {
+               fmt.Printf("xor_int32 2147483647%s-2147483648 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := xor_int32_2147483647_ssa(-2147483648); got != -1 {
+               fmt.Printf("xor_int32 -2147483648%s2147483647 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(9223372036854775806); got != 8589934592 {
-               fmt.Printf("mul_int64 -4294967296%s9223372036854775806 = %d, wanted 8589934592\n", `*`, got)
+       if got := xor_2147483647_int32_ssa(-2147483647); got != -2 {
+               fmt.Printf("xor_int32 2147483647%s-2147483647 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(9223372036854775806); got != 8589934592 {
-               fmt.Printf("mul_int64 9223372036854775806%s-4294967296 = %d, wanted 8589934592\n", `*`, got)
+       if got := xor_int32_2147483647_ssa(-2147483647); got != -2 {
+               fmt.Printf("xor_int32 -2147483647%s2147483647 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg4294967296_int64_ssa(9223372036854775807); got != 4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_2147483647_int32_ssa(-1); got != -2147483648 {
+               fmt.Printf("xor_int32 2147483647%s-1 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg4294967296_ssa(9223372036854775807); got != 4294967296 {
-               fmt.Printf("mul_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_int32_2147483647_ssa(-1); got != -2147483648 {
+               fmt.Printf("xor_int32 -1%s2147483647 = %d, wanted -2147483648\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_2147483647_int32_ssa(0); got != 2147483647 {
+               fmt.Printf("xor_int32 2147483647%s0 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s-1 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := xor_int32_2147483647_ssa(0); got != 2147483647 {
+               fmt.Printf("xor_int32 0%s2147483647 = %d, wanted 2147483647\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(-9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 -1%s-9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := xor_2147483647_int32_ssa(1); got != 2147483646 {
+               fmt.Printf("xor_int32 2147483647%s1 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(-9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 -9223372036854775807%s-1 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := xor_int32_2147483647_ssa(1); got != 2147483646 {
+               fmt.Printf("xor_int32 1%s2147483647 = %d, wanted 2147483646\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(-4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 -1%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_2147483647_int32_ssa(2147483647); got != 0 {
+               fmt.Printf("xor_int32 2147483647%s2147483647 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(-4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s-1 = %d, wanted 4294967296\n", `*`, got)
+       if got := xor_int32_2147483647_ssa(2147483647); got != 0 {
+               fmt.Printf("xor_int32 2147483647%s2147483647 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(-1); got != 1 {
-               fmt.Printf("mul_int64 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := add_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("add_uint16 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("mul_int64 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := add_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("add_uint16 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_0_uint16_ssa(1); got != 1 {
+               fmt.Printf("add_uint16 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := add_uint16_0_ssa(1); got != 1 {
+               fmt.Printf("add_uint16 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(1); got != -1 {
-               fmt.Printf("mul_int64 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := add_0_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("add_uint16 0%s65535 = %d, wanted 65535\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(1); got != -1 {
-               fmt.Printf("mul_int64 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := add_uint16_0_ssa(65535); got != 65535 {
+               fmt.Printf("add_uint16 65535%s0 = %d, wanted 65535\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 -1%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := add_1_uint16_ssa(0); got != 1 {
+               fmt.Printf("add_uint16 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 4294967296%s-1 = %d, wanted -4294967296\n", `*`, got)
+       if got := add_uint16_1_ssa(0); got != 1 {
+               fmt.Printf("add_uint16 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(9223372036854775806); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := add_1_uint16_ssa(1); got != 2 {
+               fmt.Printf("add_uint16 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(9223372036854775806); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := add_uint16_1_ssa(1); got != 2 {
+               fmt.Printf("add_uint16 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int64_ssa(9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := add_1_uint16_ssa(65535); got != 0 {
+               fmt.Printf("add_uint16 1%s65535 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_Neg1_ssa(9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := add_uint16_1_ssa(65535); got != 0 {
+               fmt.Printf("add_uint16 65535%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 0%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := add_65535_uint16_ssa(0); got != 65535 {
+               fmt.Printf("add_uint16 65535%s0 = %d, wanted 65535\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint16_65535_ssa(0); got != 65535 {
+               fmt.Printf("add_uint16 0%s65535 = %d, wanted 65535\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mul_int64 0%s-9223372036854775807 = %d, wanted 0\n", `*`, got)
+       if got := add_65535_uint16_ssa(1); got != 0 {
+               fmt.Printf("add_uint16 65535%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint16_65535_ssa(1); got != 0 {
+               fmt.Printf("add_uint16 1%s65535 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 0%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := add_65535_uint16_ssa(65535); got != 65534 {
+               fmt.Printf("add_uint16 65535%s65535 = %d, wanted 65534\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_uint16_65535_ssa(65535); got != 65534 {
+               fmt.Printf("add_uint16 65535%s65535 = %d, wanted 65534\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(-1); got != 0 {
-               fmt.Printf("mul_int64 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := sub_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("sub_uint16 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(-1); got != 0 {
-               fmt.Printf("mul_int64 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("sub_uint16 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_0_uint16_ssa(1); got != 65535 {
+               fmt.Printf("sub_uint16 0%s1 = %d, wanted 65535\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint16_0_ssa(1); got != 1 {
+               fmt.Printf("sub_uint16 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(1); got != 0 {
-               fmt.Printf("mul_int64 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := sub_0_uint16_ssa(65535); got != 1 {
+               fmt.Printf("sub_uint16 0%s65535 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(1); got != 0 {
-               fmt.Printf("mul_int64 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint16_0_ssa(65535); got != 65535 {
+               fmt.Printf("sub_uint16 65535%s0 = %d, wanted 65535\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := sub_1_uint16_ssa(0); got != 1 {
+               fmt.Printf("sub_uint16 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint16_1_ssa(0); got != 65535 {
+               fmt.Printf("sub_uint16 0%s1 = %d, wanted 65535\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mul_int64 0%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+       if got := sub_1_uint16_ssa(1); got != 0 {
+               fmt.Printf("sub_uint16 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mul_int64 9223372036854775806%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint16_1_ssa(1); got != 0 {
+               fmt.Printf("sub_uint16 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mul_int64 0%s9223372036854775807 = %d, wanted 0\n", `*`, got)
+       if got := sub_1_uint16_ssa(65535); got != 2 {
+               fmt.Printf("sub_uint16 1%s65535 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_0_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mul_int64 9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_uint16_1_ssa(65535); got != 65534 {
+               fmt.Printf("sub_uint16 65535%s1 = %d, wanted 65534\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 1%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := sub_65535_uint16_ssa(0); got != 65535 {
+               fmt.Printf("sub_uint16 65535%s0 = %d, wanted 65535\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s1 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := sub_uint16_65535_ssa(0); got != 1 {
+               fmt.Printf("sub_uint16 0%s65535 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 1%s-9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := sub_65535_uint16_ssa(1); got != 65534 {
+               fmt.Printf("sub_uint16 65535%s1 = %d, wanted 65534\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 -9223372036854775807%s1 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := sub_uint16_65535_ssa(1); got != 2 {
+               fmt.Printf("sub_uint16 1%s65535 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 1%s-4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := sub_65535_uint16_ssa(65535); got != 0 {
+               fmt.Printf("sub_uint16 65535%s65535 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s1 = %d, wanted -4294967296\n", `*`, got)
+       if got := sub_uint16_65535_ssa(65535); got != 0 {
+               fmt.Printf("sub_uint16 65535%s65535 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(-1); got != -1 {
-               fmt.Printf("mul_int64 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := div_0_uint16_ssa(1); got != 0 {
+               fmt.Printf("div_uint16 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(-1); got != -1 {
-               fmt.Printf("mul_int64 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := div_0_uint16_ssa(65535); got != 0 {
+               fmt.Printf("div_uint16 0%s65535 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_uint16_1_ssa(0); got != 0 {
+               fmt.Printf("div_uint16 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := div_1_uint16_ssa(1); got != 1 {
+               fmt.Printf("div_uint16 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(1); got != 1 {
-               fmt.Printf("mul_int64 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := div_uint16_1_ssa(1); got != 1 {
+               fmt.Printf("div_uint16 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(1); got != 1 {
-               fmt.Printf("mul_int64 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := div_1_uint16_ssa(65535); got != 0 {
+               fmt.Printf("div_uint16 1%s65535 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := div_uint16_1_ssa(65535); got != 65535 {
+               fmt.Printf("div_uint16 65535%s1 = %d, wanted 65535\n", `/`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+       if got := div_uint16_65535_ssa(0); got != 0 {
+               fmt.Printf("div_uint16 0%s65535 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 1%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := div_65535_uint16_ssa(1); got != 65535 {
+               fmt.Printf("div_uint16 65535%s1 = %d, wanted 65535\n", `/`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := div_uint16_65535_ssa(1); got != 0 {
+               fmt.Printf("div_uint16 1%s65535 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_int64_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := div_65535_uint16_ssa(65535); got != 1 {
+               fmt.Printf("div_uint16 65535%s65535 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_int64_1_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := div_uint16_65535_ssa(65535); got != 1 {
+               fmt.Printf("div_uint16 65535%s65535 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := mul_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("mul_uint16 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := mul_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("mul_uint16 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(-9223372036854775807); got != 4294967296 {
-               fmt.Printf("mul_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+       if got := mul_0_uint16_ssa(1); got != 0 {
+               fmt.Printf("mul_uint16 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(-9223372036854775807); got != 4294967296 {
-               fmt.Printf("mul_int64 -9223372036854775807%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := mul_uint16_0_ssa(1); got != 0 {
+               fmt.Printf("mul_uint16 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s-4294967296 = %d, wanted 0\n", `*`, got)
+       if got := mul_0_uint16_ssa(65535); got != 0 {
+               fmt.Printf("mul_uint16 0%s65535 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(-4294967296); got != 0 {
-               fmt.Printf("mul_int64 -4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := mul_uint16_0_ssa(65535); got != 0 {
+               fmt.Printf("mul_uint16 65535%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(-1); got != -4294967296 {
-               fmt.Printf("mul_int64 4294967296%s-1 = %d, wanted -4294967296\n", `*`, got)
+       if got := mul_1_uint16_ssa(0); got != 0 {
+               fmt.Printf("mul_uint16 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(-1); got != -4294967296 {
-               fmt.Printf("mul_int64 -1%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := mul_uint16_1_ssa(0); got != 0 {
+               fmt.Printf("mul_uint16 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s0 = %d, wanted 0\n", `*`, got)
+       if got := mul_1_uint16_ssa(1); got != 1 {
+               fmt.Printf("mul_uint16 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := mul_uint16_1_ssa(1); got != 1 {
+               fmt.Printf("mul_uint16 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(1); got != 4294967296 {
-               fmt.Printf("mul_int64 4294967296%s1 = %d, wanted 4294967296\n", `*`, got)
+       if got := mul_1_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("mul_uint16 1%s65535 = %d, wanted 65535\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(1); got != 4294967296 {
-               fmt.Printf("mul_int64 1%s4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := mul_uint16_1_ssa(65535); got != 65535 {
+               fmt.Printf("mul_uint16 65535%s1 = %d, wanted 65535\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := mul_65535_uint16_ssa(0); got != 0 {
+               fmt.Printf("mul_uint16 65535%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("mul_int64 4294967296%s4294967296 = %d, wanted 0\n", `*`, got)
+       if got := mul_uint16_65535_ssa(0); got != 0 {
+               fmt.Printf("mul_uint16 0%s65535 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(9223372036854775806); got != -8589934592 {
-               fmt.Printf("mul_int64 4294967296%s9223372036854775806 = %d, wanted -8589934592\n", `*`, got)
+       if got := mul_65535_uint16_ssa(1); got != 65535 {
+               fmt.Printf("mul_uint16 65535%s1 = %d, wanted 65535\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(9223372036854775806); got != -8589934592 {
-               fmt.Printf("mul_int64 9223372036854775806%s4294967296 = %d, wanted -8589934592\n", `*`, got)
+       if got := mul_uint16_65535_ssa(1); got != 65535 {
+               fmt.Printf("mul_uint16 1%s65535 = %d, wanted 65535\n", `*`, got)
                failed = true
        }
 
-       if got := mul_4294967296_int64_ssa(9223372036854775807); got != -4294967296 {
-               fmt.Printf("mul_int64 4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+       if got := mul_65535_uint16_ssa(65535); got != 1 {
+               fmt.Printf("mul_uint16 65535%s65535 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := mul_int64_4294967296_ssa(9223372036854775807); got != -4294967296 {
-               fmt.Printf("mul_int64 9223372036854775807%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := mul_uint16_65535_ssa(65535); got != 1 {
+               fmt.Printf("mul_uint16 65535%s65535 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 0\n", `*`, got)
+       if got := lsh_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint16 0%s0 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+       if got := lsh_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint16 0%s0 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := lsh_0_uint16_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint16 0%s1 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(-9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := lsh_uint16_0_ssa(1); got != 1 {
+               fmt.Printf("lsh_uint16 1%s0 = %d, wanted 1\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(-4294967296); got != 8589934592 {
-               fmt.Printf("mul_int64 9223372036854775806%s-4294967296 = %d, wanted 8589934592\n", `*`, got)
+       if got := lsh_0_uint16_ssa(65535); got != 0 {
+               fmt.Printf("lsh_uint16 0%s65535 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(-4294967296); got != 8589934592 {
-               fmt.Printf("mul_int64 -4294967296%s9223372036854775806 = %d, wanted 8589934592\n", `*`, got)
+       if got := lsh_uint16_0_ssa(65535); got != 65535 {
+               fmt.Printf("lsh_uint16 65535%s0 = %d, wanted 65535\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(-1); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s-1 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := lsh_1_uint16_ssa(0); got != 1 {
+               fmt.Printf("lsh_uint16 1%s0 = %d, wanted 1\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(-1); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 -1%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := lsh_uint16_1_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint16 0%s1 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 9223372036854775806%s0 = %d, wanted 0\n", `*`, got)
+       if got := lsh_1_uint16_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint16 1%s1 = %d, wanted 2\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s9223372036854775806 = %d, wanted 0\n", `*`, got)
+       if got := lsh_uint16_1_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint16 1%s1 = %d, wanted 2\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(1); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s1 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := lsh_1_uint16_ssa(65535); got != 0 {
+               fmt.Printf("lsh_uint16 1%s65535 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(1); got != 9223372036854775806 {
-               fmt.Printf("mul_int64 1%s9223372036854775806 = %d, wanted 9223372036854775806\n", `*`, got)
+       if got := lsh_uint16_1_ssa(65535); got != 65534 {
+               fmt.Printf("lsh_uint16 65535%s1 = %d, wanted 65534\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(4294967296); got != -8589934592 {
-               fmt.Printf("mul_int64 9223372036854775806%s4294967296 = %d, wanted -8589934592\n", `*`, got)
+       if got := lsh_65535_uint16_ssa(0); got != 65535 {
+               fmt.Printf("lsh_uint16 65535%s0 = %d, wanted 65535\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(4294967296); got != -8589934592 {
-               fmt.Printf("mul_int64 4294967296%s9223372036854775806 = %d, wanted -8589934592\n", `*`, got)
+       if got := lsh_uint16_65535_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint16 0%s65535 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(9223372036854775806); got != 4 {
-               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775806 = %d, wanted 4\n", `*`, got)
+       if got := lsh_65535_uint16_ssa(1); got != 65534 {
+               fmt.Printf("lsh_uint16 65535%s1 = %d, wanted 65534\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(9223372036854775806); got != 4 {
-               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775806 = %d, wanted 4\n", `*`, got)
+       if got := lsh_uint16_65535_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint16 1%s65535 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775806_int64_ssa(9223372036854775807); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775807 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := lsh_65535_uint16_ssa(65535); got != 0 {
+               fmt.Printf("lsh_uint16 65535%s65535 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775806_ssa(9223372036854775807); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := lsh_uint16_65535_ssa(65535); got != 0 {
+               fmt.Printf("lsh_uint16 65535%s65535 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := rsh_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint16 0%s0 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(-9223372036854775808); got != -9223372036854775808 {
-               fmt.Printf("mul_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -9223372036854775808\n", `*`, got)
+       if got := rsh_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint16 0%s0 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("mul_int64 9223372036854775807%s-9223372036854775807 = %d, wanted -1\n", `*`, got)
+       if got := rsh_0_uint16_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint16 0%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("mul_int64 -9223372036854775807%s9223372036854775807 = %d, wanted -1\n", `*`, got)
+       if got := rsh_uint16_0_ssa(1); got != 1 {
+               fmt.Printf("rsh_uint16 1%s0 = %d, wanted 1\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(-4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967296\n", `*`, got)
+       if got := rsh_0_uint16_ssa(65535); got != 0 {
+               fmt.Printf("rsh_uint16 0%s65535 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(-4294967296); got != 4294967296 {
-               fmt.Printf("mul_int64 -4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `*`, got)
+       if got := rsh_uint16_0_ssa(65535); got != 65535 {
+               fmt.Printf("rsh_uint16 65535%s0 = %d, wanted 65535\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(-1); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 9223372036854775807%s-1 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := rsh_1_uint16_ssa(0); got != 1 {
+               fmt.Printf("rsh_uint16 1%s0 = %d, wanted 1\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(-1); got != -9223372036854775807 {
-               fmt.Printf("mul_int64 -1%s9223372036854775807 = %d, wanted -9223372036854775807\n", `*`, got)
+       if got := rsh_uint16_1_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint16 0%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 9223372036854775807%s0 = %d, wanted 0\n", `*`, got)
+       if got := rsh_1_uint16_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint16 1%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(0); got != 0 {
-               fmt.Printf("mul_int64 0%s9223372036854775807 = %d, wanted 0\n", `*`, got)
+       if got := rsh_uint16_1_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint16 1%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 9223372036854775807%s1 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := rsh_1_uint16_ssa(65535); got != 0 {
+               fmt.Printf("rsh_uint16 1%s65535 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(1); got != 9223372036854775807 {
-               fmt.Printf("mul_int64 1%s9223372036854775807 = %d, wanted 9223372036854775807\n", `*`, got)
+       if got := rsh_uint16_1_ssa(65535); got != 32767 {
+               fmt.Printf("rsh_uint16 65535%s1 = %d, wanted 32767\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 9223372036854775807%s4294967296 = %d, wanted -4294967296\n", `*`, got)
+       if got := rsh_65535_uint16_ssa(0); got != 65535 {
+               fmt.Printf("rsh_uint16 65535%s0 = %d, wanted 65535\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(4294967296); got != -4294967296 {
-               fmt.Printf("mul_int64 4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `*`, got)
+       if got := rsh_uint16_65535_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint16 0%s65535 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(9223372036854775806); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775806 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := rsh_65535_uint16_ssa(1); got != 32767 {
+               fmt.Printf("rsh_uint16 65535%s1 = %d, wanted 32767\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(9223372036854775806); got != -9223372036854775806 {
-               fmt.Printf("mul_int64 9223372036854775806%s9223372036854775807 = %d, wanted -9223372036854775806\n", `*`, got)
+       if got := rsh_uint16_65535_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint16 1%s65535 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_9223372036854775807_int64_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `*`, got)
+       if got := rsh_65535_uint16_ssa(65535); got != 0 {
+               fmt.Printf("rsh_uint16 65535%s65535 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mul_int64_9223372036854775807_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("mul_int64 9223372036854775807%s9223372036854775807 = %d, wanted 1\n", `*`, got)
+       if got := rsh_uint16_65535_ssa(65535); got != 0 {
+               fmt.Printf("rsh_uint16 65535%s65535 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := mod_0_uint16_ssa(1); got != 0 {
+               fmt.Printf("mod_uint16 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := mod_0_uint16_ssa(65535); got != 0 {
+               fmt.Printf("mod_uint16 0%s65535 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := mod_uint16_1_ssa(0); got != 0 {
+               fmt.Printf("mod_uint16 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(-9223372036854775807); got != -9223372036854775807 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `%`, got)
+       if got := mod_1_uint16_ssa(1); got != 0 {
+               fmt.Printf("mod_uint16 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := mod_uint16_1_ssa(1); got != 0 {
+               fmt.Printf("mod_uint16 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s-9223372036854775808 = %d, wanted -4294967296\n", `%`, got)
+       if got := mod_1_uint16_ssa(65535); got != 1 {
+               fmt.Printf("mod_uint16 1%s65535 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-1 = %d, wanted 0\n", `%`, got)
+       if got := mod_uint16_1_ssa(65535); got != 0 {
+               fmt.Printf("mod_uint16 65535%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(-1); got != -1 {
-               fmt.Printf("mod_int64 -1%s-9223372036854775808 = %d, wanted -1\n", `%`, got)
+       if got := mod_uint16_65535_ssa(0); got != 0 {
+               fmt.Printf("mod_uint16 0%s65535 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := mod_65535_uint16_ssa(1); got != 0 {
+               fmt.Printf("mod_uint16 65535%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+       if got := mod_uint16_65535_ssa(1); got != 1 {
+               fmt.Printf("mod_uint16 1%s65535 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(1); got != 1 {
-               fmt.Printf("mod_int64 1%s-9223372036854775808 = %d, wanted 1\n", `%`, got)
+       if got := mod_65535_uint16_ssa(65535); got != 0 {
+               fmt.Printf("mod_uint16 65535%s65535 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := mod_uint16_65535_ssa(65535); got != 0 {
+               fmt.Printf("mod_uint16 65535%s65535 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s-9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+       if got := and_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("and_uint16 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(9223372036854775806); got != -2 {
-               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `%`, got)
+       if got := and_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("and_uint16 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 9223372036854775806\n", `%`, got)
+       if got := and_0_uint16_ssa(1); got != 0 {
+               fmt.Printf("and_uint16 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775808_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := and_uint16_0_ssa(1); got != 0 {
+               fmt.Printf("and_uint16 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775808_ssa(9223372036854775807); got != 9223372036854775807 {
-               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+       if got := and_0_uint16_ssa(65535); got != 0 {
+               fmt.Printf("and_uint16 0%s65535 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(-9223372036854775808); got != -9223372036854775807 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775808 = %d, wanted -9223372036854775807\n", `%`, got)
+       if got := and_uint16_0_ssa(65535); got != 0 {
+               fmt.Printf("and_uint16 65535%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := and_1_uint16_ssa(0); got != 0 {
+               fmt.Printf("and_uint16 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := and_uint16_1_ssa(0); got != 0 {
+               fmt.Printf("and_uint16 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := and_1_uint16_ssa(1); got != 1 {
+               fmt.Printf("and_uint16 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(-4294967296); got != -4294967295 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967295\n", `%`, got)
+       if got := and_uint16_1_ssa(1); got != 1 {
+               fmt.Printf("and_uint16 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+       if got := and_1_uint16_ssa(65535); got != 1 {
+               fmt.Printf("and_uint16 1%s65535 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_uint16_1_ssa(65535); got != 1 {
+               fmt.Printf("and_uint16 65535%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(-1); got != -1 {
-               fmt.Printf("mod_int64 -1%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := and_65535_uint16_ssa(0); got != 0 {
+               fmt.Printf("and_uint16 65535%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := and_uint16_65535_ssa(0); got != 0 {
+               fmt.Printf("and_uint16 0%s65535 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_65535_uint16_ssa(1); got != 1 {
+               fmt.Printf("and_uint16 65535%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(1); got != 1 {
-               fmt.Printf("mod_int64 1%s-9223372036854775807 = %d, wanted 1\n", `%`, got)
+       if got := and_uint16_65535_ssa(1); got != 1 {
+               fmt.Printf("and_uint16 1%s65535 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(4294967296); got != -4294967295 {
-               fmt.Printf("mod_int64 -9223372036854775807%s4294967296 = %d, wanted -4294967295\n", `%`, got)
+       if got := and_65535_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("and_uint16 65535%s65535 = %d, wanted 65535\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+       if got := and_uint16_65535_ssa(65535); got != 65535 {
+               fmt.Printf("and_uint16 65535%s65535 = %d, wanted 65535\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+       if got := or_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("or_uint16 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+       if got := or_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("or_uint16 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := or_0_uint16_ssa(1); got != 1 {
+               fmt.Printf("or_uint16 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg9223372036854775807_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := or_uint16_0_ssa(1); got != 1 {
+               fmt.Printf("or_uint16 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(-9223372036854775808); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s-9223372036854775808 = %d, wanted -4294967296\n", `%`, got)
+       if got := or_0_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("or_uint16 0%s65535 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := or_uint16_0_ssa(65535); got != 65535 {
+               fmt.Printf("or_uint16 65535%s0 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(-9223372036854775807); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s-9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+       if got := or_1_uint16_ssa(0); got != 1 {
+               fmt.Printf("or_uint16 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(-9223372036854775807); got != -4294967295 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-4294967296 = %d, wanted -4294967295\n", `%`, got)
+       if got := or_uint16_1_ssa(0); got != 1 {
+               fmt.Printf("or_uint16 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := or_1_uint16_ssa(1); got != 1 {
+               fmt.Printf("or_uint16 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := or_uint16_1_ssa(1); got != 1 {
+               fmt.Printf("or_uint16 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s-1 = %d, wanted 0\n", `%`, got)
+       if got := or_1_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("or_uint16 1%s65535 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(-1); got != -1 {
-               fmt.Printf("mod_int64 -1%s-4294967296 = %d, wanted -1\n", `%`, got)
+       if got := or_uint16_1_ssa(65535); got != 65535 {
+               fmt.Printf("or_uint16 65535%s1 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := or_65535_uint16_ssa(0); got != 65535 {
+               fmt.Printf("or_uint16 65535%s0 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_uint16_65535_ssa(0); got != 65535 {
+               fmt.Printf("or_uint16 0%s65535 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(1); got != 1 {
-               fmt.Printf("mod_int64 1%s-4294967296 = %d, wanted 1\n", `%`, got)
+       if got := or_65535_uint16_ssa(1); got != 65535 {
+               fmt.Printf("or_uint16 65535%s1 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := or_uint16_65535_ssa(1); got != 65535 {
+               fmt.Printf("or_uint16 1%s65535 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := or_65535_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("or_uint16 65535%s65535 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(9223372036854775806); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s9223372036854775806 = %d, wanted -4294967296\n", `%`, got)
+       if got := or_uint16_65535_ssa(65535); got != 65535 {
+               fmt.Printf("or_uint16 65535%s65535 = %d, wanted 65535\n", `|`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(9223372036854775806); got != 4294967294 {
-               fmt.Printf("mod_int64 9223372036854775806%s-4294967296 = %d, wanted 4294967294\n", `%`, got)
+       if got := xor_0_uint16_ssa(0); got != 0 {
+               fmt.Printf("xor_uint16 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg4294967296_int64_ssa(9223372036854775807); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+       if got := xor_uint16_0_ssa(0); got != 0 {
+               fmt.Printf("xor_uint16 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg4294967296_ssa(9223372036854775807); got != 4294967295 {
-               fmt.Printf("mod_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967295\n", `%`, got)
+       if got := xor_0_uint16_ssa(1); got != 1 {
+               fmt.Printf("xor_uint16 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("mod_int64 -1%s-9223372036854775808 = %d, wanted -1\n", `%`, got)
+       if got := xor_uint16_0_ssa(1); got != 1 {
+               fmt.Printf("xor_uint16 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_uint16_ssa(65535); got != 65535 {
+               fmt.Printf("xor_uint16 0%s65535 = %d, wanted 65535\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("mod_int64 -1%s-9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := xor_uint16_0_ssa(65535); got != 65535 {
+               fmt.Printf("xor_uint16 65535%s0 = %d, wanted 65535\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_uint16_ssa(0); got != 1 {
+               fmt.Printf("xor_uint16 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(-4294967296); got != -1 {
-               fmt.Printf("mod_int64 -1%s-4294967296 = %d, wanted -1\n", `%`, got)
+       if got := xor_uint16_1_ssa(0); got != 1 {
+               fmt.Printf("xor_uint16 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_uint16_ssa(1); got != 0 {
+               fmt.Printf("xor_uint16 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint16_1_ssa(1); got != 0 {
+               fmt.Printf("xor_uint16 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_uint16_ssa(65535); got != 65534 {
+               fmt.Printf("xor_uint16 1%s65535 = %d, wanted 65534\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint16_1_ssa(65535); got != 65534 {
+               fmt.Printf("xor_uint16 65535%s1 = %d, wanted 65534\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_65535_uint16_ssa(0); got != 65535 {
+               fmt.Printf("xor_uint16 65535%s0 = %d, wanted 65535\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint16_65535_ssa(0); got != 65535 {
+               fmt.Printf("xor_uint16 0%s65535 = %d, wanted 65535\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(4294967296); got != -1 {
-               fmt.Printf("mod_int64 -1%s4294967296 = %d, wanted -1\n", `%`, got)
+       if got := xor_65535_uint16_ssa(1); got != 65534 {
+               fmt.Printf("xor_uint16 65535%s1 = %d, wanted 65534\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint16_65535_ssa(1); got != 65534 {
+               fmt.Printf("xor_uint16 1%s65535 = %d, wanted 65534\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(9223372036854775806); got != -1 {
-               fmt.Printf("mod_int64 -1%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+       if got := xor_65535_uint16_ssa(65535); got != 0 {
+               fmt.Printf("xor_uint16 65535%s65535 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775806%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_uint16_65535_ssa(65535); got != 0 {
+               fmt.Printf("xor_uint16 65535%s65535 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int64_ssa(9223372036854775807); got != -1 {
-               fmt.Printf("mod_int64 -1%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(-32768); got != 0 {
+               fmt.Printf("add_int16 -32768%s-32768 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_Neg1_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(-32768); got != 0 {
+               fmt.Printf("add_int16 -32768%s-32768 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 0%s-9223372036854775808 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(-32767); got != 1 {
+               fmt.Printf("add_int16 -32768%s-32767 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 0%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(-32767); got != 1 {
+               fmt.Printf("add_int16 -32767%s-32768 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 0%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(-1); got != 32767 {
+               fmt.Printf("add_int16 -32768%s-1 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(-1); got != 32767 {
+               fmt.Printf("add_int16 -1%s-32768 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(0); got != -32768 {
+               fmt.Printf("add_int16 -32768%s0 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(0); got != -32768 {
+               fmt.Printf("add_int16 0%s-32768 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mod_int64 0%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(1); got != -32767 {
+               fmt.Printf("add_int16 -32768%s1 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_0_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 0%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(1); got != -32767 {
+               fmt.Printf("add_int16 1%s-32768 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(-9223372036854775808); got != 1 {
-               fmt.Printf("mod_int64 1%s-9223372036854775808 = %d, wanted 1\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(32766); got != -2 {
+               fmt.Printf("add_int16 -32768%s32766 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(32766); got != -2 {
+               fmt.Printf("add_int16 32766%s-32768 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(-9223372036854775807); got != 1 {
-               fmt.Printf("mod_int64 1%s-9223372036854775807 = %d, wanted 1\n", `%`, got)
+       if got := add_Neg32768_int16_ssa(32767); got != -1 {
+               fmt.Printf("add_int16 -32768%s32767 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32768_ssa(32767); got != -1 {
+               fmt.Printf("add_int16 32767%s-32768 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(-4294967296); got != 1 {
-               fmt.Printf("mod_int64 1%s-4294967296 = %d, wanted 1\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(-32768); got != 1 {
+               fmt.Printf("add_int16 -32767%s-32768 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(-32768); got != 1 {
+               fmt.Printf("add_int16 -32768%s-32767 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(-32767); got != 2 {
+               fmt.Printf("add_int16 -32767%s-32767 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(-32767); got != 2 {
+               fmt.Printf("add_int16 -32767%s-32767 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(-1); got != -32768 {
+               fmt.Printf("add_int16 -32767%s-1 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(-1); got != -32768 {
+               fmt.Printf("add_int16 -1%s-32767 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(0); got != -32767 {
+               fmt.Printf("add_int16 -32767%s0 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(4294967296); got != 1 {
-               fmt.Printf("mod_int64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(0); got != -32767 {
+               fmt.Printf("add_int16 0%s-32767 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(1); got != -32766 {
+               fmt.Printf("add_int16 -32767%s1 = %d, wanted -32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(9223372036854775806); got != 1 {
-               fmt.Printf("mod_int64 1%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(1); got != -32766 {
+               fmt.Printf("add_int16 1%s-32767 = %d, wanted -32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775806%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(32766); got != -1 {
+               fmt.Printf("add_int16 -32767%s32766 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_1_int64_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("mod_int64 1%s9223372036854775807 = %d, wanted 1\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(32766); got != -1 {
+               fmt.Printf("add_int16 32766%s-32767 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_1_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg32767_int16_ssa(32767); got != 0 {
+               fmt.Printf("add_int16 -32767%s32767 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(-9223372036854775808); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s-9223372036854775808 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_int16_Neg32767_ssa(32767); got != 0 {
+               fmt.Printf("add_int16 32767%s-32767 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(-9223372036854775808); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775808%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg1_int16_ssa(-32768); got != 32767 {
+               fmt.Printf("add_int16 -1%s-32768 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(-9223372036854775807); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s-9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_int16_Neg1_ssa(-32768); got != 32767 {
+               fmt.Printf("add_int16 -32768%s-1 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(-9223372036854775807); got != -4294967295 {
-               fmt.Printf("mod_int64 -9223372036854775807%s4294967296 = %d, wanted -4294967295\n", `%`, got)
+       if got := add_Neg1_int16_ssa(-32767); got != -32768 {
+               fmt.Printf("add_int16 -1%s-32767 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s-4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg1_ssa(-32767); got != -32768 {
+               fmt.Printf("add_int16 -32767%s-1 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(-4294967296); got != 0 {
-               fmt.Printf("mod_int64 -4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg1_int16_ssa(-1); got != -2 {
+               fmt.Printf("add_int16 -1%s-1 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s-1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg1_ssa(-1); got != -2 {
+               fmt.Printf("add_int16 -1%s-1 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(-1); got != -1 {
-               fmt.Printf("mod_int64 -1%s4294967296 = %d, wanted -1\n", `%`, got)
+       if got := add_Neg1_int16_ssa(0); got != -1 {
+               fmt.Printf("add_int16 -1%s0 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg1_ssa(0); got != -1 {
+               fmt.Printf("add_int16 0%s-1 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg1_int16_ssa(1); got != 0 {
+               fmt.Printf("add_int16 -1%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(1); got != 1 {
-               fmt.Printf("mod_int64 1%s4294967296 = %d, wanted 1\n", `%`, got)
+       if got := add_int16_Neg1_ssa(1); got != 0 {
+               fmt.Printf("add_int16 1%s-1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_Neg1_int16_ssa(32766); got != 32765 {
+               fmt.Printf("add_int16 -1%s32766 = %d, wanted 32765\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(4294967296); got != 0 {
-               fmt.Printf("mod_int64 4294967296%s4294967296 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_Neg1_ssa(32766); got != 32765 {
+               fmt.Printf("add_int16 32766%s-1 = %d, wanted 32765\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(9223372036854775806); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s9223372036854775806 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_Neg1_int16_ssa(32767); got != 32766 {
+               fmt.Printf("add_int16 -1%s32767 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(9223372036854775806); got != 4294967294 {
-               fmt.Printf("mod_int64 9223372036854775806%s4294967296 = %d, wanted 4294967294\n", `%`, got)
+       if got := add_int16_Neg1_ssa(32767); got != 32766 {
+               fmt.Printf("add_int16 32767%s-1 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_4294967296_int64_ssa(9223372036854775807); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_0_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("add_int16 0%s-32768 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_4294967296_ssa(9223372036854775807); got != 4294967295 {
-               fmt.Printf("mod_int64 9223372036854775807%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+       if got := add_int16_0_ssa(-32768); got != -32768 {
+               fmt.Printf("add_int16 -32768%s0 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(-9223372036854775808); got != 9223372036854775806 {
-               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775808 = %d, wanted 9223372036854775806\n", `%`, got)
+       if got := add_0_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("add_int16 0%s-32767 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(-9223372036854775808); got != -2 {
-               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775806 = %d, wanted -2\n", `%`, got)
+       if got := add_int16_0_ssa(-32767); got != -32767 {
+               fmt.Printf("add_int16 -32767%s0 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(-9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("mod_int64 9223372036854775806%s-9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+       if got := add_0_int16_ssa(-1); got != -1 {
+               fmt.Printf("add_int16 0%s-1 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(-9223372036854775807); got != -1 {
-               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+       if got := add_int16_0_ssa(-1); got != -1 {
+               fmt.Printf("add_int16 -1%s0 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(-4294967296); got != 4294967294 {
-               fmt.Printf("mod_int64 9223372036854775806%s-4294967296 = %d, wanted 4294967294\n", `%`, got)
+       if got := add_0_int16_ssa(0); got != 0 {
+               fmt.Printf("add_int16 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s9223372036854775806 = %d, wanted -4294967296\n", `%`, got)
+       if got := add_int16_0_ssa(0); got != 0 {
+               fmt.Printf("add_int16 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775806%s-1 = %d, wanted 0\n", `%`, got)
+       if got := add_0_int16_ssa(1); got != 1 {
+               fmt.Printf("add_int16 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(-1); got != -1 {
-               fmt.Printf("mod_int64 -1%s9223372036854775806 = %d, wanted -1\n", `%`, got)
+       if got := add_int16_0_ssa(1); got != 1 {
+               fmt.Printf("add_int16 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+       if got := add_0_int16_ssa(32766); got != 32766 {
+               fmt.Printf("add_int16 0%s32766 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775806%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_0_ssa(32766); got != 32766 {
+               fmt.Printf("add_int16 32766%s0 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(1); got != 1 {
-               fmt.Printf("mod_int64 1%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+       if got := add_0_int16_ssa(32767); got != 32767 {
+               fmt.Printf("add_int16 0%s32767 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(4294967296); got != 4294967294 {
-               fmt.Printf("mod_int64 9223372036854775806%s4294967296 = %d, wanted 4294967294\n", `%`, got)
+       if got := add_int16_0_ssa(32767); got != 32767 {
+               fmt.Printf("add_int16 32767%s0 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s9223372036854775806 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_1_int16_ssa(-32768); got != -32767 {
+               fmt.Printf("add_int16 1%s-32768 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_1_ssa(-32768); got != -32767 {
+               fmt.Printf("add_int16 -32768%s1 = %d, wanted -32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(9223372036854775806); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775806 = %d, wanted 0\n", `%`, got)
+       if got := add_1_int16_ssa(-32767); got != -32766 {
+               fmt.Printf("add_int16 1%s-32767 = %d, wanted -32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775806_int64_ssa(9223372036854775807); got != 9223372036854775806 {
-               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+       if got := add_int16_1_ssa(-32767); got != -32766 {
+               fmt.Printf("add_int16 -32767%s1 = %d, wanted -32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775806_ssa(9223372036854775807); got != 1 {
-               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+       if got := add_1_int16_ssa(-1); got != 0 {
+               fmt.Printf("add_int16 1%s-1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(-9223372036854775808); got != 9223372036854775807 {
-               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775808 = %d, wanted 9223372036854775807\n", `%`, got)
+       if got := add_int16_1_ssa(-1); got != 0 {
+               fmt.Printf("add_int16 -1%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(-9223372036854775808); got != -1 {
-               fmt.Printf("mod_int64 -9223372036854775808%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := add_1_int16_ssa(0); got != 1 {
+               fmt.Printf("add_int16 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s-9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_1_ssa(0); got != 1 {
+               fmt.Printf("add_int16 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(-9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 -9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_1_int16_ssa(1); got != 2 {
+               fmt.Printf("add_int16 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(-4294967296); got != 4294967295 {
-               fmt.Printf("mod_int64 9223372036854775807%s-4294967296 = %d, wanted 4294967295\n", `%`, got)
+       if got := add_int16_1_ssa(1); got != 2 {
+               fmt.Printf("add_int16 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(-4294967296); got != -4294967296 {
-               fmt.Printf("mod_int64 -4294967296%s9223372036854775807 = %d, wanted -4294967296\n", `%`, got)
+       if got := add_1_int16_ssa(32766); got != 32767 {
+               fmt.Printf("add_int16 1%s32766 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(-1); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s-1 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_1_ssa(32766); got != 32767 {
+               fmt.Printf("add_int16 32766%s1 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(-1); got != -1 {
-               fmt.Printf("mod_int64 -1%s9223372036854775807 = %d, wanted -1\n", `%`, got)
+       if got := add_1_int16_ssa(32767); got != -32768 {
+               fmt.Printf("add_int16 1%s32767 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(0); got != 0 {
-               fmt.Printf("mod_int64 0%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_1_ssa(32767); got != -32768 {
+               fmt.Printf("add_int16 32767%s1 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(1); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s1 = %d, wanted 0\n", `%`, got)
+       if got := add_32766_int16_ssa(-32768); got != -2 {
+               fmt.Printf("add_int16 32766%s-32768 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(1); got != 1 {
-               fmt.Printf("mod_int64 1%s9223372036854775807 = %d, wanted 1\n", `%`, got)
+       if got := add_int16_32766_ssa(-32768); got != -2 {
+               fmt.Printf("add_int16 -32768%s32766 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(4294967296); got != 4294967295 {
-               fmt.Printf("mod_int64 9223372036854775807%s4294967296 = %d, wanted 4294967295\n", `%`, got)
+       if got := add_32766_int16_ssa(-32767); got != -1 {
+               fmt.Printf("add_int16 32766%s-32767 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(4294967296); got != 4294967296 {
-               fmt.Printf("mod_int64 4294967296%s9223372036854775807 = %d, wanted 4294967296\n", `%`, got)
+       if got := add_int16_32766_ssa(-32767); got != -1 {
+               fmt.Printf("add_int16 -32767%s32766 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(9223372036854775806); got != 1 {
-               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775806 = %d, wanted 1\n", `%`, got)
+       if got := add_32766_int16_ssa(-1); got != 32765 {
+               fmt.Printf("add_int16 32766%s-1 = %d, wanted 32765\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(9223372036854775806); got != 9223372036854775806 {
-               fmt.Printf("mod_int64 9223372036854775806%s9223372036854775807 = %d, wanted 9223372036854775806\n", `%`, got)
+       if got := add_int16_32766_ssa(-1); got != 32765 {
+               fmt.Printf("add_int16 -1%s32766 = %d, wanted 32765\n", `+`, got)
                failed = true
        }
 
-       if got := mod_9223372036854775807_int64_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_32766_int16_ssa(0); got != 32766 {
+               fmt.Printf("add_int16 32766%s0 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int64_9223372036854775807_ssa(9223372036854775807); got != 0 {
-               fmt.Printf("mod_int64 9223372036854775807%s9223372036854775807 = %d, wanted 0\n", `%`, got)
+       if got := add_int16_32766_ssa(0); got != 32766 {
+               fmt.Printf("add_int16 0%s32766 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := add_0_uint32_ssa(0); got != 0 {
-               fmt.Printf("add_uint32 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := add_32766_int16_ssa(1); got != 32767 {
+               fmt.Printf("add_int16 32766%s1 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_0_ssa(0); got != 0 {
-               fmt.Printf("add_uint32 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := add_int16_32766_ssa(1); got != 32767 {
+               fmt.Printf("add_int16 1%s32766 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := add_0_uint32_ssa(1); got != 1 {
-               fmt.Printf("add_uint32 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := add_32766_int16_ssa(32766); got != -4 {
+               fmt.Printf("add_int16 32766%s32766 = %d, wanted -4\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_0_ssa(1); got != 1 {
-               fmt.Printf("add_uint32 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := add_int16_32766_ssa(32766); got != -4 {
+               fmt.Printf("add_int16 32766%s32766 = %d, wanted -4\n", `+`, got)
                failed = true
        }
 
-       if got := add_0_uint32_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("add_uint32 0%s4294967295 = %d, wanted 4294967295\n", `+`, got)
+       if got := add_32766_int16_ssa(32767); got != -3 {
+               fmt.Printf("add_int16 32766%s32767 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_0_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("add_uint32 4294967295%s0 = %d, wanted 4294967295\n", `+`, got)
+       if got := add_int16_32766_ssa(32767); got != -3 {
+               fmt.Printf("add_int16 32767%s32766 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := add_1_uint32_ssa(0); got != 1 {
-               fmt.Printf("add_uint32 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := add_32767_int16_ssa(-32768); got != -1 {
+               fmt.Printf("add_int16 32767%s-32768 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_1_ssa(0); got != 1 {
-               fmt.Printf("add_uint32 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := add_int16_32767_ssa(-32768); got != -1 {
+               fmt.Printf("add_int16 -32768%s32767 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := add_1_uint32_ssa(1); got != 2 {
-               fmt.Printf("add_uint32 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := add_32767_int16_ssa(-32767); got != 0 {
+               fmt.Printf("add_int16 32767%s-32767 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_1_ssa(1); got != 2 {
-               fmt.Printf("add_uint32 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := add_int16_32767_ssa(-32767); got != 0 {
+               fmt.Printf("add_int16 -32767%s32767 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := add_1_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("add_uint32 1%s4294967295 = %d, wanted 0\n", `+`, got)
+       if got := add_32767_int16_ssa(-1); got != 32766 {
+               fmt.Printf("add_int16 32767%s-1 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_1_ssa(4294967295); got != 0 {
-               fmt.Printf("add_uint32 4294967295%s1 = %d, wanted 0\n", `+`, got)
+       if got := add_int16_32767_ssa(-1); got != 32766 {
+               fmt.Printf("add_int16 -1%s32767 = %d, wanted 32766\n", `+`, got)
                failed = true
        }
 
-       if got := add_4294967295_uint32_ssa(0); got != 4294967295 {
-               fmt.Printf("add_uint32 4294967295%s0 = %d, wanted 4294967295\n", `+`, got)
+       if got := add_32767_int16_ssa(0); got != 32767 {
+               fmt.Printf("add_int16 32767%s0 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_4294967295_ssa(0); got != 4294967295 {
-               fmt.Printf("add_uint32 0%s4294967295 = %d, wanted 4294967295\n", `+`, got)
+       if got := add_int16_32767_ssa(0); got != 32767 {
+               fmt.Printf("add_int16 0%s32767 = %d, wanted 32767\n", `+`, got)
                failed = true
        }
 
-       if got := add_4294967295_uint32_ssa(1); got != 0 {
-               fmt.Printf("add_uint32 4294967295%s1 = %d, wanted 0\n", `+`, got)
+       if got := add_32767_int16_ssa(1); got != -32768 {
+               fmt.Printf("add_int16 32767%s1 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_4294967295_ssa(1); got != 0 {
-               fmt.Printf("add_uint32 1%s4294967295 = %d, wanted 0\n", `+`, got)
+       if got := add_int16_32767_ssa(1); got != -32768 {
+               fmt.Printf("add_int16 1%s32767 = %d, wanted -32768\n", `+`, got)
                failed = true
        }
 
-       if got := add_4294967295_uint32_ssa(4294967295); got != 4294967294 {
-               fmt.Printf("add_uint32 4294967295%s4294967295 = %d, wanted 4294967294\n", `+`, got)
+       if got := add_32767_int16_ssa(32766); got != -3 {
+               fmt.Printf("add_int16 32767%s32766 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := add_uint32_4294967295_ssa(4294967295); got != 4294967294 {
-               fmt.Printf("add_uint32 4294967295%s4294967295 = %d, wanted 4294967294\n", `+`, got)
+       if got := add_int16_32767_ssa(32766); got != -3 {
+               fmt.Printf("add_int16 32766%s32767 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := sub_0_uint32_ssa(0); got != 0 {
-               fmt.Printf("sub_uint32 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := add_32767_int16_ssa(32767); got != -2 {
+               fmt.Printf("add_int16 32767%s32767 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := sub_uint32_0_ssa(0); got != 0 {
-               fmt.Printf("sub_uint32 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := add_int16_32767_ssa(32767); got != -2 {
+               fmt.Printf("add_int16 32767%s32767 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := sub_0_uint32_ssa(1); got != 4294967295 {
-               fmt.Printf("sub_uint32 0%s1 = %d, wanted 4294967295\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(-32768); got != 0 {
+               fmt.Printf("sub_int16 -32768%s-32768 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_0_ssa(1); got != 1 {
-               fmt.Printf("sub_uint32 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(-32768); got != 0 {
+               fmt.Printf("sub_int16 -32768%s-32768 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_uint32_ssa(4294967295); got != 1 {
-               fmt.Printf("sub_uint32 0%s4294967295 = %d, wanted 1\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(-32767); got != -1 {
+               fmt.Printf("sub_int16 -32768%s-32767 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_0_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("sub_uint32 4294967295%s0 = %d, wanted 4294967295\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(-32767); got != 1 {
+               fmt.Printf("sub_int16 -32767%s-32768 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_1_uint32_ssa(0); got != 1 {
-               fmt.Printf("sub_uint32 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(-1); got != -32767 {
+               fmt.Printf("sub_int16 -32768%s-1 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_1_ssa(0); got != 4294967295 {
-               fmt.Printf("sub_uint32 0%s1 = %d, wanted 4294967295\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(-1); got != 32767 {
+               fmt.Printf("sub_int16 -1%s-32768 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := sub_1_uint32_ssa(1); got != 0 {
-               fmt.Printf("sub_uint32 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(0); got != -32768 {
+               fmt.Printf("sub_int16 -32768%s0 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_1_ssa(1); got != 0 {
-               fmt.Printf("sub_uint32 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(0); got != -32768 {
+               fmt.Printf("sub_int16 0%s-32768 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := sub_1_uint32_ssa(4294967295); got != 2 {
-               fmt.Printf("sub_uint32 1%s4294967295 = %d, wanted 2\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(1); got != 32767 {
+               fmt.Printf("sub_int16 -32768%s1 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_1_ssa(4294967295); got != 4294967294 {
-               fmt.Printf("sub_uint32 4294967295%s1 = %d, wanted 4294967294\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(1); got != -32767 {
+               fmt.Printf("sub_int16 1%s-32768 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := sub_4294967295_uint32_ssa(0); got != 4294967295 {
-               fmt.Printf("sub_uint32 4294967295%s0 = %d, wanted 4294967295\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(32766); got != 2 {
+               fmt.Printf("sub_int16 -32768%s32766 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_4294967295_ssa(0); got != 1 {
-               fmt.Printf("sub_uint32 0%s4294967295 = %d, wanted 1\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(32766); got != -2 {
+               fmt.Printf("sub_int16 32766%s-32768 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := sub_4294967295_uint32_ssa(1); got != 4294967294 {
-               fmt.Printf("sub_uint32 4294967295%s1 = %d, wanted 4294967294\n", `-`, got)
+       if got := sub_Neg32768_int16_ssa(32767); got != 1 {
+               fmt.Printf("sub_int16 -32768%s32767 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_4294967295_ssa(1); got != 2 {
-               fmt.Printf("sub_uint32 1%s4294967295 = %d, wanted 2\n", `-`, got)
+       if got := sub_int16_Neg32768_ssa(32767); got != -1 {
+               fmt.Printf("sub_int16 32767%s-32768 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_4294967295_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("sub_uint32 4294967295%s4294967295 = %d, wanted 0\n", `-`, got)
+       if got := sub_Neg32767_int16_ssa(-32768); got != 1 {
+               fmt.Printf("sub_int16 -32767%s-32768 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_uint32_4294967295_ssa(4294967295); got != 0 {
-               fmt.Printf("sub_uint32 4294967295%s4294967295 = %d, wanted 0\n", `-`, got)
+       if got := sub_int16_Neg32767_ssa(-32768); got != -1 {
+               fmt.Printf("sub_int16 -32768%s-32767 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := div_0_uint32_ssa(1); got != 0 {
-               fmt.Printf("div_uint32 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := sub_Neg32767_int16_ssa(-32767); got != 0 {
+               fmt.Printf("sub_int16 -32767%s-32767 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := div_0_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("div_uint32 0%s4294967295 = %d, wanted 0\n", `/`, got)
+       if got := sub_int16_Neg32767_ssa(-32767); got != 0 {
+               fmt.Printf("sub_int16 -32767%s-32767 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := div_uint32_1_ssa(0); got != 0 {
-               fmt.Printf("div_uint32 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := sub_Neg32767_int16_ssa(-1); got != -32766 {
+               fmt.Printf("sub_int16 -32767%s-1 = %d, wanted -32766\n", `-`, got)
                failed = true
        }
 
-       if got := div_1_uint32_ssa(1); got != 1 {
-               fmt.Printf("div_uint32 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := sub_int16_Neg32767_ssa(-1); got != 32766 {
+               fmt.Printf("sub_int16 -1%s-32767 = %d, wanted 32766\n", `-`, got)
                failed = true
        }
 
-       if got := div_uint32_1_ssa(1); got != 1 {
-               fmt.Printf("div_uint32 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := sub_Neg32767_int16_ssa(0); got != -32767 {
+               fmt.Printf("sub_int16 -32767%s0 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := div_1_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("div_uint32 1%s4294967295 = %d, wanted 0\n", `/`, got)
+       if got := sub_int16_Neg32767_ssa(0); got != 32767 {
+               fmt.Printf("sub_int16 0%s-32767 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := div_uint32_1_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("div_uint32 4294967295%s1 = %d, wanted 4294967295\n", `/`, got)
+       if got := sub_Neg32767_int16_ssa(1); got != -32768 {
+               fmt.Printf("sub_int16 -32767%s1 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := div_uint32_4294967295_ssa(0); got != 0 {
-               fmt.Printf("div_uint32 0%s4294967295 = %d, wanted 0\n", `/`, got)
+       if got := sub_int16_Neg32767_ssa(1); got != -32768 {
+               fmt.Printf("sub_int16 1%s-32767 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := div_4294967295_uint32_ssa(1); got != 4294967295 {
-               fmt.Printf("div_uint32 4294967295%s1 = %d, wanted 4294967295\n", `/`, got)
+       if got := sub_Neg32767_int16_ssa(32766); got != 3 {
+               fmt.Printf("sub_int16 -32767%s32766 = %d, wanted 3\n", `-`, got)
                failed = true
        }
 
-       if got := div_uint32_4294967295_ssa(1); got != 0 {
-               fmt.Printf("div_uint32 1%s4294967295 = %d, wanted 0\n", `/`, got)
+       if got := sub_int16_Neg32767_ssa(32766); got != -3 {
+               fmt.Printf("sub_int16 32766%s-32767 = %d, wanted -3\n", `-`, got)
                failed = true
        }
 
-       if got := div_4294967295_uint32_ssa(4294967295); got != 1 {
-               fmt.Printf("div_uint32 4294967295%s4294967295 = %d, wanted 1\n", `/`, got)
+       if got := sub_Neg32767_int16_ssa(32767); got != 2 {
+               fmt.Printf("sub_int16 -32767%s32767 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := div_uint32_4294967295_ssa(4294967295); got != 1 {
-               fmt.Printf("div_uint32 4294967295%s4294967295 = %d, wanted 1\n", `/`, got)
+       if got := sub_int16_Neg32767_ssa(32767); got != -2 {
+               fmt.Printf("sub_int16 32767%s-32767 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_uint32_ssa(0); got != 0 {
-               fmt.Printf("mul_uint32 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(-32768); got != 32767 {
+               fmt.Printf("sub_int16 -1%s-32768 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_0_ssa(0); got != 0 {
-               fmt.Printf("mul_uint32 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(-32768); got != -32767 {
+               fmt.Printf("sub_int16 -32768%s-1 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_uint32_ssa(1); got != 0 {
-               fmt.Printf("mul_uint32 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(-32767); got != 32766 {
+               fmt.Printf("sub_int16 -1%s-32767 = %d, wanted 32766\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_0_ssa(1); got != 0 {
-               fmt.Printf("mul_uint32 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(-32767); got != -32766 {
+               fmt.Printf("sub_int16 -32767%s-1 = %d, wanted -32766\n", `-`, got)
                failed = true
        }
 
-       if got := mul_0_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("mul_uint32 0%s4294967295 = %d, wanted 0\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(-1); got != 0 {
+               fmt.Printf("sub_int16 -1%s-1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_0_ssa(4294967295); got != 0 {
-               fmt.Printf("mul_uint32 4294967295%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("sub_int16 -1%s-1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_uint32_ssa(0); got != 0 {
-               fmt.Printf("mul_uint32 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(0); got != -1 {
+               fmt.Printf("sub_int16 -1%s0 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_1_ssa(0); got != 0 {
-               fmt.Printf("mul_uint32 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(0); got != 1 {
+               fmt.Printf("sub_int16 0%s-1 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_uint32_ssa(1); got != 1 {
-               fmt.Printf("mul_uint32 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(1); got != -2 {
+               fmt.Printf("sub_int16 -1%s1 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_1_ssa(1); got != 1 {
-               fmt.Printf("mul_uint32 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(1); got != 2 {
+               fmt.Printf("sub_int16 1%s-1 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mul_1_uint32_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("mul_uint32 1%s4294967295 = %d, wanted 4294967295\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(32766); got != -32767 {
+               fmt.Printf("sub_int16 -1%s32766 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_1_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("mul_uint32 4294967295%s1 = %d, wanted 4294967295\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(32766); got != 32767 {
+               fmt.Printf("sub_int16 32766%s-1 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967295_uint32_ssa(0); got != 0 {
-               fmt.Printf("mul_uint32 4294967295%s0 = %d, wanted 0\n", `*`, got)
+       if got := sub_Neg1_int16_ssa(32767); got != -32768 {
+               fmt.Printf("sub_int16 -1%s32767 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_4294967295_ssa(0); got != 0 {
-               fmt.Printf("mul_uint32 0%s4294967295 = %d, wanted 0\n", `*`, got)
+       if got := sub_int16_Neg1_ssa(32767); got != -32768 {
+               fmt.Printf("sub_int16 32767%s-1 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967295_uint32_ssa(1); got != 4294967295 {
-               fmt.Printf("mul_uint32 4294967295%s1 = %d, wanted 4294967295\n", `*`, got)
+       if got := sub_0_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("sub_int16 0%s-32768 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_4294967295_ssa(1); got != 4294967295 {
-               fmt.Printf("mul_uint32 1%s4294967295 = %d, wanted 4294967295\n", `*`, got)
+       if got := sub_int16_0_ssa(-32768); got != -32768 {
+               fmt.Printf("sub_int16 -32768%s0 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := mul_4294967295_uint32_ssa(4294967295); got != 1 {
-               fmt.Printf("mul_uint32 4294967295%s4294967295 = %d, wanted 1\n", `*`, got)
+       if got := sub_0_int16_ssa(-32767); got != 32767 {
+               fmt.Printf("sub_int16 0%s-32767 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := mul_uint32_4294967295_ssa(4294967295); got != 1 {
-               fmt.Printf("mul_uint32 4294967295%s4294967295 = %d, wanted 1\n", `*`, got)
+       if got := sub_int16_0_ssa(-32767); got != -32767 {
+               fmt.Printf("sub_int16 -32767%s0 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_0_uint32_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint32 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := sub_0_int16_ssa(-1); got != 1 {
+               fmt.Printf("sub_int16 0%s-1 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_0_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint32 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := sub_int16_0_ssa(-1); got != -1 {
+               fmt.Printf("sub_int16 -1%s0 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_0_uint32_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint32 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := sub_0_int16_ssa(0); got != 0 {
+               fmt.Printf("sub_int16 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_0_ssa(1); got != 1 {
-               fmt.Printf("lsh_uint32 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := sub_int16_0_ssa(0); got != 0 {
+               fmt.Printf("sub_int16 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_0_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("lsh_uint32 0%s4294967295 = %d, wanted 0\n", `<<`, got)
+       if got := sub_0_int16_ssa(1); got != -1 {
+               fmt.Printf("sub_int16 0%s1 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_0_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("lsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `<<`, got)
+       if got := sub_int16_0_ssa(1); got != 1 {
+               fmt.Printf("sub_int16 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_1_uint32_ssa(0); got != 1 {
-               fmt.Printf("lsh_uint32 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := sub_0_int16_ssa(32766); got != -32766 {
+               fmt.Printf("sub_int16 0%s32766 = %d, wanted -32766\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_1_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint32 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := sub_int16_0_ssa(32766); got != 32766 {
+               fmt.Printf("sub_int16 32766%s0 = %d, wanted 32766\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_1_uint32_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint32 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := sub_0_int16_ssa(32767); got != -32767 {
+               fmt.Printf("sub_int16 0%s32767 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_1_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint32 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := sub_int16_0_ssa(32767); got != 32767 {
+               fmt.Printf("sub_int16 32767%s0 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_1_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("lsh_uint32 1%s4294967295 = %d, wanted 0\n", `<<`, got)
+       if got := sub_1_int16_ssa(-32768); got != -32767 {
+               fmt.Printf("sub_int16 1%s-32768 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_1_ssa(4294967295); got != 4294967294 {
-               fmt.Printf("lsh_uint32 4294967295%s1 = %d, wanted 4294967294\n", `<<`, got)
+       if got := sub_int16_1_ssa(-32768); got != 32767 {
+               fmt.Printf("sub_int16 -32768%s1 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_4294967295_uint32_ssa(0); got != 4294967295 {
-               fmt.Printf("lsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `<<`, got)
+       if got := sub_1_int16_ssa(-32767); got != -32768 {
+               fmt.Printf("sub_int16 1%s-32767 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_4294967295_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint32 0%s4294967295 = %d, wanted 0\n", `<<`, got)
+       if got := sub_int16_1_ssa(-32767); got != -32768 {
+               fmt.Printf("sub_int16 -32767%s1 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_4294967295_uint32_ssa(1); got != 4294967294 {
-               fmt.Printf("lsh_uint32 4294967295%s1 = %d, wanted 4294967294\n", `<<`, got)
+       if got := sub_1_int16_ssa(-1); got != 2 {
+               fmt.Printf("sub_int16 1%s-1 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_4294967295_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint32 1%s4294967295 = %d, wanted 0\n", `<<`, got)
+       if got := sub_int16_1_ssa(-1); got != -2 {
+               fmt.Printf("sub_int16 -1%s1 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_4294967295_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("lsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `<<`, got)
+       if got := sub_1_int16_ssa(0); got != 1 {
+               fmt.Printf("sub_int16 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := lsh_uint32_4294967295_ssa(4294967295); got != 0 {
-               fmt.Printf("lsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `<<`, got)
+       if got := sub_int16_1_ssa(0); got != -1 {
+               fmt.Printf("sub_int16 0%s1 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_0_uint32_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint32 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := sub_1_int16_ssa(1); got != 0 {
+               fmt.Printf("sub_int16 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_0_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint32 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := sub_int16_1_ssa(1); got != 0 {
+               fmt.Printf("sub_int16 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_0_uint32_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint32 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := sub_1_int16_ssa(32766); got != -32765 {
+               fmt.Printf("sub_int16 1%s32766 = %d, wanted -32765\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_0_ssa(1); got != 1 {
-               fmt.Printf("rsh_uint32 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := sub_int16_1_ssa(32766); got != 32765 {
+               fmt.Printf("sub_int16 32766%s1 = %d, wanted 32765\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_0_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("rsh_uint32 0%s4294967295 = %d, wanted 0\n", `>>`, got)
+       if got := sub_1_int16_ssa(32767); got != -32766 {
+               fmt.Printf("sub_int16 1%s32767 = %d, wanted -32766\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_0_ssa(4294967295); got != 4294967295 {
-               fmt.Printf("rsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `>>`, got)
+       if got := sub_int16_1_ssa(32767); got != 32766 {
+               fmt.Printf("sub_int16 32767%s1 = %d, wanted 32766\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_1_uint32_ssa(0); got != 1 {
-               fmt.Printf("rsh_uint32 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := sub_32766_int16_ssa(-32768); got != -2 {
+               fmt.Printf("sub_int16 32766%s-32768 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_1_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint32 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := sub_int16_32766_ssa(-32768); got != 2 {
+               fmt.Printf("sub_int16 -32768%s32766 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_1_uint32_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint32 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := sub_32766_int16_ssa(-32767); got != -3 {
+               fmt.Printf("sub_int16 32766%s-32767 = %d, wanted -3\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_1_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint32 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := sub_int16_32766_ssa(-32767); got != 3 {
+               fmt.Printf("sub_int16 -32767%s32766 = %d, wanted 3\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_1_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("rsh_uint32 1%s4294967295 = %d, wanted 0\n", `>>`, got)
+       if got := sub_32766_int16_ssa(-1); got != 32767 {
+               fmt.Printf("sub_int16 32766%s-1 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_1_ssa(4294967295); got != 2147483647 {
-               fmt.Printf("rsh_uint32 4294967295%s1 = %d, wanted 2147483647\n", `>>`, got)
+       if got := sub_int16_32766_ssa(-1); got != -32767 {
+               fmt.Printf("sub_int16 -1%s32766 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_4294967295_uint32_ssa(0); got != 4294967295 {
-               fmt.Printf("rsh_uint32 4294967295%s0 = %d, wanted 4294967295\n", `>>`, got)
+       if got := sub_32766_int16_ssa(0); got != 32766 {
+               fmt.Printf("sub_int16 32766%s0 = %d, wanted 32766\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_4294967295_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint32 0%s4294967295 = %d, wanted 0\n", `>>`, got)
+       if got := sub_int16_32766_ssa(0); got != -32766 {
+               fmt.Printf("sub_int16 0%s32766 = %d, wanted -32766\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_4294967295_uint32_ssa(1); got != 2147483647 {
-               fmt.Printf("rsh_uint32 4294967295%s1 = %d, wanted 2147483647\n", `>>`, got)
+       if got := sub_32766_int16_ssa(1); got != 32765 {
+               fmt.Printf("sub_int16 32766%s1 = %d, wanted 32765\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_4294967295_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint32 1%s4294967295 = %d, wanted 0\n", `>>`, got)
+       if got := sub_int16_32766_ssa(1); got != -32765 {
+               fmt.Printf("sub_int16 1%s32766 = %d, wanted -32765\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_4294967295_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("rsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `>>`, got)
+       if got := sub_32766_int16_ssa(32766); got != 0 {
+               fmt.Printf("sub_int16 32766%s32766 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := rsh_uint32_4294967295_ssa(4294967295); got != 0 {
-               fmt.Printf("rsh_uint32 4294967295%s4294967295 = %d, wanted 0\n", `>>`, got)
+       if got := sub_int16_32766_ssa(32766); got != 0 {
+               fmt.Printf("sub_int16 32766%s32766 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_uint32_ssa(1); got != 0 {
-               fmt.Printf("mod_uint32 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_32766_int16_ssa(32767); got != -1 {
+               fmt.Printf("sub_int16 32766%s32767 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("mod_uint32 0%s4294967295 = %d, wanted 0\n", `%`, got)
+       if got := sub_int16_32766_ssa(32767); got != 1 {
+               fmt.Printf("sub_int16 32767%s32766 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_uint32_1_ssa(0); got != 0 {
-               fmt.Printf("mod_uint32 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_32767_int16_ssa(-32768); got != -1 {
+               fmt.Printf("sub_int16 32767%s-32768 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_uint32_ssa(1); got != 0 {
-               fmt.Printf("mod_uint32 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int16_32767_ssa(-32768); got != 1 {
+               fmt.Printf("sub_int16 -32768%s32767 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_uint32_1_ssa(1); got != 0 {
-               fmt.Printf("mod_uint32 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_32767_int16_ssa(-32767); got != -2 {
+               fmt.Printf("sub_int16 32767%s-32767 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_uint32_ssa(4294967295); got != 1 {
-               fmt.Printf("mod_uint32 1%s4294967295 = %d, wanted 1\n", `%`, got)
+       if got := sub_int16_32767_ssa(-32767); got != 2 {
+               fmt.Printf("sub_int16 -32767%s32767 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_uint32_1_ssa(4294967295); got != 0 {
-               fmt.Printf("mod_uint32 4294967295%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_32767_int16_ssa(-1); got != -32768 {
+               fmt.Printf("sub_int16 32767%s-1 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := mod_uint32_4294967295_ssa(0); got != 0 {
-               fmt.Printf("mod_uint32 0%s4294967295 = %d, wanted 0\n", `%`, got)
+       if got := sub_int16_32767_ssa(-1); got != -32768 {
+               fmt.Printf("sub_int16 -1%s32767 = %d, wanted -32768\n", `-`, got)
                failed = true
        }
 
-       if got := mod_4294967295_uint32_ssa(1); got != 0 {
-               fmt.Printf("mod_uint32 4294967295%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_32767_int16_ssa(0); got != 32767 {
+               fmt.Printf("sub_int16 32767%s0 = %d, wanted 32767\n", `-`, got)
                failed = true
        }
 
-       if got := mod_uint32_4294967295_ssa(1); got != 1 {
-               fmt.Printf("mod_uint32 1%s4294967295 = %d, wanted 1\n", `%`, got)
+       if got := sub_int16_32767_ssa(0); got != -32767 {
+               fmt.Printf("sub_int16 0%s32767 = %d, wanted -32767\n", `-`, got)
                failed = true
        }
 
-       if got := mod_4294967295_uint32_ssa(4294967295); got != 0 {
-               fmt.Printf("mod_uint32 4294967295%s4294967295 = %d, wanted 0\n", `%`, got)
+       if got := sub_32767_int16_ssa(1); got != 32766 {
+               fmt.Printf("sub_int16 32767%s1 = %d, wanted 32766\n", `-`, got)
                failed = true
        }
 
-       if got := mod_uint32_4294967295_ssa(4294967295); got != 0 {
-               fmt.Printf("mod_uint32 4294967295%s4294967295 = %d, wanted 0\n", `%`, got)
+       if got := sub_int16_32767_ssa(1); got != -32766 {
+               fmt.Printf("sub_int16 1%s32767 = %d, wanted -32766\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg2147483648_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("add_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `+`, got)
+       if got := sub_32767_int16_ssa(32766); got != 1 {
+               fmt.Printf("sub_int16 32767%s32766 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483648_ssa(-2147483648); got != 0 {
-               fmt.Printf("add_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `+`, got)
+       if got := sub_int16_32767_ssa(32766); got != -1 {
+               fmt.Printf("sub_int16 32766%s32767 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg2147483648_int32_ssa(-2147483647); got != 1 {
-               fmt.Printf("add_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `+`, got)
+       if got := sub_32767_int16_ssa(32767); got != 0 {
+               fmt.Printf("sub_int16 32767%s32767 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483648_ssa(-2147483647); got != 1 {
-               fmt.Printf("add_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `+`, got)
+       if got := sub_int16_32767_ssa(32767); got != 0 {
+               fmt.Printf("sub_int16 32767%s32767 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_Neg2147483648_int32_ssa(-1); got != 2147483647 {
-               fmt.Printf("add_int32 -2147483648%s-1 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_Neg32768_int16_ssa(-32768); got != 1 {
+               fmt.Printf("div_int16 -32768%s-32768 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483648_ssa(-1); got != 2147483647 {
-               fmt.Printf("add_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(-32768); got != 1 {
+               fmt.Printf("div_int16 -32768%s-32768 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483648_int32_ssa(0); got != -2147483648 {
-               fmt.Printf("add_int32 -2147483648%s0 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_Neg32768_int16_ssa(-32767); got != 1 {
+               fmt.Printf("div_int16 -32768%s-32767 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483648_ssa(0); got != -2147483648 {
-               fmt.Printf("add_int32 0%s-2147483648 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(-32767); got != 0 {
+               fmt.Printf("div_int16 -32767%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483648_int32_ssa(1); got != -2147483647 {
-               fmt.Printf("add_int32 -2147483648%s1 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_Neg32768_int16_ssa(-1); got != -32768 {
+               fmt.Printf("div_int16 -32768%s-1 = %d, wanted -32768\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483648_ssa(1); got != -2147483647 {
-               fmt.Printf("add_int32 1%s-2147483648 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(-1); got != 0 {
+               fmt.Printf("div_int16 -1%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483648_int32_ssa(2147483647); got != -1 {
-               fmt.Printf("add_int32 -2147483648%s2147483647 = %d, wanted -1\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(0); got != 0 {
+               fmt.Printf("div_int16 0%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483648_ssa(2147483647); got != -1 {
-               fmt.Printf("add_int32 2147483647%s-2147483648 = %d, wanted -1\n", `+`, got)
+       if got := div_Neg32768_int16_ssa(1); got != -32768 {
+               fmt.Printf("div_int16 -32768%s1 = %d, wanted -32768\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483647_int32_ssa(-2147483648); got != 1 {
-               fmt.Printf("add_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(1); got != 0 {
+               fmt.Printf("div_int16 1%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483647_ssa(-2147483648); got != 1 {
-               fmt.Printf("add_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `+`, got)
+       if got := div_Neg32768_int16_ssa(32766); got != -1 {
+               fmt.Printf("div_int16 -32768%s32766 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483647_int32_ssa(-2147483647); got != 2 {
-               fmt.Printf("add_int32 -2147483647%s-2147483647 = %d, wanted 2\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(32766); got != 0 {
+               fmt.Printf("div_int16 32766%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483647_ssa(-2147483647); got != 2 {
-               fmt.Printf("add_int32 -2147483647%s-2147483647 = %d, wanted 2\n", `+`, got)
+       if got := div_Neg32768_int16_ssa(32767); got != -1 {
+               fmt.Printf("div_int16 -32768%s32767 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483647_int32_ssa(-1); got != -2147483648 {
-               fmt.Printf("add_int32 -2147483647%s-1 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_int16_Neg32768_ssa(32767); got != 0 {
+               fmt.Printf("div_int16 32767%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483647_ssa(-1); got != -2147483648 {
-               fmt.Printf("add_int32 -1%s-2147483647 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_Neg32767_int16_ssa(-32768); got != 0 {
+               fmt.Printf("div_int16 -32767%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483647_int32_ssa(0); got != -2147483647 {
-               fmt.Printf("add_int32 -2147483647%s0 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(-32768); got != 1 {
+               fmt.Printf("div_int16 -32768%s-32767 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483647_ssa(0); got != -2147483647 {
-               fmt.Printf("add_int32 0%s-2147483647 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_Neg32767_int16_ssa(-32767); got != 1 {
+               fmt.Printf("div_int16 -32767%s-32767 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483647_int32_ssa(1); got != -2147483646 {
-               fmt.Printf("add_int32 -2147483647%s1 = %d, wanted -2147483646\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(-32767); got != 1 {
+               fmt.Printf("div_int16 -32767%s-32767 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483647_ssa(1); got != -2147483646 {
-               fmt.Printf("add_int32 1%s-2147483647 = %d, wanted -2147483646\n", `+`, got)
+       if got := div_Neg32767_int16_ssa(-1); got != 32767 {
+               fmt.Printf("div_int16 -32767%s-1 = %d, wanted 32767\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg2147483647_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("add_int32 -2147483647%s2147483647 = %d, wanted 0\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(-1); got != 0 {
+               fmt.Printf("div_int16 -1%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg2147483647_ssa(2147483647); got != 0 {
-               fmt.Printf("add_int32 2147483647%s-2147483647 = %d, wanted 0\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(0); got != 0 {
+               fmt.Printf("div_int16 0%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg1_int32_ssa(-2147483648); got != 2147483647 {
-               fmt.Printf("add_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_Neg32767_int16_ssa(1); got != -32767 {
+               fmt.Printf("div_int16 -32767%s1 = %d, wanted -32767\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg1_ssa(-2147483648); got != 2147483647 {
-               fmt.Printf("add_int32 -2147483648%s-1 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(1); got != 0 {
+               fmt.Printf("div_int16 1%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg1_int32_ssa(-2147483647); got != -2147483648 {
-               fmt.Printf("add_int32 -1%s-2147483647 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_Neg32767_int16_ssa(32766); got != -1 {
+               fmt.Printf("div_int16 -32767%s32766 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg1_ssa(-2147483647); got != -2147483648 {
-               fmt.Printf("add_int32 -2147483647%s-1 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(32766); got != 0 {
+               fmt.Printf("div_int16 32766%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg1_int32_ssa(-1); got != -2 {
-               fmt.Printf("add_int32 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := div_Neg32767_int16_ssa(32767); got != -1 {
+               fmt.Printf("div_int16 -32767%s32767 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg1_ssa(-1); got != -2 {
-               fmt.Printf("add_int32 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := div_int16_Neg32767_ssa(32767); got != -1 {
+               fmt.Printf("div_int16 32767%s-32767 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg1_int32_ssa(0); got != -1 {
-               fmt.Printf("add_int32 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := div_Neg1_int16_ssa(-32768); got != 0 {
+               fmt.Printf("div_int16 -1%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg1_ssa(0); got != -1 {
-               fmt.Printf("add_int32 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := div_int16_Neg1_ssa(-32768); got != -32768 {
+               fmt.Printf("div_int16 -32768%s-1 = %d, wanted -32768\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg1_int32_ssa(1); got != 0 {
-               fmt.Printf("add_int32 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := div_Neg1_int16_ssa(-32767); got != 0 {
+               fmt.Printf("div_int16 -1%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg1_ssa(1); got != 0 {
-               fmt.Printf("add_int32 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := div_int16_Neg1_ssa(-32767); got != 32767 {
+               fmt.Printf("div_int16 -32767%s-1 = %d, wanted 32767\n", `/`, got)
                failed = true
        }
 
-       if got := add_Neg1_int32_ssa(2147483647); got != 2147483646 {
-               fmt.Printf("add_int32 -1%s2147483647 = %d, wanted 2147483646\n", `+`, got)
+       if got := div_Neg1_int16_ssa(-1); got != 1 {
+               fmt.Printf("div_int16 -1%s-1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_Neg1_ssa(2147483647); got != 2147483646 {
-               fmt.Printf("add_int32 2147483647%s-1 = %d, wanted 2147483646\n", `+`, got)
+       if got := div_int16_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("div_int16 -1%s-1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_0_int32_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("add_int32 0%s-2147483648 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_int16_Neg1_ssa(0); got != 0 {
+               fmt.Printf("div_int16 0%s-1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_0_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("add_int32 -2147483648%s0 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_Neg1_int16_ssa(1); got != -1 {
+               fmt.Printf("div_int16 -1%s1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_0_int32_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("add_int32 0%s-2147483647 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_int16_Neg1_ssa(1); got != -1 {
+               fmt.Printf("div_int16 1%s-1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_0_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("add_int32 -2147483647%s0 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_Neg1_int16_ssa(32766); got != 0 {
+               fmt.Printf("div_int16 -1%s32766 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_0_int32_ssa(-1); got != -1 {
-               fmt.Printf("add_int32 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := div_int16_Neg1_ssa(32766); got != -32766 {
+               fmt.Printf("div_int16 32766%s-1 = %d, wanted -32766\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_0_ssa(-1); got != -1 {
-               fmt.Printf("add_int32 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := div_Neg1_int16_ssa(32767); got != 0 {
+               fmt.Printf("div_int16 -1%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_0_int32_ssa(0); got != 0 {
-               fmt.Printf("add_int32 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := div_int16_Neg1_ssa(32767); got != -32767 {
+               fmt.Printf("div_int16 32767%s-1 = %d, wanted -32767\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_0_ssa(0); got != 0 {
-               fmt.Printf("add_int32 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := div_0_int16_ssa(-32768); got != 0 {
+               fmt.Printf("div_int16 0%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_0_int32_ssa(1); got != 1 {
-               fmt.Printf("add_int32 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := div_0_int16_ssa(-32767); got != 0 {
+               fmt.Printf("div_int16 0%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_0_ssa(1); got != 1 {
-               fmt.Printf("add_int32 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := div_0_int16_ssa(-1); got != 0 {
+               fmt.Printf("div_int16 0%s-1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_0_int32_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("add_int32 0%s2147483647 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_0_int16_ssa(1); got != 0 {
+               fmt.Printf("div_int16 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_0_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("add_int32 2147483647%s0 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_0_int16_ssa(32766); got != 0 {
+               fmt.Printf("div_int16 0%s32766 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_1_int32_ssa(-2147483648); got != -2147483647 {
-               fmt.Printf("add_int32 1%s-2147483648 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_0_int16_ssa(32767); got != 0 {
+               fmt.Printf("div_int16 0%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_1_ssa(-2147483648); got != -2147483647 {
-               fmt.Printf("add_int32 -2147483648%s1 = %d, wanted -2147483647\n", `+`, got)
+       if got := div_1_int16_ssa(-32768); got != 0 {
+               fmt.Printf("div_int16 1%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_1_int32_ssa(-2147483647); got != -2147483646 {
-               fmt.Printf("add_int32 1%s-2147483647 = %d, wanted -2147483646\n", `+`, got)
+       if got := div_int16_1_ssa(-32768); got != -32768 {
+               fmt.Printf("div_int16 -32768%s1 = %d, wanted -32768\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_1_ssa(-2147483647); got != -2147483646 {
-               fmt.Printf("add_int32 -2147483647%s1 = %d, wanted -2147483646\n", `+`, got)
+       if got := div_1_int16_ssa(-32767); got != 0 {
+               fmt.Printf("div_int16 1%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_1_int32_ssa(-1); got != 0 {
-               fmt.Printf("add_int32 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := div_int16_1_ssa(-32767); got != -32767 {
+               fmt.Printf("div_int16 -32767%s1 = %d, wanted -32767\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_1_ssa(-1); got != 0 {
-               fmt.Printf("add_int32 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := div_1_int16_ssa(-1); got != -1 {
+               fmt.Printf("div_int16 1%s-1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_1_int32_ssa(0); got != 1 {
-               fmt.Printf("add_int32 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := div_int16_1_ssa(-1); got != -1 {
+               fmt.Printf("div_int16 -1%s1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_1_ssa(0); got != 1 {
-               fmt.Printf("add_int32 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := div_int16_1_ssa(0); got != 0 {
+               fmt.Printf("div_int16 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_1_int32_ssa(1); got != 2 {
-               fmt.Printf("add_int32 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := div_1_int16_ssa(1); got != 1 {
+               fmt.Printf("div_int16 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_1_ssa(1); got != 2 {
-               fmt.Printf("add_int32 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := div_int16_1_ssa(1); got != 1 {
+               fmt.Printf("div_int16 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_1_int32_ssa(2147483647); got != -2147483648 {
-               fmt.Printf("add_int32 1%s2147483647 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_1_int16_ssa(32766); got != 0 {
+               fmt.Printf("div_int16 1%s32766 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_1_ssa(2147483647); got != -2147483648 {
-               fmt.Printf("add_int32 2147483647%s1 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_int16_1_ssa(32766); got != 32766 {
+               fmt.Printf("div_int16 32766%s1 = %d, wanted 32766\n", `/`, got)
                failed = true
        }
 
-       if got := add_2147483647_int32_ssa(-2147483648); got != -1 {
-               fmt.Printf("add_int32 2147483647%s-2147483648 = %d, wanted -1\n", `+`, got)
+       if got := div_1_int16_ssa(32767); got != 0 {
+               fmt.Printf("div_int16 1%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_2147483647_ssa(-2147483648); got != -1 {
-               fmt.Printf("add_int32 -2147483648%s2147483647 = %d, wanted -1\n", `+`, got)
+       if got := div_int16_1_ssa(32767); got != 32767 {
+               fmt.Printf("div_int16 32767%s1 = %d, wanted 32767\n", `/`, got)
                failed = true
        }
 
-       if got := add_2147483647_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("add_int32 2147483647%s-2147483647 = %d, wanted 0\n", `+`, got)
+       if got := div_32766_int16_ssa(-32768); got != 0 {
+               fmt.Printf("div_int16 32766%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_2147483647_ssa(-2147483647); got != 0 {
-               fmt.Printf("add_int32 -2147483647%s2147483647 = %d, wanted 0\n", `+`, got)
+       if got := div_int16_32766_ssa(-32768); got != -1 {
+               fmt.Printf("div_int16 -32768%s32766 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_2147483647_int32_ssa(-1); got != 2147483646 {
-               fmt.Printf("add_int32 2147483647%s-1 = %d, wanted 2147483646\n", `+`, got)
+       if got := div_32766_int16_ssa(-32767); got != 0 {
+               fmt.Printf("div_int16 32766%s-32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_2147483647_ssa(-1); got != 2147483646 {
-               fmt.Printf("add_int32 -1%s2147483647 = %d, wanted 2147483646\n", `+`, got)
+       if got := div_int16_32766_ssa(-32767); got != -1 {
+               fmt.Printf("div_int16 -32767%s32766 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := add_2147483647_int32_ssa(0); got != 2147483647 {
-               fmt.Printf("add_int32 2147483647%s0 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_32766_int16_ssa(-1); got != -32766 {
+               fmt.Printf("div_int16 32766%s-1 = %d, wanted -32766\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_2147483647_ssa(0); got != 2147483647 {
-               fmt.Printf("add_int32 0%s2147483647 = %d, wanted 2147483647\n", `+`, got)
+       if got := div_int16_32766_ssa(-1); got != 0 {
+               fmt.Printf("div_int16 -1%s32766 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_2147483647_int32_ssa(1); got != -2147483648 {
-               fmt.Printf("add_int32 2147483647%s1 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_int16_32766_ssa(0); got != 0 {
+               fmt.Printf("div_int16 0%s32766 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_2147483647_ssa(1); got != -2147483648 {
-               fmt.Printf("add_int32 1%s2147483647 = %d, wanted -2147483648\n", `+`, got)
+       if got := div_32766_int16_ssa(1); got != 32766 {
+               fmt.Printf("div_int16 32766%s1 = %d, wanted 32766\n", `/`, got)
                failed = true
        }
 
-       if got := add_2147483647_int32_ssa(2147483647); got != -2 {
-               fmt.Printf("add_int32 2147483647%s2147483647 = %d, wanted -2\n", `+`, got)
+       if got := div_int16_32766_ssa(1); got != 0 {
+               fmt.Printf("div_int16 1%s32766 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := add_int32_2147483647_ssa(2147483647); got != -2 {
-               fmt.Printf("add_int32 2147483647%s2147483647 = %d, wanted -2\n", `+`, got)
+       if got := div_32766_int16_ssa(32766); got != 1 {
+               fmt.Printf("div_int16 32766%s32766 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483648_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("sub_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `-`, got)
+       if got := div_int16_32766_ssa(32766); got != 1 {
+               fmt.Printf("div_int16 32766%s32766 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483648_ssa(-2147483648); got != 0 {
-               fmt.Printf("sub_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `-`, got)
+       if got := div_32766_int16_ssa(32767); got != 0 {
+               fmt.Printf("div_int16 32766%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483648_int32_ssa(-2147483647); got != -1 {
-               fmt.Printf("sub_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `-`, got)
+       if got := div_int16_32766_ssa(32767); got != 1 {
+               fmt.Printf("div_int16 32767%s32766 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483648_ssa(-2147483647); got != 1 {
-               fmt.Printf("sub_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `-`, got)
+       if got := div_32767_int16_ssa(-32768); got != 0 {
+               fmt.Printf("div_int16 32767%s-32768 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483648_int32_ssa(-1); got != -2147483647 {
-               fmt.Printf("sub_int32 -2147483648%s-1 = %d, wanted -2147483647\n", `-`, got)
+       if got := div_int16_32767_ssa(-32768); got != -1 {
+               fmt.Printf("div_int16 -32768%s32767 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483648_ssa(-1); got != 2147483647 {
-               fmt.Printf("sub_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `-`, got)
+       if got := div_32767_int16_ssa(-32767); got != -1 {
+               fmt.Printf("div_int16 32767%s-32767 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483648_int32_ssa(0); got != -2147483648 {
-               fmt.Printf("sub_int32 -2147483648%s0 = %d, wanted -2147483648\n", `-`, got)
+       if got := div_int16_32767_ssa(-32767); got != -1 {
+               fmt.Printf("div_int16 -32767%s32767 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483648_ssa(0); got != -2147483648 {
-               fmt.Printf("sub_int32 0%s-2147483648 = %d, wanted -2147483648\n", `-`, got)
+       if got := div_32767_int16_ssa(-1); got != -32767 {
+               fmt.Printf("div_int16 32767%s-1 = %d, wanted -32767\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483648_int32_ssa(1); got != 2147483647 {
-               fmt.Printf("sub_int32 -2147483648%s1 = %d, wanted 2147483647\n", `-`, got)
+       if got := div_int16_32767_ssa(-1); got != 0 {
+               fmt.Printf("div_int16 -1%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483648_ssa(1); got != -2147483647 {
-               fmt.Printf("sub_int32 1%s-2147483648 = %d, wanted -2147483647\n", `-`, got)
+       if got := div_int16_32767_ssa(0); got != 0 {
+               fmt.Printf("div_int16 0%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483648_int32_ssa(2147483647); got != 1 {
-               fmt.Printf("sub_int32 -2147483648%s2147483647 = %d, wanted 1\n", `-`, got)
+       if got := div_32767_int16_ssa(1); got != 32767 {
+               fmt.Printf("div_int16 32767%s1 = %d, wanted 32767\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483648_ssa(2147483647); got != -1 {
-               fmt.Printf("sub_int32 2147483647%s-2147483648 = %d, wanted -1\n", `-`, got)
+       if got := div_int16_32767_ssa(1); got != 0 {
+               fmt.Printf("div_int16 1%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483647_int32_ssa(-2147483648); got != 1 {
-               fmt.Printf("sub_int32 -2147483647%s-2147483648 = %d, wanted 1\n", `-`, got)
+       if got := div_32767_int16_ssa(32766); got != 1 {
+               fmt.Printf("div_int16 32767%s32766 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483647_ssa(-2147483648); got != -1 {
-               fmt.Printf("sub_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `-`, got)
+       if got := div_int16_32767_ssa(32766); got != 0 {
+               fmt.Printf("div_int16 32766%s32767 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483647_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("sub_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `-`, got)
+       if got := div_32767_int16_ssa(32767); got != 1 {
+               fmt.Printf("div_int16 32767%s32767 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483647_ssa(-2147483647); got != 0 {
-               fmt.Printf("sub_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `-`, got)
+       if got := div_int16_32767_ssa(32767); got != 1 {
+               fmt.Printf("div_int16 32767%s32767 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483647_int32_ssa(-1); got != -2147483646 {
-               fmt.Printf("sub_int32 -2147483647%s-1 = %d, wanted -2147483646\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(-32768); got != 0 {
+               fmt.Printf("mul_int16 -32768%s-32768 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483647_ssa(-1); got != 2147483646 {
-               fmt.Printf("sub_int32 -1%s-2147483647 = %d, wanted 2147483646\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(-32768); got != 0 {
+               fmt.Printf("mul_int16 -32768%s-32768 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483647_int32_ssa(0); got != -2147483647 {
-               fmt.Printf("sub_int32 -2147483647%s0 = %d, wanted -2147483647\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(-32767); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s-32767 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483647_ssa(0); got != 2147483647 {
-               fmt.Printf("sub_int32 0%s-2147483647 = %d, wanted 2147483647\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(-32767); got != -32768 {
+               fmt.Printf("mul_int16 -32767%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483647_int32_ssa(1); got != -2147483648 {
-               fmt.Printf("sub_int32 -2147483647%s1 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(-1); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s-1 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483647_ssa(1); got != -2147483648 {
-               fmt.Printf("sub_int32 1%s-2147483647 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(-1); got != -32768 {
+               fmt.Printf("mul_int16 -1%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg2147483647_int32_ssa(2147483647); got != 2 {
-               fmt.Printf("sub_int32 -2147483647%s2147483647 = %d, wanted 2\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 -32768%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg2147483647_ssa(2147483647); got != -2 {
-               fmt.Printf("sub_int32 2147483647%s-2147483647 = %d, wanted -2\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s-32768 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int32_ssa(-2147483648); got != 2147483647 {
-               fmt.Printf("sub_int32 -1%s-2147483648 = %d, wanted 2147483647\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(1); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s1 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg1_ssa(-2147483648); got != -2147483647 {
-               fmt.Printf("sub_int32 -2147483648%s-1 = %d, wanted -2147483647\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(1); got != -32768 {
+               fmt.Printf("mul_int16 1%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int32_ssa(-2147483647); got != 2147483646 {
-               fmt.Printf("sub_int32 -1%s-2147483647 = %d, wanted 2147483646\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(32766); got != 0 {
+               fmt.Printf("mul_int16 -32768%s32766 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg1_ssa(-2147483647); got != -2147483646 {
-               fmt.Printf("sub_int32 -2147483647%s-1 = %d, wanted -2147483646\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(32766); got != 0 {
+               fmt.Printf("mul_int16 32766%s-32768 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int32_ssa(-1); got != 0 {
-               fmt.Printf("sub_int32 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := mul_Neg32768_int16_ssa(32767); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s32767 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("sub_int32 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := mul_int16_Neg32768_ssa(32767); got != -32768 {
+               fmt.Printf("mul_int16 32767%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int32_ssa(0); got != -1 {
-               fmt.Printf("sub_int32 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 -32767%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg1_ssa(0); got != 1 {
-               fmt.Printf("sub_int32 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s-32767 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int32_ssa(1); got != -2 {
-               fmt.Printf("sub_int32 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(-32767); got != 1 {
+               fmt.Printf("mul_int16 -32767%s-32767 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg1_ssa(1); got != 2 {
-               fmt.Printf("sub_int32 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(-32767); got != 1 {
+               fmt.Printf("mul_int16 -32767%s-32767 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int32_ssa(2147483647); got != -2147483648 {
-               fmt.Printf("sub_int32 -1%s2147483647 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(-1); got != 32767 {
+               fmt.Printf("mul_int16 -32767%s-1 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_Neg1_ssa(2147483647); got != -2147483648 {
-               fmt.Printf("sub_int32 2147483647%s-1 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(-1); got != 32767 {
+               fmt.Printf("mul_int16 -1%s-32767 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int32_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("sub_int32 0%s-2147483648 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 -32767%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_0_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("sub_int32 -2147483648%s0 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s-32767 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int32_ssa(-2147483647); got != 2147483647 {
-               fmt.Printf("sub_int32 0%s-2147483647 = %d, wanted 2147483647\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(1); got != -32767 {
+               fmt.Printf("mul_int16 -32767%s1 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_0_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("sub_int32 -2147483647%s0 = %d, wanted -2147483647\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(1); got != -32767 {
+               fmt.Printf("mul_int16 1%s-32767 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int32_ssa(-1); got != 1 {
-               fmt.Printf("sub_int32 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(32766); got != 32766 {
+               fmt.Printf("mul_int16 -32767%s32766 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_0_ssa(-1); got != -1 {
-               fmt.Printf("sub_int32 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(32766); got != 32766 {
+               fmt.Printf("mul_int16 32766%s-32767 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int32_ssa(0); got != 0 {
-               fmt.Printf("sub_int32 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := mul_Neg32767_int16_ssa(32767); got != -1 {
+               fmt.Printf("mul_int16 -32767%s32767 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_0_ssa(0); got != 0 {
-               fmt.Printf("sub_int32 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := mul_int16_Neg32767_ssa(32767); got != -1 {
+               fmt.Printf("mul_int16 32767%s-32767 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int32_ssa(1); got != -1 {
-               fmt.Printf("sub_int32 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 -1%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_0_ssa(1); got != 1 {
-               fmt.Printf("sub_int32 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s-1 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := sub_0_int32_ssa(2147483647); got != -2147483647 {
-               fmt.Printf("sub_int32 0%s2147483647 = %d, wanted -2147483647\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(-32767); got != 32767 {
+               fmt.Printf("mul_int16 -1%s-32767 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_0_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("sub_int32 2147483647%s0 = %d, wanted 2147483647\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(-32767); got != 32767 {
+               fmt.Printf("mul_int16 -32767%s-1 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int32_ssa(-2147483648); got != -2147483647 {
-               fmt.Printf("sub_int32 1%s-2147483648 = %d, wanted -2147483647\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(-1); got != 1 {
+               fmt.Printf("mul_int16 -1%s-1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_1_ssa(-2147483648); got != 2147483647 {
-               fmt.Printf("sub_int32 -2147483648%s1 = %d, wanted 2147483647\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("mul_int16 -1%s-1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int32_ssa(-2147483647); got != -2147483648 {
-               fmt.Printf("sub_int32 1%s-2147483647 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 -1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_1_ssa(-2147483647); got != -2147483648 {
-               fmt.Printf("sub_int32 -2147483647%s1 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s-1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int32_ssa(-1); got != 2 {
-               fmt.Printf("sub_int32 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(1); got != -1 {
+               fmt.Printf("mul_int16 -1%s1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_1_ssa(-1); got != -2 {
-               fmt.Printf("sub_int32 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(1); got != -1 {
+               fmt.Printf("mul_int16 1%s-1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int32_ssa(0); got != 1 {
-               fmt.Printf("sub_int32 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(32766); got != -32766 {
+               fmt.Printf("mul_int16 -1%s32766 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_1_ssa(0); got != -1 {
-               fmt.Printf("sub_int32 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(32766); got != -32766 {
+               fmt.Printf("mul_int16 32766%s-1 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int32_ssa(1); got != 0 {
-               fmt.Printf("sub_int32 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mul_Neg1_int16_ssa(32767); got != -32767 {
+               fmt.Printf("mul_int16 -1%s32767 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_1_ssa(1); got != 0 {
-               fmt.Printf("sub_int32 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mul_int16_Neg1_ssa(32767); got != -32767 {
+               fmt.Printf("mul_int16 32767%s-1 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int32_ssa(2147483647); got != -2147483646 {
-               fmt.Printf("sub_int32 1%s2147483647 = %d, wanted -2147483646\n", `-`, got)
+       if got := mul_0_int16_ssa(-32768); got != 0 {
+               fmt.Printf("mul_int16 0%s-32768 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_1_ssa(2147483647); got != 2147483646 {
-               fmt.Printf("sub_int32 2147483647%s1 = %d, wanted 2147483646\n", `-`, got)
+       if got := mul_int16_0_ssa(-32768); got != 0 {
+               fmt.Printf("mul_int16 -32768%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_2147483647_int32_ssa(-2147483648); got != -1 {
-               fmt.Printf("sub_int32 2147483647%s-2147483648 = %d, wanted -1\n", `-`, got)
+       if got := mul_0_int16_ssa(-32767); got != 0 {
+               fmt.Printf("mul_int16 0%s-32767 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_2147483647_ssa(-2147483648); got != 1 {
-               fmt.Printf("sub_int32 -2147483648%s2147483647 = %d, wanted 1\n", `-`, got)
+       if got := mul_int16_0_ssa(-32767); got != 0 {
+               fmt.Printf("mul_int16 -32767%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_2147483647_int32_ssa(-2147483647); got != -2 {
-               fmt.Printf("sub_int32 2147483647%s-2147483647 = %d, wanted -2\n", `-`, got)
+       if got := mul_0_int16_ssa(-1); got != 0 {
+               fmt.Printf("mul_int16 0%s-1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_2147483647_ssa(-2147483647); got != 2 {
-               fmt.Printf("sub_int32 -2147483647%s2147483647 = %d, wanted 2\n", `-`, got)
+       if got := mul_int16_0_ssa(-1); got != 0 {
+               fmt.Printf("mul_int16 -1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_2147483647_int32_ssa(-1); got != -2147483648 {
-               fmt.Printf("sub_int32 2147483647%s-1 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_0_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_2147483647_ssa(-1); got != -2147483648 {
-               fmt.Printf("sub_int32 -1%s2147483647 = %d, wanted -2147483648\n", `-`, got)
+       if got := mul_int16_0_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_2147483647_int32_ssa(0); got != 2147483647 {
-               fmt.Printf("sub_int32 2147483647%s0 = %d, wanted 2147483647\n", `-`, got)
+       if got := mul_0_int16_ssa(1); got != 0 {
+               fmt.Printf("mul_int16 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_2147483647_ssa(0); got != -2147483647 {
-               fmt.Printf("sub_int32 0%s2147483647 = %d, wanted -2147483647\n", `-`, got)
+       if got := mul_int16_0_ssa(1); got != 0 {
+               fmt.Printf("mul_int16 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_2147483647_int32_ssa(1); got != 2147483646 {
-               fmt.Printf("sub_int32 2147483647%s1 = %d, wanted 2147483646\n", `-`, got)
+       if got := mul_0_int16_ssa(32766); got != 0 {
+               fmt.Printf("mul_int16 0%s32766 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_2147483647_ssa(1); got != -2147483646 {
-               fmt.Printf("sub_int32 1%s2147483647 = %d, wanted -2147483646\n", `-`, got)
+       if got := mul_int16_0_ssa(32766); got != 0 {
+               fmt.Printf("mul_int16 32766%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_2147483647_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("sub_int32 2147483647%s2147483647 = %d, wanted 0\n", `-`, got)
+       if got := mul_0_int16_ssa(32767); got != 0 {
+               fmt.Printf("mul_int16 0%s32767 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int32_2147483647_ssa(2147483647); got != 0 {
-               fmt.Printf("sub_int32 2147483647%s2147483647 = %d, wanted 0\n", `-`, got)
+       if got := mul_int16_0_ssa(32767); got != 0 {
+               fmt.Printf("mul_int16 32767%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483648_int32_ssa(-2147483648); got != 1 {
-               fmt.Printf("div_int32 -2147483648%s-2147483648 = %d, wanted 1\n", `/`, got)
+       if got := mul_1_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 1%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483648_ssa(-2147483648); got != 1 {
-               fmt.Printf("div_int32 -2147483648%s-2147483648 = %d, wanted 1\n", `/`, got)
+       if got := mul_int16_1_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s1 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483648_int32_ssa(-2147483647); got != 1 {
-               fmt.Printf("div_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `/`, got)
+       if got := mul_1_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("mul_int16 1%s-32767 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483648_ssa(-2147483647); got != 0 {
-               fmt.Printf("div_int32 -2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_1_ssa(-32767); got != -32767 {
+               fmt.Printf("mul_int16 -32767%s1 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483648_int32_ssa(-1); got != -2147483648 {
-               fmt.Printf("div_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `/`, got)
+       if got := mul_1_int16_ssa(-1); got != -1 {
+               fmt.Printf("mul_int16 1%s-1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483648_ssa(-1); got != 0 {
-               fmt.Printf("div_int32 -1%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_1_ssa(-1); got != -1 {
+               fmt.Printf("mul_int16 -1%s1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483648_ssa(0); got != 0 {
-               fmt.Printf("div_int32 0%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_1_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483648_int32_ssa(1); got != -2147483648 {
-               fmt.Printf("div_int32 -2147483648%s1 = %d, wanted -2147483648\n", `/`, got)
+       if got := mul_int16_1_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483648_ssa(1); got != 0 {
-               fmt.Printf("div_int32 1%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_1_int16_ssa(1); got != 1 {
+               fmt.Printf("mul_int16 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483648_int32_ssa(2147483647); got != -1 {
-               fmt.Printf("div_int32 -2147483648%s2147483647 = %d, wanted -1\n", `/`, got)
+       if got := mul_int16_1_ssa(1); got != 1 {
+               fmt.Printf("mul_int16 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483648_ssa(2147483647); got != 0 {
-               fmt.Printf("div_int32 2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_1_int16_ssa(32766); got != 32766 {
+               fmt.Printf("mul_int16 1%s32766 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483647_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("div_int32 -2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_1_ssa(32766); got != 32766 {
+               fmt.Printf("mul_int16 32766%s1 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483647_ssa(-2147483648); got != 1 {
-               fmt.Printf("div_int32 -2147483648%s-2147483647 = %d, wanted 1\n", `/`, got)
+       if got := mul_1_int16_ssa(32767); got != 32767 {
+               fmt.Printf("mul_int16 1%s32767 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483647_int32_ssa(-2147483647); got != 1 {
-               fmt.Printf("div_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `/`, got)
+       if got := mul_int16_1_ssa(32767); got != 32767 {
+               fmt.Printf("mul_int16 32767%s1 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483647_ssa(-2147483647); got != 1 {
-               fmt.Printf("div_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `/`, got)
+       if got := mul_32766_int16_ssa(-32768); got != 0 {
+               fmt.Printf("mul_int16 32766%s-32768 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483647_int32_ssa(-1); got != 2147483647 {
-               fmt.Printf("div_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `/`, got)
+       if got := mul_int16_32766_ssa(-32768); got != 0 {
+               fmt.Printf("mul_int16 -32768%s32766 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483647_ssa(-1); got != 0 {
-               fmt.Printf("div_int32 -1%s-2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_32766_int16_ssa(-32767); got != 32766 {
+               fmt.Printf("mul_int16 32766%s-32767 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483647_ssa(0); got != 0 {
-               fmt.Printf("div_int32 0%s-2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_32766_ssa(-32767); got != 32766 {
+               fmt.Printf("mul_int16 -32767%s32766 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483647_int32_ssa(1); got != -2147483647 {
-               fmt.Printf("div_int32 -2147483647%s1 = %d, wanted -2147483647\n", `/`, got)
+       if got := mul_32766_int16_ssa(-1); got != -32766 {
+               fmt.Printf("mul_int16 32766%s-1 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483647_ssa(1); got != 0 {
-               fmt.Printf("div_int32 1%s-2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_32766_ssa(-1); got != -32766 {
+               fmt.Printf("mul_int16 -1%s32766 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg2147483647_int32_ssa(2147483647); got != -1 {
-               fmt.Printf("div_int32 -2147483647%s2147483647 = %d, wanted -1\n", `/`, got)
+       if got := mul_32766_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 32766%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg2147483647_ssa(2147483647); got != -1 {
-               fmt.Printf("div_int32 2147483647%s-2147483647 = %d, wanted -1\n", `/`, got)
+       if got := mul_int16_32766_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s32766 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg1_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("div_int32 -1%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_32766_int16_ssa(1); got != 32766 {
+               fmt.Printf("mul_int16 32766%s1 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg1_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("div_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `/`, got)
+       if got := mul_int16_32766_ssa(1); got != 32766 {
+               fmt.Printf("mul_int16 1%s32766 = %d, wanted 32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg1_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("div_int32 -1%s-2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_32766_int16_ssa(32766); got != 4 {
+               fmt.Printf("mul_int16 32766%s32766 = %d, wanted 4\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg1_ssa(-2147483647); got != 2147483647 {
-               fmt.Printf("div_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `/`, got)
+       if got := mul_int16_32766_ssa(32766); got != 4 {
+               fmt.Printf("mul_int16 32766%s32766 = %d, wanted 4\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg1_int32_ssa(-1); got != 1 {
-               fmt.Printf("div_int32 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := mul_32766_int16_ssa(32767); got != -32766 {
+               fmt.Printf("mul_int16 32766%s32767 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("div_int32 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := mul_int16_32766_ssa(32767); got != -32766 {
+               fmt.Printf("mul_int16 32767%s32766 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg1_ssa(0); got != 0 {
-               fmt.Printf("div_int32 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := mul_32767_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 32767%s-32768 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg1_int32_ssa(1); got != -1 {
-               fmt.Printf("div_int32 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := mul_int16_32767_ssa(-32768); got != -32768 {
+               fmt.Printf("mul_int16 -32768%s32767 = %d, wanted -32768\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg1_ssa(1); got != -1 {
-               fmt.Printf("div_int32 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := mul_32767_int16_ssa(-32767); got != -1 {
+               fmt.Printf("mul_int16 32767%s-32767 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := div_Neg1_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("div_int32 -1%s2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_32767_ssa(-32767); got != -1 {
+               fmt.Printf("mul_int16 -32767%s32767 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_Neg1_ssa(2147483647); got != -2147483647 {
-               fmt.Printf("div_int32 2147483647%s-1 = %d, wanted -2147483647\n", `/`, got)
+       if got := mul_32767_int16_ssa(-1); got != -32767 {
+               fmt.Printf("mul_int16 32767%s-1 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_0_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("div_int32 0%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_32767_ssa(-1); got != -32767 {
+               fmt.Printf("mul_int16 -1%s32767 = %d, wanted -32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_0_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("div_int32 0%s-2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_32767_int16_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 32767%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_0_int32_ssa(-1); got != 0 {
-               fmt.Printf("div_int32 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_32767_ssa(0); got != 0 {
+               fmt.Printf("mul_int16 0%s32767 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := div_0_int32_ssa(1); got != 0 {
-               fmt.Printf("div_int32 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := mul_32767_int16_ssa(1); got != 32767 {
+               fmt.Printf("mul_int16 32767%s1 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_0_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("div_int32 0%s2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_int16_32767_ssa(1); got != 32767 {
+               fmt.Printf("mul_int16 1%s32767 = %d, wanted 32767\n", `*`, got)
                failed = true
        }
 
-       if got := div_1_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("div_int32 1%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mul_32767_int16_ssa(32766); got != -32766 {
+               fmt.Printf("mul_int16 32767%s32766 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_1_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("div_int32 -2147483648%s1 = %d, wanted -2147483648\n", `/`, got)
+       if got := mul_int16_32767_ssa(32766); got != -32766 {
+               fmt.Printf("mul_int16 32766%s32767 = %d, wanted -32766\n", `*`, got)
                failed = true
        }
 
-       if got := div_1_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("div_int32 1%s-2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mul_32767_int16_ssa(32767); got != 1 {
+               fmt.Printf("mul_int16 32767%s32767 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := div_int32_1_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("div_int32 -2147483647%s1 = %d, wanted -2147483647\n", `/`, got)
+       if got := mul_int16_32767_ssa(32767); got != 1 {
+               fmt.Printf("mul_int16 32767%s32767 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := div_1_int32_ssa(-1); got != -1 {
-               fmt.Printf("div_int32 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := mod_Neg32768_int16_ssa(-32768); got != 0 {
+               fmt.Printf("mod_int16 -32768%s-32768 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_1_ssa(-1); got != -1 {
-               fmt.Printf("div_int32 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(-32768); got != 0 {
+               fmt.Printf("mod_int16 -32768%s-32768 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_1_ssa(0); got != 0 {
-               fmt.Printf("div_int32 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := mod_Neg32768_int16_ssa(-32767); got != -1 {
+               fmt.Printf("mod_int16 -32768%s-32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := div_1_int32_ssa(1); got != 1 {
-               fmt.Printf("div_int32 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(-32767); got != -32767 {
+               fmt.Printf("mod_int16 -32767%s-32768 = %d, wanted -32767\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_1_ssa(1); got != 1 {
-               fmt.Printf("div_int32 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := mod_Neg32768_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 -32768%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_1_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("div_int32 1%s2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(-1); got != -1 {
+               fmt.Printf("mod_int16 -1%s-32768 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_1_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("div_int32 2147483647%s1 = %d, wanted 2147483647\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(0); got != 0 {
+               fmt.Printf("mod_int16 0%s-32768 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_2147483647_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("div_int32 2147483647%s-2147483648 = %d, wanted 0\n", `/`, got)
+       if got := mod_Neg32768_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 -32768%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_2147483647_ssa(-2147483648); got != -1 {
-               fmt.Printf("div_int32 -2147483648%s2147483647 = %d, wanted -1\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(1); got != 1 {
+               fmt.Printf("mod_int16 1%s-32768 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := div_2147483647_int32_ssa(-2147483647); got != -1 {
-               fmt.Printf("div_int32 2147483647%s-2147483647 = %d, wanted -1\n", `/`, got)
+       if got := mod_Neg32768_int16_ssa(32766); got != -2 {
+               fmt.Printf("mod_int16 -32768%s32766 = %d, wanted -2\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_2147483647_ssa(-2147483647); got != -1 {
-               fmt.Printf("div_int32 -2147483647%s2147483647 = %d, wanted -1\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(32766); got != 32766 {
+               fmt.Printf("mod_int16 32766%s-32768 = %d, wanted 32766\n", `%`, got)
                failed = true
        }
 
-       if got := div_2147483647_int32_ssa(-1); got != -2147483647 {
-               fmt.Printf("div_int32 2147483647%s-1 = %d, wanted -2147483647\n", `/`, got)
+       if got := mod_Neg32768_int16_ssa(32767); got != -1 {
+               fmt.Printf("mod_int16 -32768%s32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_2147483647_ssa(-1); got != 0 {
-               fmt.Printf("div_int32 -1%s2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mod_int16_Neg32768_ssa(32767); got != 32767 {
+               fmt.Printf("mod_int16 32767%s-32768 = %d, wanted 32767\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_2147483647_ssa(0); got != 0 {
-               fmt.Printf("div_int32 0%s2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mod_Neg32767_int16_ssa(-32768); got != -32767 {
+               fmt.Printf("mod_int16 -32767%s-32768 = %d, wanted -32767\n", `%`, got)
                failed = true
        }
 
-       if got := div_2147483647_int32_ssa(1); got != 2147483647 {
-               fmt.Printf("div_int32 2147483647%s1 = %d, wanted 2147483647\n", `/`, got)
+       if got := mod_int16_Neg32767_ssa(-32768); got != -1 {
+               fmt.Printf("mod_int16 -32768%s-32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_2147483647_ssa(1); got != 0 {
-               fmt.Printf("div_int32 1%s2147483647 = %d, wanted 0\n", `/`, got)
+       if got := mod_Neg32767_int16_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 -32767%s-32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_2147483647_int32_ssa(2147483647); got != 1 {
-               fmt.Printf("div_int32 2147483647%s2147483647 = %d, wanted 1\n", `/`, got)
+       if got := mod_int16_Neg32767_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 -32767%s-32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int32_2147483647_ssa(2147483647); got != 1 {
-               fmt.Printf("div_int32 2147483647%s2147483647 = %d, wanted 1\n", `/`, got)
+       if got := mod_Neg32767_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 -32767%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483648_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("mul_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_Neg32767_ssa(-1); got != -1 {
+               fmt.Printf("mod_int16 -1%s-32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483648_ssa(-2147483648); got != 0 {
-               fmt.Printf("mul_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_Neg32767_ssa(0); got != 0 {
+               fmt.Printf("mod_int16 0%s-32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483648_int32_ssa(-2147483647); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s-2147483647 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_Neg32767_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 -32767%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483648_ssa(-2147483647); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_Neg32767_ssa(1); got != 1 {
+               fmt.Printf("mod_int16 1%s-32767 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483648_int32_ssa(-1); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_Neg32767_int16_ssa(32766); got != -1 {
+               fmt.Printf("mod_int16 -32767%s32766 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483648_ssa(-1); got != -2147483648 {
-               fmt.Printf("mul_int32 -1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_Neg32767_ssa(32766); got != 32766 {
+               fmt.Printf("mod_int16 32766%s-32767 = %d, wanted 32766\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483648_int32_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 -2147483648%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_Neg32767_int16_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 -32767%s32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483648_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s-2147483648 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_Neg32767_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 32767%s-32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483648_int32_ssa(1); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s1 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_Neg1_int16_ssa(-32768); got != -1 {
+               fmt.Printf("mod_int16 -1%s-32768 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483648_ssa(1); got != -2147483648 {
-               fmt.Printf("mul_int32 1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(-32768); got != 0 {
+               fmt.Printf("mod_int16 -32768%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483648_int32_ssa(2147483647); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s2147483647 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_Neg1_int16_ssa(-32767); got != -1 {
+               fmt.Printf("mod_int16 -1%s-32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483648_ssa(2147483647); got != -2147483648 {
-               fmt.Printf("mul_int32 2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 -32767%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483647_int32_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_Neg1_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 -1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483647_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s-2147483647 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 -1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483647_int32_ssa(-2147483647); got != 1 {
-               fmt.Printf("mul_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mod_int16 0%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483647_ssa(-2147483647); got != 1 {
-               fmt.Printf("mul_int32 -2147483647%s-2147483647 = %d, wanted 1\n", `*`, got)
+       if got := mod_Neg1_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 -1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483647_int32_ssa(-1); got != 2147483647 {
-               fmt.Printf("mul_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483647_ssa(-1); got != 2147483647 {
-               fmt.Printf("mul_int32 -1%s-2147483647 = %d, wanted 2147483647\n", `*`, got)
+       if got := mod_Neg1_int16_ssa(32766); got != -1 {
+               fmt.Printf("mod_int16 -1%s32766 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483647_int32_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 -2147483647%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(32766); got != 0 {
+               fmt.Printf("mod_int16 32766%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483647_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s-2147483647 = %d, wanted 0\n", `*`, got)
+       if got := mod_Neg1_int16_ssa(32767); got != -1 {
+               fmt.Printf("mod_int16 -1%s32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483647_int32_ssa(1); got != -2147483647 {
-               fmt.Printf("mul_int32 -2147483647%s1 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_int16_Neg1_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 32767%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483647_ssa(1); got != -2147483647 {
-               fmt.Printf("mul_int32 1%s-2147483647 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_0_int16_ssa(-32768); got != 0 {
+               fmt.Printf("mod_int16 0%s-32768 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg2147483647_int32_ssa(2147483647); got != -1 {
-               fmt.Printf("mul_int32 -2147483647%s2147483647 = %d, wanted -1\n", `*`, got)
+       if got := mod_0_int16_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 0%s-32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg2147483647_ssa(2147483647); got != -1 {
-               fmt.Printf("mul_int32 2147483647%s-2147483647 = %d, wanted -1\n", `*`, got)
+       if got := mod_0_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 0%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int32_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 -1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_0_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg1_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s-1 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_0_int16_ssa(32766); got != 0 {
+               fmt.Printf("mod_int16 0%s32766 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int32_ssa(-2147483647); got != 2147483647 {
-               fmt.Printf("mul_int32 -1%s-2147483647 = %d, wanted 2147483647\n", `*`, got)
+       if got := mod_0_int16_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 0%s32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg1_ssa(-2147483647); got != 2147483647 {
-               fmt.Printf("mul_int32 -2147483647%s-1 = %d, wanted 2147483647\n", `*`, got)
+       if got := mod_1_int16_ssa(-32768); got != 1 {
+               fmt.Printf("mod_int16 1%s-32768 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int32_ssa(-1); got != 1 {
-               fmt.Printf("mul_int32 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := mod_int16_1_ssa(-32768); got != 0 {
+               fmt.Printf("mod_int16 -32768%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("mul_int32 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := mod_1_int16_ssa(-32767); got != 1 {
+               fmt.Printf("mod_int16 1%s-32767 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int32_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_1_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 -32767%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := mod_1_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int32_ssa(1); got != -1 {
-               fmt.Printf("mul_int32 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := mod_int16_1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 -1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg1_ssa(1); got != -1 {
-               fmt.Printf("mul_int32 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := mod_int16_1_ssa(0); got != 0 {
+               fmt.Printf("mod_int16 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int32_ssa(2147483647); got != -2147483647 {
-               fmt.Printf("mul_int32 -1%s2147483647 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_1_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_Neg1_ssa(2147483647); got != -2147483647 {
-               fmt.Printf("mul_int32 2147483647%s-1 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_int16_1_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_0_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("mul_int32 0%s-2147483648 = %d, wanted 0\n", `*`, got)
+       if got := mod_1_int16_ssa(32766); got != 1 {
+               fmt.Printf("mod_int16 1%s32766 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_0_ssa(-2147483648); got != 0 {
-               fmt.Printf("mul_int32 -2147483648%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_1_ssa(32766); got != 0 {
+               fmt.Printf("mod_int16 32766%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_0_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("mul_int32 0%s-2147483647 = %d, wanted 0\n", `*`, got)
+       if got := mod_1_int16_ssa(32767); got != 1 {
+               fmt.Printf("mod_int16 1%s32767 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_0_ssa(-2147483647); got != 0 {
-               fmt.Printf("mul_int32 -2147483647%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_1_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 32767%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_0_int32_ssa(-1); got != 0 {
-               fmt.Printf("mul_int32 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := mod_32766_int16_ssa(-32768); got != 32766 {
+               fmt.Printf("mod_int16 32766%s-32768 = %d, wanted 32766\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_0_ssa(-1); got != 0 {
-               fmt.Printf("mul_int32 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_32766_ssa(-32768); got != -2 {
+               fmt.Printf("mod_int16 -32768%s32766 = %d, wanted -2\n", `%`, got)
                failed = true
        }
 
-       if got := mul_0_int32_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_32766_int16_ssa(-32767); got != 32766 {
+               fmt.Printf("mod_int16 32766%s-32767 = %d, wanted 32766\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_0_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_32766_ssa(-32767); got != -1 {
+               fmt.Printf("mod_int16 -32767%s32766 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_0_int32_ssa(1); got != 0 {
-               fmt.Printf("mul_int32 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := mod_32766_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 32766%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_0_ssa(1); got != 0 {
-               fmt.Printf("mul_int32 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_32766_ssa(-1); got != -1 {
+               fmt.Printf("mod_int16 -1%s32766 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_0_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("mul_int32 0%s2147483647 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_32766_ssa(0); got != 0 {
+               fmt.Printf("mod_int16 0%s32766 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_0_ssa(2147483647); got != 0 {
-               fmt.Printf("mul_int32 2147483647%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_32766_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 32766%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_1_int32_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 1%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_32766_ssa(1); got != 1 {
+               fmt.Printf("mod_int16 1%s32766 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_1_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s1 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_32766_int16_ssa(32766); got != 0 {
+               fmt.Printf("mod_int16 32766%s32766 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_1_int32_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("mul_int32 1%s-2147483647 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_int16_32766_ssa(32766); got != 0 {
+               fmt.Printf("mod_int16 32766%s32766 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_1_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("mul_int32 -2147483647%s1 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_32766_int16_ssa(32767); got != 32766 {
+               fmt.Printf("mod_int16 32766%s32767 = %d, wanted 32766\n", `%`, got)
                failed = true
        }
 
-       if got := mul_1_int32_ssa(-1); got != -1 {
-               fmt.Printf("mul_int32 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := mod_int16_32766_ssa(32767); got != 1 {
+               fmt.Printf("mod_int16 32767%s32766 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_1_ssa(-1); got != -1 {
-               fmt.Printf("mul_int32 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := mod_32767_int16_ssa(-32768); got != 32767 {
+               fmt.Printf("mod_int16 32767%s-32768 = %d, wanted 32767\n", `%`, got)
                failed = true
        }
 
-       if got := mul_1_int32_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := mod_int16_32767_ssa(-32768); got != -1 {
+               fmt.Printf("mod_int16 -32768%s32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_1_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := mod_32767_int16_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 32767%s-32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_1_int32_ssa(1); got != 1 {
-               fmt.Printf("mul_int32 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := mod_int16_32767_ssa(-32767); got != 0 {
+               fmt.Printf("mod_int16 -32767%s32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_1_ssa(1); got != 1 {
-               fmt.Printf("mul_int32 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := mod_32767_int16_ssa(-1); got != 0 {
+               fmt.Printf("mod_int16 32767%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_1_int32_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("mul_int32 1%s2147483647 = %d, wanted 2147483647\n", `*`, got)
+       if got := mod_int16_32767_ssa(-1); got != -1 {
+               fmt.Printf("mod_int16 -1%s32767 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_1_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("mul_int32 2147483647%s1 = %d, wanted 2147483647\n", `*`, got)
+       if got := mod_int16_32767_ssa(0); got != 0 {
+               fmt.Printf("mod_int16 0%s32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_2147483647_int32_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 2147483647%s-2147483648 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_32767_int16_ssa(1); got != 0 {
+               fmt.Printf("mod_int16 32767%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_2147483647_ssa(-2147483648); got != -2147483648 {
-               fmt.Printf("mul_int32 -2147483648%s2147483647 = %d, wanted -2147483648\n", `*`, got)
+       if got := mod_int16_32767_ssa(1); got != 1 {
+               fmt.Printf("mod_int16 1%s32767 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_2147483647_int32_ssa(-2147483647); got != -1 {
-               fmt.Printf("mul_int32 2147483647%s-2147483647 = %d, wanted -1\n", `*`, got)
+       if got := mod_32767_int16_ssa(32766); got != 1 {
+               fmt.Printf("mod_int16 32767%s32766 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_2147483647_ssa(-2147483647); got != -1 {
-               fmt.Printf("mul_int32 -2147483647%s2147483647 = %d, wanted -1\n", `*`, got)
+       if got := mod_int16_32767_ssa(32766); got != 32766 {
+               fmt.Printf("mod_int16 32766%s32767 = %d, wanted 32766\n", `%`, got)
                failed = true
        }
 
-       if got := mul_2147483647_int32_ssa(-1); got != -2147483647 {
-               fmt.Printf("mul_int32 2147483647%s-1 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_32767_int16_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 32767%s32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_int32_2147483647_ssa(-1); got != -2147483647 {
-               fmt.Printf("mul_int32 -1%s2147483647 = %d, wanted -2147483647\n", `*`, got)
+       if got := mod_int16_32767_ssa(32767); got != 0 {
+               fmt.Printf("mod_int16 32767%s32767 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := mul_2147483647_int32_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 2147483647%s0 = %d, wanted 0\n", `*`, got)
+       if got := and_Neg32768_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("and_int16 -32768%s-32768 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mul_int32_2147483647_ssa(0); got != 0 {
-               fmt.Printf("mul_int32 0%s2147483647 = %d, wanted 0\n", `*`, got)
+       if got := and_int16_Neg32768_ssa(-32768); got != -32768 {
+               fmt.Printf("and_int16 -32768%s-32768 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mul_2147483647_int32_ssa(1); got != 2147483647 {
-               fmt.Printf("mul_int32 2147483647%s1 = %d, wanted 2147483647\n", `*`, got)
+       if got := and_Neg32768_int16_ssa(-32767); got != -32768 {
+               fmt.Printf("and_int16 -32768%s-32767 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mul_int32_2147483647_ssa(1); got != 2147483647 {
-               fmt.Printf("mul_int32 1%s2147483647 = %d, wanted 2147483647\n", `*`, got)
+       if got := and_int16_Neg32768_ssa(-32767); got != -32768 {
+               fmt.Printf("and_int16 -32767%s-32768 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mul_2147483647_int32_ssa(2147483647); got != 1 {
-               fmt.Printf("mul_int32 2147483647%s2147483647 = %d, wanted 1\n", `*`, got)
+       if got := and_Neg32768_int16_ssa(-1); got != -32768 {
+               fmt.Printf("and_int16 -32768%s-1 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mul_int32_2147483647_ssa(2147483647); got != 1 {
-               fmt.Printf("mul_int32 2147483647%s2147483647 = %d, wanted 1\n", `*`, got)
+       if got := and_int16_Neg32768_ssa(-1); got != -32768 {
+               fmt.Printf("and_int16 -1%s-32768 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483648_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("mod_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg32768_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 -32768%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483648_ssa(-2147483648); got != 0 {
-               fmt.Printf("mod_int32 -2147483648%s-2147483648 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg32768_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483648_int32_ssa(-2147483647); got != -1 {
-               fmt.Printf("mod_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_Neg32768_int16_ssa(1); got != 0 {
+               fmt.Printf("and_int16 -32768%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483648_ssa(-2147483647); got != -2147483647 {
-               fmt.Printf("mod_int32 -2147483647%s-2147483648 = %d, wanted -2147483647\n", `%`, got)
+       if got := and_int16_Neg32768_ssa(1); got != 0 {
+               fmt.Printf("and_int16 1%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483648_int32_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 -2147483648%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg32768_int16_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 -32768%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483648_ssa(-1); got != -1 {
-               fmt.Printf("mod_int32 -1%s-2147483648 = %d, wanted -1\n", `%`, got)
+       if got := and_int16_Neg32768_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 32766%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483648_ssa(0); got != 0 {
-               fmt.Printf("mod_int32 0%s-2147483648 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg32768_int16_ssa(32767); got != 0 {
+               fmt.Printf("and_int16 -32768%s32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483648_int32_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 -2147483648%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg32768_ssa(32767); got != 0 {
+               fmt.Printf("and_int16 32767%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483648_ssa(1); got != 1 {
-               fmt.Printf("mod_int32 1%s-2147483648 = %d, wanted 1\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("and_int16 -32767%s-32768 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483648_int32_ssa(2147483647); got != -1 {
-               fmt.Printf("mod_int32 -2147483648%s2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(-32768); got != -32768 {
+               fmt.Printf("and_int16 -32768%s-32767 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483648_ssa(2147483647); got != 2147483647 {
-               fmt.Printf("mod_int32 2147483647%s-2147483648 = %d, wanted 2147483647\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("and_int16 -32767%s-32767 = %d, wanted -32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483647_int32_ssa(-2147483648); got != -2147483647 {
-               fmt.Printf("mod_int32 -2147483647%s-2147483648 = %d, wanted -2147483647\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(-32767); got != -32767 {
+               fmt.Printf("and_int16 -32767%s-32767 = %d, wanted -32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483647_ssa(-2147483648); got != -1 {
-               fmt.Printf("mod_int32 -2147483648%s-2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(-1); got != -32767 {
+               fmt.Printf("and_int16 -32767%s-1 = %d, wanted -32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483647_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(-1); got != -32767 {
+               fmt.Printf("and_int16 -1%s-32767 = %d, wanted -32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483647_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 -32767%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483647_int32_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s-32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483647_ssa(-1); got != -1 {
-               fmt.Printf("mod_int32 -1%s-2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(1); got != 1 {
+               fmt.Printf("and_int16 -32767%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483647_ssa(0); got != 0 {
-               fmt.Printf("mod_int32 0%s-2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(1); got != 1 {
+               fmt.Printf("and_int16 1%s-32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483647_int32_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 -32767%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483647_ssa(1); got != 1 {
-               fmt.Printf("mod_int32 1%s-2147483647 = %d, wanted 1\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 32766%s-32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg2147483647_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg32767_int16_ssa(32767); got != 1 {
+               fmt.Printf("and_int16 -32767%s32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg2147483647_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg32767_ssa(32767); got != 1 {
+               fmt.Printf("and_int16 32767%s-32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int32_ssa(-2147483648); got != -1 {
-               fmt.Printf("mod_int32 -1%s-2147483648 = %d, wanted -1\n", `%`, got)
+       if got := and_Neg1_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("and_int16 -1%s-32768 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg1_ssa(-2147483648); got != 0 {
-               fmt.Printf("mod_int32 -2147483648%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg1_ssa(-32768); got != -32768 {
+               fmt.Printf("and_int16 -32768%s-1 = %d, wanted -32768\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int32_ssa(-2147483647); got != -1 {
-               fmt.Printf("mod_int32 -1%s-2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_Neg1_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("and_int16 -1%s-32767 = %d, wanted -32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg1_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg1_ssa(-32767); got != -32767 {
+               fmt.Printf("and_int16 -32767%s-1 = %d, wanted -32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int32_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg1_int16_ssa(-1); got != -1 {
+               fmt.Printf("and_int16 -1%s-1 = %d, wanted -1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("and_int16 -1%s-1 = %d, wanted -1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mod_int32 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg1_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 -1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int32_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg1_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s-1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg1_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg1_int16_ssa(1); got != 1 {
+               fmt.Printf("and_int16 -1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int32_ssa(2147483647); got != -1 {
-               fmt.Printf("mod_int32 -1%s2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_int16_Neg1_ssa(1); got != 1 {
+               fmt.Printf("and_int16 1%s-1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_Neg1_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg1_int16_ssa(32766); got != 32766 {
+               fmt.Printf("and_int16 -1%s32766 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := mod_0_int32_ssa(-2147483648); got != 0 {
-               fmt.Printf("mod_int32 0%s-2147483648 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg1_ssa(32766); got != 32766 {
+               fmt.Printf("and_int16 32766%s-1 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := mod_0_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 0%s-2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_Neg1_int16_ssa(32767); got != 32767 {
+               fmt.Printf("and_int16 -1%s32767 = %d, wanted 32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_0_int32_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_Neg1_ssa(32767); got != 32767 {
+               fmt.Printf("and_int16 32767%s-1 = %d, wanted 32767\n", `&`, got)
                failed = true
        }
 
-       if got := mod_0_int32_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_0_int16_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 0%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_0_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 0%s2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_0_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 -32768%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_1_int32_ssa(-2147483648); got != 1 {
-               fmt.Printf("mod_int32 1%s-2147483648 = %d, wanted 1\n", `%`, got)
+       if got := and_0_int16_ssa(-32767); got != 0 {
+               fmt.Printf("and_int16 0%s-32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_1_ssa(-2147483648); got != 0 {
-               fmt.Printf("mod_int32 -2147483648%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_0_ssa(-32767); got != 0 {
+               fmt.Printf("and_int16 -32767%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_1_int32_ssa(-2147483647); got != 1 {
-               fmt.Printf("mod_int32 1%s-2147483647 = %d, wanted 1\n", `%`, got)
+       if got := and_0_int16_ssa(-1); got != 0 {
+               fmt.Printf("and_int16 0%s-1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_1_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_0_ssa(-1); got != 0 {
+               fmt.Printf("and_int16 -1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_1_int32_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_0_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_0_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_1_ssa(0); got != 0 {
-               fmt.Printf("mod_int32 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_0_int16_ssa(1); got != 0 {
+               fmt.Printf("and_int16 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_1_int32_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_0_ssa(1); got != 0 {
+               fmt.Printf("and_int16 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_1_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_0_int16_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 0%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_1_int32_ssa(2147483647); got != 1 {
-               fmt.Printf("mod_int32 1%s2147483647 = %d, wanted 1\n", `%`, got)
+       if got := and_int16_0_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 32766%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_1_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_0_int16_ssa(32767); got != 0 {
+               fmt.Printf("and_int16 0%s32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_2147483647_int32_ssa(-2147483648); got != 2147483647 {
-               fmt.Printf("mod_int32 2147483647%s-2147483648 = %d, wanted 2147483647\n", `%`, got)
+       if got := and_int16_0_ssa(32767); got != 0 {
+               fmt.Printf("and_int16 32767%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_2147483647_ssa(-2147483648); got != -1 {
-               fmt.Printf("mod_int32 -2147483648%s2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_1_int16_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 1%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_2147483647_int32_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s-2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_1_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 -32768%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_2147483647_ssa(-2147483647); got != 0 {
-               fmt.Printf("mod_int32 -2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_1_int16_ssa(-32767); got != 1 {
+               fmt.Printf("and_int16 1%s-32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_2147483647_int32_ssa(-1); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s-1 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_1_ssa(-32767); got != 1 {
+               fmt.Printf("and_int16 -32767%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_2147483647_ssa(-1); got != -1 {
-               fmt.Printf("mod_int32 -1%s2147483647 = %d, wanted -1\n", `%`, got)
+       if got := and_1_int16_ssa(-1); got != 1 {
+               fmt.Printf("and_int16 1%s-1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_2147483647_ssa(0); got != 0 {
-               fmt.Printf("mod_int32 0%s2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_1_ssa(-1); got != 1 {
+               fmt.Printf("and_int16 -1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_2147483647_int32_ssa(1); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s1 = %d, wanted 0\n", `%`, got)
+       if got := and_1_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_2147483647_ssa(1); got != 1 {
-               fmt.Printf("mod_int32 1%s2147483647 = %d, wanted 1\n", `%`, got)
+       if got := and_int16_1_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := mod_2147483647_int32_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_1_int16_ssa(1); got != 1 {
+               fmt.Printf("and_int16 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := mod_int32_2147483647_ssa(2147483647); got != 0 {
-               fmt.Printf("mod_int32 2147483647%s2147483647 = %d, wanted 0\n", `%`, got)
+       if got := and_int16_1_ssa(1); got != 1 {
+               fmt.Printf("and_int16 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := add_0_uint16_ssa(0); got != 0 {
-               fmt.Printf("add_uint16 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := and_1_int16_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 1%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_0_ssa(0); got != 0 {
-               fmt.Printf("add_uint16 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := and_int16_1_ssa(32766); got != 0 {
+               fmt.Printf("and_int16 32766%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_0_uint16_ssa(1); got != 1 {
-               fmt.Printf("add_uint16 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := and_1_int16_ssa(32767); got != 1 {
+               fmt.Printf("and_int16 1%s32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_0_ssa(1); got != 1 {
-               fmt.Printf("add_uint16 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := and_int16_1_ssa(32767); got != 1 {
+               fmt.Printf("and_int16 32767%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := add_0_uint16_ssa(65535); got != 65535 {
-               fmt.Printf("add_uint16 0%s65535 = %d, wanted 65535\n", `+`, got)
+       if got := and_32766_int16_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 32766%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_0_ssa(65535); got != 65535 {
-               fmt.Printf("add_uint16 65535%s0 = %d, wanted 65535\n", `+`, got)
+       if got := and_int16_32766_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 -32768%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_1_uint16_ssa(0); got != 1 {
-               fmt.Printf("add_uint16 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := and_32766_int16_ssa(-32767); got != 0 {
+               fmt.Printf("and_int16 32766%s-32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_1_ssa(0); got != 1 {
-               fmt.Printf("add_uint16 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := and_int16_32766_ssa(-32767); got != 0 {
+               fmt.Printf("and_int16 -32767%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_1_uint16_ssa(1); got != 2 {
-               fmt.Printf("add_uint16 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := and_32766_int16_ssa(-1); got != 32766 {
+               fmt.Printf("and_int16 32766%s-1 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_1_ssa(1); got != 2 {
-               fmt.Printf("add_uint16 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := and_int16_32766_ssa(-1); got != 32766 {
+               fmt.Printf("and_int16 -1%s32766 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := add_1_uint16_ssa(65535); got != 0 {
-               fmt.Printf("add_uint16 1%s65535 = %d, wanted 0\n", `+`, got)
+       if got := and_32766_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 32766%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_1_ssa(65535); got != 0 {
-               fmt.Printf("add_uint16 65535%s1 = %d, wanted 0\n", `+`, got)
+       if got := and_int16_32766_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_65535_uint16_ssa(0); got != 65535 {
-               fmt.Printf("add_uint16 65535%s0 = %d, wanted 65535\n", `+`, got)
+       if got := and_32766_int16_ssa(1); got != 0 {
+               fmt.Printf("and_int16 32766%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_65535_ssa(0); got != 65535 {
-               fmt.Printf("add_uint16 0%s65535 = %d, wanted 65535\n", `+`, got)
+       if got := and_int16_32766_ssa(1); got != 0 {
+               fmt.Printf("and_int16 1%s32766 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := add_65535_uint16_ssa(1); got != 0 {
-               fmt.Printf("add_uint16 65535%s1 = %d, wanted 0\n", `+`, got)
+       if got := and_32766_int16_ssa(32766); got != 32766 {
+               fmt.Printf("and_int16 32766%s32766 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_65535_ssa(1); got != 0 {
-               fmt.Printf("add_uint16 1%s65535 = %d, wanted 0\n", `+`, got)
+       if got := and_int16_32766_ssa(32766); got != 32766 {
+               fmt.Printf("and_int16 32766%s32766 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := add_65535_uint16_ssa(65535); got != 65534 {
-               fmt.Printf("add_uint16 65535%s65535 = %d, wanted 65534\n", `+`, got)
+       if got := and_32766_int16_ssa(32767); got != 32766 {
+               fmt.Printf("and_int16 32766%s32767 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := add_uint16_65535_ssa(65535); got != 65534 {
-               fmt.Printf("add_uint16 65535%s65535 = %d, wanted 65534\n", `+`, got)
+       if got := and_int16_32766_ssa(32767); got != 32766 {
+               fmt.Printf("and_int16 32767%s32766 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := sub_0_uint16_ssa(0); got != 0 {
-               fmt.Printf("sub_uint16 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := and_32767_int16_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 32767%s-32768 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_0_ssa(0); got != 0 {
-               fmt.Printf("sub_uint16 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := and_int16_32767_ssa(-32768); got != 0 {
+               fmt.Printf("and_int16 -32768%s32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_0_uint16_ssa(1); got != 65535 {
-               fmt.Printf("sub_uint16 0%s1 = %d, wanted 65535\n", `-`, got)
+       if got := and_32767_int16_ssa(-32767); got != 1 {
+               fmt.Printf("and_int16 32767%s-32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_0_ssa(1); got != 1 {
-               fmt.Printf("sub_uint16 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := and_int16_32767_ssa(-32767); got != 1 {
+               fmt.Printf("and_int16 -32767%s32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_0_uint16_ssa(65535); got != 1 {
-               fmt.Printf("sub_uint16 0%s65535 = %d, wanted 1\n", `-`, got)
+       if got := and_32767_int16_ssa(-1); got != 32767 {
+               fmt.Printf("and_int16 32767%s-1 = %d, wanted 32767\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_0_ssa(65535); got != 65535 {
-               fmt.Printf("sub_uint16 65535%s0 = %d, wanted 65535\n", `-`, got)
+       if got := and_int16_32767_ssa(-1); got != 32767 {
+               fmt.Printf("and_int16 -1%s32767 = %d, wanted 32767\n", `&`, got)
                failed = true
        }
 
-       if got := sub_1_uint16_ssa(0); got != 1 {
-               fmt.Printf("sub_uint16 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := and_32767_int16_ssa(0); got != 0 {
+               fmt.Printf("and_int16 32767%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_1_ssa(0); got != 65535 {
-               fmt.Printf("sub_uint16 0%s1 = %d, wanted 65535\n", `-`, got)
+       if got := and_int16_32767_ssa(0); got != 0 {
+               fmt.Printf("and_int16 0%s32767 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_1_uint16_ssa(1); got != 0 {
-               fmt.Printf("sub_uint16 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := and_32767_int16_ssa(1); got != 1 {
+               fmt.Printf("and_int16 32767%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_1_ssa(1); got != 0 {
-               fmt.Printf("sub_uint16 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := and_int16_32767_ssa(1); got != 1 {
+               fmt.Printf("and_int16 1%s32767 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_1_uint16_ssa(65535); got != 2 {
-               fmt.Printf("sub_uint16 1%s65535 = %d, wanted 2\n", `-`, got)
+       if got := and_32767_int16_ssa(32766); got != 32766 {
+               fmt.Printf("and_int16 32767%s32766 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_1_ssa(65535); got != 65534 {
-               fmt.Printf("sub_uint16 65535%s1 = %d, wanted 65534\n", `-`, got)
+       if got := and_int16_32767_ssa(32766); got != 32766 {
+               fmt.Printf("and_int16 32766%s32767 = %d, wanted 32766\n", `&`, got)
                failed = true
        }
 
-       if got := sub_65535_uint16_ssa(0); got != 65535 {
-               fmt.Printf("sub_uint16 65535%s0 = %d, wanted 65535\n", `-`, got)
+       if got := and_32767_int16_ssa(32767); got != 32767 {
+               fmt.Printf("and_int16 32767%s32767 = %d, wanted 32767\n", `&`, got)
                failed = true
        }
 
-       if got := sub_uint16_65535_ssa(0); got != 1 {
-               fmt.Printf("sub_uint16 0%s65535 = %d, wanted 1\n", `-`, got)
+       if got := and_int16_32767_ssa(32767); got != 32767 {
+               fmt.Printf("and_int16 32767%s32767 = %d, wanted 32767\n", `&`, got)
                failed = true
        }
 
-       if got := sub_65535_uint16_ssa(1); got != 65534 {
-               fmt.Printf("sub_uint16 65535%s1 = %d, wanted 65534\n", `-`, got)
+       if got := or_Neg32768_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("or_int16 -32768%s-32768 = %d, wanted -32768\n", `|`, got)
                failed = true
        }
 
-       if got := sub_uint16_65535_ssa(1); got != 2 {
-               fmt.Printf("sub_uint16 1%s65535 = %d, wanted 2\n", `-`, got)
+       if got := or_int16_Neg32768_ssa(-32768); got != -32768 {
+               fmt.Printf("or_int16 -32768%s-32768 = %d, wanted -32768\n", `|`, got)
                failed = true
        }
 
-       if got := sub_65535_uint16_ssa(65535); got != 0 {
-               fmt.Printf("sub_uint16 65535%s65535 = %d, wanted 0\n", `-`, got)
+       if got := or_Neg32768_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 -32768%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := sub_uint16_65535_ssa(65535); got != 0 {
-               fmt.Printf("sub_uint16 65535%s65535 = %d, wanted 0\n", `-`, got)
+       if got := or_int16_Neg32768_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 -32767%s-32768 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_uint16_ssa(1); got != 0 {
-               fmt.Printf("div_uint16 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg32768_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -32768%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_0_uint16_ssa(65535); got != 0 {
-               fmt.Printf("div_uint16 0%s65535 = %d, wanted 0\n", `/`, got)
+       if got := or_int16_Neg32768_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s-32768 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_uint16_1_ssa(0); got != 0 {
-               fmt.Printf("div_uint16 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg32768_int16_ssa(0); got != -32768 {
+               fmt.Printf("or_int16 -32768%s0 = %d, wanted -32768\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_uint16_ssa(1); got != 1 {
-               fmt.Printf("div_uint16 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := or_int16_Neg32768_ssa(0); got != -32768 {
+               fmt.Printf("or_int16 0%s-32768 = %d, wanted -32768\n", `|`, got)
                failed = true
        }
 
-       if got := div_uint16_1_ssa(1); got != 1 {
-               fmt.Printf("div_uint16 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := or_Neg32768_int16_ssa(1); got != -32767 {
+               fmt.Printf("or_int16 -32768%s1 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_uint16_ssa(65535); got != 0 {
-               fmt.Printf("div_uint16 1%s65535 = %d, wanted 0\n", `/`, got)
+       if got := or_int16_Neg32768_ssa(1); got != -32767 {
+               fmt.Printf("or_int16 1%s-32768 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := div_uint16_1_ssa(65535); got != 65535 {
-               fmt.Printf("div_uint16 65535%s1 = %d, wanted 65535\n", `/`, got)
+       if got := or_Neg32768_int16_ssa(32766); got != -2 {
+               fmt.Printf("or_int16 -32768%s32766 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := div_uint16_65535_ssa(0); got != 0 {
-               fmt.Printf("div_uint16 0%s65535 = %d, wanted 0\n", `/`, got)
+       if got := or_int16_Neg32768_ssa(32766); got != -2 {
+               fmt.Printf("or_int16 32766%s-32768 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := div_65535_uint16_ssa(1); got != 65535 {
-               fmt.Printf("div_uint16 65535%s1 = %d, wanted 65535\n", `/`, got)
+       if got := or_Neg32768_int16_ssa(32767); got != -1 {
+               fmt.Printf("or_int16 -32768%s32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_uint16_65535_ssa(1); got != 0 {
-               fmt.Printf("div_uint16 1%s65535 = %d, wanted 0\n", `/`, got)
+       if got := or_int16_Neg32768_ssa(32767); got != -1 {
+               fmt.Printf("or_int16 32767%s-32768 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_65535_uint16_ssa(65535); got != 1 {
-               fmt.Printf("div_uint16 65535%s65535 = %d, wanted 1\n", `/`, got)
+       if got := or_Neg32767_int16_ssa(-32768); got != -32767 {
+               fmt.Printf("or_int16 -32767%s-32768 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := div_uint16_65535_ssa(65535); got != 1 {
-               fmt.Printf("div_uint16 65535%s65535 = %d, wanted 1\n", `/`, got)
+       if got := or_int16_Neg32767_ssa(-32768); got != -32767 {
+               fmt.Printf("or_int16 -32768%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_uint16_ssa(0); got != 0 {
-               fmt.Printf("mul_uint16 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg32767_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 -32767%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_0_ssa(0); got != 0 {
-               fmt.Printf("mul_uint16 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int16_Neg32767_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 -32767%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_uint16_ssa(1); got != 0 {
-               fmt.Printf("mul_uint16 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg32767_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -32767%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_0_ssa(1); got != 0 {
-               fmt.Printf("mul_uint16 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int16_Neg32767_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s-32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_uint16_ssa(65535); got != 0 {
-               fmt.Printf("mul_uint16 0%s65535 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg32767_int16_ssa(0); got != -32767 {
+               fmt.Printf("or_int16 -32767%s0 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_0_ssa(65535); got != 0 {
-               fmt.Printf("mul_uint16 65535%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int16_Neg32767_ssa(0); got != -32767 {
+               fmt.Printf("or_int16 0%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_uint16_ssa(0); got != 0 {
-               fmt.Printf("mul_uint16 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg32767_int16_ssa(1); got != -32767 {
+               fmt.Printf("or_int16 -32767%s1 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_1_ssa(0); got != 0 {
-               fmt.Printf("mul_uint16 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := or_int16_Neg32767_ssa(1); got != -32767 {
+               fmt.Printf("or_int16 1%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_uint16_ssa(1); got != 1 {
-               fmt.Printf("mul_uint16 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := or_Neg32767_int16_ssa(32766); got != -1 {
+               fmt.Printf("or_int16 -32767%s32766 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_1_ssa(1); got != 1 {
-               fmt.Printf("mul_uint16 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := or_int16_Neg32767_ssa(32766); got != -1 {
+               fmt.Printf("or_int16 32766%s-32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_uint16_ssa(65535); got != 65535 {
-               fmt.Printf("mul_uint16 1%s65535 = %d, wanted 65535\n", `*`, got)
+       if got := or_Neg32767_int16_ssa(32767); got != -1 {
+               fmt.Printf("or_int16 -32767%s32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_1_ssa(65535); got != 65535 {
-               fmt.Printf("mul_uint16 65535%s1 = %d, wanted 65535\n", `*`, got)
+       if got := or_int16_Neg32767_ssa(32767); got != -1 {
+               fmt.Printf("or_int16 32767%s-32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_65535_uint16_ssa(0); got != 0 {
-               fmt.Printf("mul_uint16 65535%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg1_int16_ssa(-32768); got != -1 {
+               fmt.Printf("or_int16 -1%s-32768 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_65535_ssa(0); got != 0 {
-               fmt.Printf("mul_uint16 0%s65535 = %d, wanted 0\n", `*`, got)
+       if got := or_int16_Neg1_ssa(-32768); got != -1 {
+               fmt.Printf("or_int16 -32768%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_65535_uint16_ssa(1); got != 65535 {
-               fmt.Printf("mul_uint16 65535%s1 = %d, wanted 65535\n", `*`, got)
+       if got := or_Neg1_int16_ssa(-32767); got != -1 {
+               fmt.Printf("or_int16 -1%s-32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_65535_ssa(1); got != 65535 {
-               fmt.Printf("mul_uint16 1%s65535 = %d, wanted 65535\n", `*`, got)
+       if got := or_int16_Neg1_ssa(-32767); got != -1 {
+               fmt.Printf("or_int16 -32767%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_65535_uint16_ssa(65535); got != 1 {
-               fmt.Printf("mul_uint16 65535%s65535 = %d, wanted 1\n", `*`, got)
+       if got := or_Neg1_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_uint16_65535_ssa(65535); got != 1 {
-               fmt.Printf("mul_uint16 65535%s65535 = %d, wanted 1\n", `*`, got)
+       if got := or_int16_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_0_uint16_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint16 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := or_Neg1_int16_ssa(0); got != -1 {
+               fmt.Printf("or_int16 -1%s0 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_0_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint16 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := or_int16_Neg1_ssa(0); got != -1 {
+               fmt.Printf("or_int16 0%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_0_uint16_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint16 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := or_Neg1_int16_ssa(1); got != -1 {
+               fmt.Printf("or_int16 -1%s1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_0_ssa(1); got != 1 {
-               fmt.Printf("lsh_uint16 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := or_int16_Neg1_ssa(1); got != -1 {
+               fmt.Printf("or_int16 1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_0_uint16_ssa(65535); got != 0 {
-               fmt.Printf("lsh_uint16 0%s65535 = %d, wanted 0\n", `<<`, got)
+       if got := or_Neg1_int16_ssa(32766); got != -1 {
+               fmt.Printf("or_int16 -1%s32766 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_0_ssa(65535); got != 65535 {
-               fmt.Printf("lsh_uint16 65535%s0 = %d, wanted 65535\n", `<<`, got)
+       if got := or_int16_Neg1_ssa(32766); got != -1 {
+               fmt.Printf("or_int16 32766%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_1_uint16_ssa(0); got != 1 {
-               fmt.Printf("lsh_uint16 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := or_Neg1_int16_ssa(32767); got != -1 {
+               fmt.Printf("or_int16 -1%s32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_1_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint16 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := or_int16_Neg1_ssa(32767); got != -1 {
+               fmt.Printf("or_int16 32767%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_1_uint16_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint16 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := or_0_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("or_int16 0%s-32768 = %d, wanted -32768\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_1_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint16 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := or_int16_0_ssa(-32768); got != -32768 {
+               fmt.Printf("or_int16 -32768%s0 = %d, wanted -32768\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_1_uint16_ssa(65535); got != 0 {
-               fmt.Printf("lsh_uint16 1%s65535 = %d, wanted 0\n", `<<`, got)
+       if got := or_0_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 0%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_1_ssa(65535); got != 65534 {
-               fmt.Printf("lsh_uint16 65535%s1 = %d, wanted 65534\n", `<<`, got)
+       if got := or_int16_0_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 -32767%s0 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_65535_uint16_ssa(0); got != 65535 {
-               fmt.Printf("lsh_uint16 65535%s0 = %d, wanted 65535\n", `<<`, got)
+       if got := or_0_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 0%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_65535_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint16 0%s65535 = %d, wanted 0\n", `<<`, got)
+       if got := or_int16_0_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s0 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_65535_uint16_ssa(1); got != 65534 {
-               fmt.Printf("lsh_uint16 65535%s1 = %d, wanted 65534\n", `<<`, got)
+       if got := or_0_int16_ssa(0); got != 0 {
+               fmt.Printf("or_int16 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_65535_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint16 1%s65535 = %d, wanted 0\n", `<<`, got)
+       if got := or_int16_0_ssa(0); got != 0 {
+               fmt.Printf("or_int16 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_65535_uint16_ssa(65535); got != 0 {
-               fmt.Printf("lsh_uint16 65535%s65535 = %d, wanted 0\n", `<<`, got)
+       if got := or_0_int16_ssa(1); got != 1 {
+               fmt.Printf("or_int16 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := lsh_uint16_65535_ssa(65535); got != 0 {
-               fmt.Printf("lsh_uint16 65535%s65535 = %d, wanted 0\n", `<<`, got)
+       if got := or_int16_0_ssa(1); got != 1 {
+               fmt.Printf("or_int16 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_0_uint16_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint16 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := or_0_int16_ssa(32766); got != 32766 {
+               fmt.Printf("or_int16 0%s32766 = %d, wanted 32766\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_0_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint16 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := or_int16_0_ssa(32766); got != 32766 {
+               fmt.Printf("or_int16 32766%s0 = %d, wanted 32766\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_0_uint16_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint16 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := or_0_int16_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 0%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_0_ssa(1); got != 1 {
-               fmt.Printf("rsh_uint16 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := or_int16_0_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 32767%s0 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_0_uint16_ssa(65535); got != 0 {
-               fmt.Printf("rsh_uint16 0%s65535 = %d, wanted 0\n", `>>`, got)
+       if got := or_1_int16_ssa(-32768); got != -32767 {
+               fmt.Printf("or_int16 1%s-32768 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_0_ssa(65535); got != 65535 {
-               fmt.Printf("rsh_uint16 65535%s0 = %d, wanted 65535\n", `>>`, got)
+       if got := or_int16_1_ssa(-32768); got != -32767 {
+               fmt.Printf("or_int16 -32768%s1 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_1_uint16_ssa(0); got != 1 {
-               fmt.Printf("rsh_uint16 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := or_1_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 1%s-32767 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_1_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint16 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := or_int16_1_ssa(-32767); got != -32767 {
+               fmt.Printf("or_int16 -32767%s1 = %d, wanted -32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_1_uint16_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint16 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := or_1_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_1_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint16 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := or_int16_1_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_1_uint16_ssa(65535); got != 0 {
-               fmt.Printf("rsh_uint16 1%s65535 = %d, wanted 0\n", `>>`, got)
+       if got := or_1_int16_ssa(0); got != 1 {
+               fmt.Printf("or_int16 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_1_ssa(65535); got != 32767 {
-               fmt.Printf("rsh_uint16 65535%s1 = %d, wanted 32767\n", `>>`, got)
+       if got := or_int16_1_ssa(0); got != 1 {
+               fmt.Printf("or_int16 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_65535_uint16_ssa(0); got != 65535 {
-               fmt.Printf("rsh_uint16 65535%s0 = %d, wanted 65535\n", `>>`, got)
+       if got := or_1_int16_ssa(1); got != 1 {
+               fmt.Printf("or_int16 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_65535_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint16 0%s65535 = %d, wanted 0\n", `>>`, got)
+       if got := or_int16_1_ssa(1); got != 1 {
+               fmt.Printf("or_int16 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_65535_uint16_ssa(1); got != 32767 {
-               fmt.Printf("rsh_uint16 65535%s1 = %d, wanted 32767\n", `>>`, got)
+       if got := or_1_int16_ssa(32766); got != 32767 {
+               fmt.Printf("or_int16 1%s32766 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_65535_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint16 1%s65535 = %d, wanted 0\n", `>>`, got)
+       if got := or_int16_1_ssa(32766); got != 32767 {
+               fmt.Printf("or_int16 32766%s1 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_65535_uint16_ssa(65535); got != 0 {
-               fmt.Printf("rsh_uint16 65535%s65535 = %d, wanted 0\n", `>>`, got)
+       if got := or_1_int16_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 1%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := rsh_uint16_65535_ssa(65535); got != 0 {
-               fmt.Printf("rsh_uint16 65535%s65535 = %d, wanted 0\n", `>>`, got)
+       if got := or_int16_1_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 32767%s1 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := mod_0_uint16_ssa(1); got != 0 {
-               fmt.Printf("mod_uint16 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_32766_int16_ssa(-32768); got != -2 {
+               fmt.Printf("or_int16 32766%s-32768 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := mod_0_uint16_ssa(65535); got != 0 {
-               fmt.Printf("mod_uint16 0%s65535 = %d, wanted 0\n", `%`, got)
+       if got := or_int16_32766_ssa(-32768); got != -2 {
+               fmt.Printf("or_int16 -32768%s32766 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := mod_uint16_1_ssa(0); got != 0 {
-               fmt.Printf("mod_uint16 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_32766_int16_ssa(-32767); got != -1 {
+               fmt.Printf("or_int16 32766%s-32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_1_uint16_ssa(1); got != 0 {
-               fmt.Printf("mod_uint16 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_int16_32766_ssa(-32767); got != -1 {
+               fmt.Printf("or_int16 -32767%s32766 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_uint16_1_ssa(1); got != 0 {
-               fmt.Printf("mod_uint16 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_32766_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 32766%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_1_uint16_ssa(65535); got != 1 {
-               fmt.Printf("mod_uint16 1%s65535 = %d, wanted 1\n", `%`, got)
+       if got := or_int16_32766_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s32766 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mod_uint16_1_ssa(65535); got != 0 {
-               fmt.Printf("mod_uint16 65535%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_32766_int16_ssa(0); got != 32766 {
+               fmt.Printf("or_int16 32766%s0 = %d, wanted 32766\n", `|`, got)
                failed = true
        }
 
-       if got := mod_uint16_65535_ssa(0); got != 0 {
-               fmt.Printf("mod_uint16 0%s65535 = %d, wanted 0\n", `%`, got)
+       if got := or_int16_32766_ssa(0); got != 32766 {
+               fmt.Printf("or_int16 0%s32766 = %d, wanted 32766\n", `|`, got)
                failed = true
        }
 
-       if got := mod_65535_uint16_ssa(1); got != 0 {
-               fmt.Printf("mod_uint16 65535%s1 = %d, wanted 0\n", `%`, got)
+       if got := or_32766_int16_ssa(1); got != 32767 {
+               fmt.Printf("or_int16 32766%s1 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := mod_uint16_65535_ssa(1); got != 1 {
-               fmt.Printf("mod_uint16 1%s65535 = %d, wanted 1\n", `%`, got)
+       if got := or_int16_32766_ssa(1); got != 32767 {
+               fmt.Printf("or_int16 1%s32766 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := mod_65535_uint16_ssa(65535); got != 0 {
-               fmt.Printf("mod_uint16 65535%s65535 = %d, wanted 0\n", `%`, got)
+       if got := or_32766_int16_ssa(32766); got != 32766 {
+               fmt.Printf("or_int16 32766%s32766 = %d, wanted 32766\n", `|`, got)
                failed = true
        }
 
-       if got := mod_uint16_65535_ssa(65535); got != 0 {
-               fmt.Printf("mod_uint16 65535%s65535 = %d, wanted 0\n", `%`, got)
+       if got := or_int16_32766_ssa(32766); got != 32766 {
+               fmt.Printf("or_int16 32766%s32766 = %d, wanted 32766\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(-32768); got != 0 {
-               fmt.Printf("add_int16 -32768%s-32768 = %d, wanted 0\n", `+`, got)
+       if got := or_32766_int16_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 32766%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(-32768); got != 0 {
-               fmt.Printf("add_int16 -32768%s-32768 = %d, wanted 0\n", `+`, got)
+       if got := or_int16_32766_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 32767%s32766 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(-32767); got != 1 {
-               fmt.Printf("add_int16 -32768%s-32767 = %d, wanted 1\n", `+`, got)
+       if got := or_32767_int16_ssa(-32768); got != -1 {
+               fmt.Printf("or_int16 32767%s-32768 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(-32767); got != 1 {
-               fmt.Printf("add_int16 -32767%s-32768 = %d, wanted 1\n", `+`, got)
+       if got := or_int16_32767_ssa(-32768); got != -1 {
+               fmt.Printf("or_int16 -32768%s32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(-1); got != 32767 {
-               fmt.Printf("add_int16 -32768%s-1 = %d, wanted 32767\n", `+`, got)
+       if got := or_32767_int16_ssa(-32767); got != -1 {
+               fmt.Printf("or_int16 32767%s-32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(-1); got != 32767 {
-               fmt.Printf("add_int16 -1%s-32768 = %d, wanted 32767\n", `+`, got)
+       if got := or_int16_32767_ssa(-32767); got != -1 {
+               fmt.Printf("or_int16 -32767%s32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(0); got != -32768 {
-               fmt.Printf("add_int16 -32768%s0 = %d, wanted -32768\n", `+`, got)
+       if got := or_32767_int16_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 32767%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(0); got != -32768 {
-               fmt.Printf("add_int16 0%s-32768 = %d, wanted -32768\n", `+`, got)
+       if got := or_int16_32767_ssa(-1); got != -1 {
+               fmt.Printf("or_int16 -1%s32767 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(1); got != -32767 {
-               fmt.Printf("add_int16 -32768%s1 = %d, wanted -32767\n", `+`, got)
+       if got := or_32767_int16_ssa(0); got != 32767 {
+               fmt.Printf("or_int16 32767%s0 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(1); got != -32767 {
-               fmt.Printf("add_int16 1%s-32768 = %d, wanted -32767\n", `+`, got)
+       if got := or_int16_32767_ssa(0); got != 32767 {
+               fmt.Printf("or_int16 0%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(32766); got != -2 {
-               fmt.Printf("add_int16 -32768%s32766 = %d, wanted -2\n", `+`, got)
+       if got := or_32767_int16_ssa(1); got != 32767 {
+               fmt.Printf("or_int16 32767%s1 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(32766); got != -2 {
-               fmt.Printf("add_int16 32766%s-32768 = %d, wanted -2\n", `+`, got)
+       if got := or_int16_32767_ssa(1); got != 32767 {
+               fmt.Printf("or_int16 1%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32768_int16_ssa(32767); got != -1 {
-               fmt.Printf("add_int16 -32768%s32767 = %d, wanted -1\n", `+`, got)
+       if got := or_32767_int16_ssa(32766); got != 32767 {
+               fmt.Printf("or_int16 32767%s32766 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32768_ssa(32767); got != -1 {
-               fmt.Printf("add_int16 32767%s-32768 = %d, wanted -1\n", `+`, got)
+       if got := or_int16_32767_ssa(32766); got != 32767 {
+               fmt.Printf("or_int16 32766%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(-32768); got != 1 {
-               fmt.Printf("add_int16 -32767%s-32768 = %d, wanted 1\n", `+`, got)
+       if got := or_32767_int16_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 32767%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(-32768); got != 1 {
-               fmt.Printf("add_int16 -32768%s-32767 = %d, wanted 1\n", `+`, got)
+       if got := or_int16_32767_ssa(32767); got != 32767 {
+               fmt.Printf("or_int16 32767%s32767 = %d, wanted 32767\n", `|`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(-32767); got != 2 {
-               fmt.Printf("add_int16 -32767%s-32767 = %d, wanted 2\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(-32768); got != 0 {
+               fmt.Printf("xor_int16 -32768%s-32768 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(-32767); got != 2 {
-               fmt.Printf("add_int16 -32767%s-32767 = %d, wanted 2\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(-32768); got != 0 {
+               fmt.Printf("xor_int16 -32768%s-32768 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(-1); got != -32768 {
-               fmt.Printf("add_int16 -32767%s-1 = %d, wanted -32768\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(-32767); got != 1 {
+               fmt.Printf("xor_int16 -32768%s-32767 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(-1); got != -32768 {
-               fmt.Printf("add_int16 -1%s-32767 = %d, wanted -32768\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(-32767); got != 1 {
+               fmt.Printf("xor_int16 -32767%s-32768 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(0); got != -32767 {
-               fmt.Printf("add_int16 -32767%s0 = %d, wanted -32767\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(-1); got != 32767 {
+               fmt.Printf("xor_int16 -32768%s-1 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(0); got != -32767 {
-               fmt.Printf("add_int16 0%s-32767 = %d, wanted -32767\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(-1); got != 32767 {
+               fmt.Printf("xor_int16 -1%s-32768 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(1); got != -32766 {
-               fmt.Printf("add_int16 -32767%s1 = %d, wanted -32766\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(0); got != -32768 {
+               fmt.Printf("xor_int16 -32768%s0 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(1); got != -32766 {
-               fmt.Printf("add_int16 1%s-32767 = %d, wanted -32766\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(0); got != -32768 {
+               fmt.Printf("xor_int16 0%s-32768 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(32766); got != -1 {
-               fmt.Printf("add_int16 -32767%s32766 = %d, wanted -1\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(1); got != -32767 {
+               fmt.Printf("xor_int16 -32768%s1 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(32766); got != -1 {
-               fmt.Printf("add_int16 32766%s-32767 = %d, wanted -1\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(1); got != -32767 {
+               fmt.Printf("xor_int16 1%s-32768 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg32767_int16_ssa(32767); got != 0 {
-               fmt.Printf("add_int16 -32767%s32767 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(32766); got != -2 {
+               fmt.Printf("xor_int16 -32768%s32766 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg32767_ssa(32767); got != 0 {
-               fmt.Printf("add_int16 32767%s-32767 = %d, wanted 0\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(32766); got != -2 {
+               fmt.Printf("xor_int16 32766%s-32768 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(-32768); got != 32767 {
-               fmt.Printf("add_int16 -1%s-32768 = %d, wanted 32767\n", `+`, got)
+       if got := xor_Neg32768_int16_ssa(32767); got != -1 {
+               fmt.Printf("xor_int16 -32768%s32767 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(-32768); got != 32767 {
-               fmt.Printf("add_int16 -32768%s-1 = %d, wanted 32767\n", `+`, got)
+       if got := xor_int16_Neg32768_ssa(32767); got != -1 {
+               fmt.Printf("xor_int16 32767%s-32768 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(-32767); got != -32768 {
-               fmt.Printf("add_int16 -1%s-32767 = %d, wanted -32768\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(-32768); got != 1 {
+               fmt.Printf("xor_int16 -32767%s-32768 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(-32767); got != -32768 {
-               fmt.Printf("add_int16 -32767%s-1 = %d, wanted -32768\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(-32768); got != 1 {
+               fmt.Printf("xor_int16 -32768%s-32767 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(-1); got != -2 {
-               fmt.Printf("add_int16 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(-32767); got != 0 {
+               fmt.Printf("xor_int16 -32767%s-32767 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(-1); got != -2 {
-               fmt.Printf("add_int16 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(-32767); got != 0 {
+               fmt.Printf("xor_int16 -32767%s-32767 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(0); got != -1 {
-               fmt.Printf("add_int16 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(-1); got != 32766 {
+               fmt.Printf("xor_int16 -32767%s-1 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(0); got != -1 {
-               fmt.Printf("add_int16 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(-1); got != 32766 {
+               fmt.Printf("xor_int16 -1%s-32767 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(1); got != 0 {
-               fmt.Printf("add_int16 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(0); got != -32767 {
+               fmt.Printf("xor_int16 -32767%s0 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(1); got != 0 {
-               fmt.Printf("add_int16 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(0); got != -32767 {
+               fmt.Printf("xor_int16 0%s-32767 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(32766); got != 32765 {
-               fmt.Printf("add_int16 -1%s32766 = %d, wanted 32765\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(1); got != -32768 {
+               fmt.Printf("xor_int16 -32767%s1 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(32766); got != 32765 {
-               fmt.Printf("add_int16 32766%s-1 = %d, wanted 32765\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(1); got != -32768 {
+               fmt.Printf("xor_int16 1%s-32767 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_Neg1_int16_ssa(32767); got != 32766 {
-               fmt.Printf("add_int16 -1%s32767 = %d, wanted 32766\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(32766); got != -1 {
+               fmt.Printf("xor_int16 -32767%s32766 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_Neg1_ssa(32767); got != 32766 {
-               fmt.Printf("add_int16 32767%s-1 = %d, wanted 32766\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(32766); got != -1 {
+               fmt.Printf("xor_int16 32766%s-32767 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(-32768); got != -32768 {
-               fmt.Printf("add_int16 0%s-32768 = %d, wanted -32768\n", `+`, got)
+       if got := xor_Neg32767_int16_ssa(32767); got != -2 {
+               fmt.Printf("xor_int16 -32767%s32767 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(-32768); got != -32768 {
-               fmt.Printf("add_int16 -32768%s0 = %d, wanted -32768\n", `+`, got)
+       if got := xor_int16_Neg32767_ssa(32767); got != -2 {
+               fmt.Printf("xor_int16 32767%s-32767 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(-32767); got != -32767 {
-               fmt.Printf("add_int16 0%s-32767 = %d, wanted -32767\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(-32768); got != 32767 {
+               fmt.Printf("xor_int16 -1%s-32768 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(-32767); got != -32767 {
-               fmt.Printf("add_int16 -32767%s0 = %d, wanted -32767\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(-32768); got != 32767 {
+               fmt.Printf("xor_int16 -32768%s-1 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(-1); got != -1 {
-               fmt.Printf("add_int16 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(-32767); got != 32766 {
+               fmt.Printf("xor_int16 -1%s-32767 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(-1); got != -1 {
-               fmt.Printf("add_int16 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(-32767); got != 32766 {
+               fmt.Printf("xor_int16 -32767%s-1 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(0); got != 0 {
-               fmt.Printf("add_int16 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(-1); got != 0 {
+               fmt.Printf("xor_int16 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(0); got != 0 {
-               fmt.Printf("add_int16 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("xor_int16 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(1); got != 1 {
-               fmt.Printf("add_int16 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(0); got != -1 {
+               fmt.Printf("xor_int16 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(1); got != 1 {
-               fmt.Printf("add_int16 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(0); got != -1 {
+               fmt.Printf("xor_int16 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(32766); got != 32766 {
-               fmt.Printf("add_int16 0%s32766 = %d, wanted 32766\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(1); got != -2 {
+               fmt.Printf("xor_int16 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(32766); got != 32766 {
-               fmt.Printf("add_int16 32766%s0 = %d, wanted 32766\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(1); got != -2 {
+               fmt.Printf("xor_int16 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_0_int16_ssa(32767); got != 32767 {
-               fmt.Printf("add_int16 0%s32767 = %d, wanted 32767\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(32766); got != -32767 {
+               fmt.Printf("xor_int16 -1%s32766 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_0_ssa(32767); got != 32767 {
-               fmt.Printf("add_int16 32767%s0 = %d, wanted 32767\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(32766); got != -32767 {
+               fmt.Printf("xor_int16 32766%s-1 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(-32768); got != -32767 {
-               fmt.Printf("add_int16 1%s-32768 = %d, wanted -32767\n", `+`, got)
+       if got := xor_Neg1_int16_ssa(32767); got != -32768 {
+               fmt.Printf("xor_int16 -1%s32767 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(-32768); got != -32767 {
-               fmt.Printf("add_int16 -32768%s1 = %d, wanted -32767\n", `+`, got)
+       if got := xor_int16_Neg1_ssa(32767); got != -32768 {
+               fmt.Printf("xor_int16 32767%s-1 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(-32767); got != -32766 {
-               fmt.Printf("add_int16 1%s-32767 = %d, wanted -32766\n", `+`, got)
+       if got := xor_0_int16_ssa(-32768); got != -32768 {
+               fmt.Printf("xor_int16 0%s-32768 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(-32767); got != -32766 {
-               fmt.Printf("add_int16 -32767%s1 = %d, wanted -32766\n", `+`, got)
+       if got := xor_int16_0_ssa(-32768); got != -32768 {
+               fmt.Printf("xor_int16 -32768%s0 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(-1); got != 0 {
-               fmt.Printf("add_int16 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := xor_0_int16_ssa(-32767); got != -32767 {
+               fmt.Printf("xor_int16 0%s-32767 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(-1); got != 0 {
-               fmt.Printf("add_int16 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := xor_int16_0_ssa(-32767); got != -32767 {
+               fmt.Printf("xor_int16 -32767%s0 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(0); got != 1 {
-               fmt.Printf("add_int16 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := xor_0_int16_ssa(-1); got != -1 {
+               fmt.Printf("xor_int16 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(0); got != 1 {
-               fmt.Printf("add_int16 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := xor_int16_0_ssa(-1); got != -1 {
+               fmt.Printf("xor_int16 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(1); got != 2 {
-               fmt.Printf("add_int16 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := xor_0_int16_ssa(0); got != 0 {
+               fmt.Printf("xor_int16 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(1); got != 2 {
-               fmt.Printf("add_int16 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := xor_int16_0_ssa(0); got != 0 {
+               fmt.Printf("xor_int16 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(32766); got != 32767 {
-               fmt.Printf("add_int16 1%s32766 = %d, wanted 32767\n", `+`, got)
+       if got := xor_0_int16_ssa(1); got != 1 {
+               fmt.Printf("xor_int16 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(32766); got != 32767 {
-               fmt.Printf("add_int16 32766%s1 = %d, wanted 32767\n", `+`, got)
+       if got := xor_int16_0_ssa(1); got != 1 {
+               fmt.Printf("xor_int16 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_1_int16_ssa(32767); got != -32768 {
-               fmt.Printf("add_int16 1%s32767 = %d, wanted -32768\n", `+`, got)
+       if got := xor_0_int16_ssa(32766); got != 32766 {
+               fmt.Printf("xor_int16 0%s32766 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_1_ssa(32767); got != -32768 {
-               fmt.Printf("add_int16 32767%s1 = %d, wanted -32768\n", `+`, got)
+       if got := xor_int16_0_ssa(32766); got != 32766 {
+               fmt.Printf("xor_int16 32766%s0 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(-32768); got != -2 {
-               fmt.Printf("add_int16 32766%s-32768 = %d, wanted -2\n", `+`, got)
+       if got := xor_0_int16_ssa(32767); got != 32767 {
+               fmt.Printf("xor_int16 0%s32767 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(-32768); got != -2 {
-               fmt.Printf("add_int16 -32768%s32766 = %d, wanted -2\n", `+`, got)
+       if got := xor_int16_0_ssa(32767); got != 32767 {
+               fmt.Printf("xor_int16 32767%s0 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(-32767); got != -1 {
-               fmt.Printf("add_int16 32766%s-32767 = %d, wanted -1\n", `+`, got)
+       if got := xor_1_int16_ssa(-32768); got != -32767 {
+               fmt.Printf("xor_int16 1%s-32768 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(-32767); got != -1 {
-               fmt.Printf("add_int16 -32767%s32766 = %d, wanted -1\n", `+`, got)
+       if got := xor_int16_1_ssa(-32768); got != -32767 {
+               fmt.Printf("xor_int16 -32768%s1 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(-1); got != 32765 {
-               fmt.Printf("add_int16 32766%s-1 = %d, wanted 32765\n", `+`, got)
+       if got := xor_1_int16_ssa(-32767); got != -32768 {
+               fmt.Printf("xor_int16 1%s-32767 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(-1); got != 32765 {
-               fmt.Printf("add_int16 -1%s32766 = %d, wanted 32765\n", `+`, got)
+       if got := xor_int16_1_ssa(-32767); got != -32768 {
+               fmt.Printf("xor_int16 -32767%s1 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(0); got != 32766 {
-               fmt.Printf("add_int16 32766%s0 = %d, wanted 32766\n", `+`, got)
+       if got := xor_1_int16_ssa(-1); got != -2 {
+               fmt.Printf("xor_int16 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(0); got != 32766 {
-               fmt.Printf("add_int16 0%s32766 = %d, wanted 32766\n", `+`, got)
+       if got := xor_int16_1_ssa(-1); got != -2 {
+               fmt.Printf("xor_int16 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(1); got != 32767 {
-               fmt.Printf("add_int16 32766%s1 = %d, wanted 32767\n", `+`, got)
+       if got := xor_1_int16_ssa(0); got != 1 {
+               fmt.Printf("xor_int16 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(1); got != 32767 {
-               fmt.Printf("add_int16 1%s32766 = %d, wanted 32767\n", `+`, got)
+       if got := xor_int16_1_ssa(0); got != 1 {
+               fmt.Printf("xor_int16 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(32766); got != -4 {
-               fmt.Printf("add_int16 32766%s32766 = %d, wanted -4\n", `+`, got)
+       if got := xor_1_int16_ssa(1); got != 0 {
+               fmt.Printf("xor_int16 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(32766); got != -4 {
-               fmt.Printf("add_int16 32766%s32766 = %d, wanted -4\n", `+`, got)
+       if got := xor_int16_1_ssa(1); got != 0 {
+               fmt.Printf("xor_int16 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_32766_int16_ssa(32767); got != -3 {
-               fmt.Printf("add_int16 32766%s32767 = %d, wanted -3\n", `+`, got)
+       if got := xor_1_int16_ssa(32766); got != 32767 {
+               fmt.Printf("xor_int16 1%s32766 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32766_ssa(32767); got != -3 {
-               fmt.Printf("add_int16 32767%s32766 = %d, wanted -3\n", `+`, got)
+       if got := xor_int16_1_ssa(32766); got != 32767 {
+               fmt.Printf("xor_int16 32766%s1 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(-32768); got != -1 {
-               fmt.Printf("add_int16 32767%s-32768 = %d, wanted -1\n", `+`, got)
+       if got := xor_1_int16_ssa(32767); got != 32766 {
+               fmt.Printf("xor_int16 1%s32767 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(-32768); got != -1 {
-               fmt.Printf("add_int16 -32768%s32767 = %d, wanted -1\n", `+`, got)
+       if got := xor_int16_1_ssa(32767); got != 32766 {
+               fmt.Printf("xor_int16 32767%s1 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(-32767); got != 0 {
-               fmt.Printf("add_int16 32767%s-32767 = %d, wanted 0\n", `+`, got)
+       if got := xor_32766_int16_ssa(-32768); got != -2 {
+               fmt.Printf("xor_int16 32766%s-32768 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(-32767); got != 0 {
-               fmt.Printf("add_int16 -32767%s32767 = %d, wanted 0\n", `+`, got)
+       if got := xor_int16_32766_ssa(-32768); got != -2 {
+               fmt.Printf("xor_int16 -32768%s32766 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(-1); got != 32766 {
-               fmt.Printf("add_int16 32767%s-1 = %d, wanted 32766\n", `+`, got)
+       if got := xor_32766_int16_ssa(-32767); got != -1 {
+               fmt.Printf("xor_int16 32766%s-32767 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(-1); got != 32766 {
-               fmt.Printf("add_int16 -1%s32767 = %d, wanted 32766\n", `+`, got)
+       if got := xor_int16_32766_ssa(-32767); got != -1 {
+               fmt.Printf("xor_int16 -32767%s32766 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(0); got != 32767 {
-               fmt.Printf("add_int16 32767%s0 = %d, wanted 32767\n", `+`, got)
+       if got := xor_32766_int16_ssa(-1); got != -32767 {
+               fmt.Printf("xor_int16 32766%s-1 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(0); got != 32767 {
-               fmt.Printf("add_int16 0%s32767 = %d, wanted 32767\n", `+`, got)
+       if got := xor_int16_32766_ssa(-1); got != -32767 {
+               fmt.Printf("xor_int16 -1%s32766 = %d, wanted -32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(1); got != -32768 {
-               fmt.Printf("add_int16 32767%s1 = %d, wanted -32768\n", `+`, got)
+       if got := xor_32766_int16_ssa(0); got != 32766 {
+               fmt.Printf("xor_int16 32766%s0 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(1); got != -32768 {
-               fmt.Printf("add_int16 1%s32767 = %d, wanted -32768\n", `+`, got)
+       if got := xor_int16_32766_ssa(0); got != 32766 {
+               fmt.Printf("xor_int16 0%s32766 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(32766); got != -3 {
-               fmt.Printf("add_int16 32767%s32766 = %d, wanted -3\n", `+`, got)
+       if got := xor_32766_int16_ssa(1); got != 32767 {
+               fmt.Printf("xor_int16 32766%s1 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(32766); got != -3 {
-               fmt.Printf("add_int16 32766%s32767 = %d, wanted -3\n", `+`, got)
+       if got := xor_int16_32766_ssa(1); got != 32767 {
+               fmt.Printf("xor_int16 1%s32766 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := add_32767_int16_ssa(32767); got != -2 {
-               fmt.Printf("add_int16 32767%s32767 = %d, wanted -2\n", `+`, got)
+       if got := xor_32766_int16_ssa(32766); got != 0 {
+               fmt.Printf("xor_int16 32766%s32766 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := add_int16_32767_ssa(32767); got != -2 {
-               fmt.Printf("add_int16 32767%s32767 = %d, wanted -2\n", `+`, got)
+       if got := xor_int16_32766_ssa(32766); got != 0 {
+               fmt.Printf("xor_int16 32766%s32766 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(-32768); got != 0 {
-               fmt.Printf("sub_int16 -32768%s-32768 = %d, wanted 0\n", `-`, got)
+       if got := xor_32766_int16_ssa(32767); got != 1 {
+               fmt.Printf("xor_int16 32766%s32767 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(-32768); got != 0 {
-               fmt.Printf("sub_int16 -32768%s-32768 = %d, wanted 0\n", `-`, got)
+       if got := xor_int16_32766_ssa(32767); got != 1 {
+               fmt.Printf("xor_int16 32767%s32766 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(-32767); got != -1 {
-               fmt.Printf("sub_int16 -32768%s-32767 = %d, wanted -1\n", `-`, got)
+       if got := xor_32767_int16_ssa(-32768); got != -1 {
+               fmt.Printf("xor_int16 32767%s-32768 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(-32767); got != 1 {
-               fmt.Printf("sub_int16 -32767%s-32768 = %d, wanted 1\n", `-`, got)
+       if got := xor_int16_32767_ssa(-32768); got != -1 {
+               fmt.Printf("xor_int16 -32768%s32767 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(-1); got != -32767 {
-               fmt.Printf("sub_int16 -32768%s-1 = %d, wanted -32767\n", `-`, got)
+       if got := xor_32767_int16_ssa(-32767); got != -2 {
+               fmt.Printf("xor_int16 32767%s-32767 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(-1); got != 32767 {
-               fmt.Printf("sub_int16 -1%s-32768 = %d, wanted 32767\n", `-`, got)
+       if got := xor_int16_32767_ssa(-32767); got != -2 {
+               fmt.Printf("xor_int16 -32767%s32767 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(0); got != -32768 {
-               fmt.Printf("sub_int16 -32768%s0 = %d, wanted -32768\n", `-`, got)
+       if got := xor_32767_int16_ssa(-1); got != -32768 {
+               fmt.Printf("xor_int16 32767%s-1 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(0); got != -32768 {
-               fmt.Printf("sub_int16 0%s-32768 = %d, wanted -32768\n", `-`, got)
+       if got := xor_int16_32767_ssa(-1); got != -32768 {
+               fmt.Printf("xor_int16 -1%s32767 = %d, wanted -32768\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(1); got != 32767 {
-               fmt.Printf("sub_int16 -32768%s1 = %d, wanted 32767\n", `-`, got)
+       if got := xor_32767_int16_ssa(0); got != 32767 {
+               fmt.Printf("xor_int16 32767%s0 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(1); got != -32767 {
-               fmt.Printf("sub_int16 1%s-32768 = %d, wanted -32767\n", `-`, got)
+       if got := xor_int16_32767_ssa(0); got != 32767 {
+               fmt.Printf("xor_int16 0%s32767 = %d, wanted 32767\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(32766); got != 2 {
-               fmt.Printf("sub_int16 -32768%s32766 = %d, wanted 2\n", `-`, got)
+       if got := xor_32767_int16_ssa(1); got != 32766 {
+               fmt.Printf("xor_int16 32767%s1 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(32766); got != -2 {
-               fmt.Printf("sub_int16 32766%s-32768 = %d, wanted -2\n", `-`, got)
+       if got := xor_int16_32767_ssa(1); got != 32766 {
+               fmt.Printf("xor_int16 1%s32767 = %d, wanted 32766\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32768_int16_ssa(32767); got != 1 {
-               fmt.Printf("sub_int16 -32768%s32767 = %d, wanted 1\n", `-`, got)
+       if got := xor_32767_int16_ssa(32766); got != 1 {
+               fmt.Printf("xor_int16 32767%s32766 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32768_ssa(32767); got != -1 {
-               fmt.Printf("sub_int16 32767%s-32768 = %d, wanted -1\n", `-`, got)
+       if got := xor_int16_32767_ssa(32766); got != 1 {
+               fmt.Printf("xor_int16 32766%s32767 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(-32768); got != 1 {
-               fmt.Printf("sub_int16 -32767%s-32768 = %d, wanted 1\n", `-`, got)
+       if got := xor_32767_int16_ssa(32767); got != 0 {
+               fmt.Printf("xor_int16 32767%s32767 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(-32768); got != -1 {
-               fmt.Printf("sub_int16 -32768%s-32767 = %d, wanted -1\n", `-`, got)
+       if got := xor_int16_32767_ssa(32767); got != 0 {
+               fmt.Printf("xor_int16 32767%s32767 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(-32767); got != 0 {
-               fmt.Printf("sub_int16 -32767%s-32767 = %d, wanted 0\n", `-`, got)
+       if got := add_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("add_uint8 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(-32767); got != 0 {
-               fmt.Printf("sub_int16 -32767%s-32767 = %d, wanted 0\n", `-`, got)
+       if got := add_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("add_uint8 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(-1); got != -32766 {
-               fmt.Printf("sub_int16 -32767%s-1 = %d, wanted -32766\n", `-`, got)
+       if got := add_0_uint8_ssa(1); got != 1 {
+               fmt.Printf("add_uint8 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(-1); got != 32766 {
-               fmt.Printf("sub_int16 -1%s-32767 = %d, wanted 32766\n", `-`, got)
+       if got := add_uint8_0_ssa(1); got != 1 {
+               fmt.Printf("add_uint8 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(0); got != -32767 {
-               fmt.Printf("sub_int16 -32767%s0 = %d, wanted -32767\n", `-`, got)
+       if got := add_0_uint8_ssa(255); got != 255 {
+               fmt.Printf("add_uint8 0%s255 = %d, wanted 255\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(0); got != 32767 {
-               fmt.Printf("sub_int16 0%s-32767 = %d, wanted 32767\n", `-`, got)
+       if got := add_uint8_0_ssa(255); got != 255 {
+               fmt.Printf("add_uint8 255%s0 = %d, wanted 255\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(1); got != -32768 {
-               fmt.Printf("sub_int16 -32767%s1 = %d, wanted -32768\n", `-`, got)
+       if got := add_1_uint8_ssa(0); got != 1 {
+               fmt.Printf("add_uint8 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(1); got != -32768 {
-               fmt.Printf("sub_int16 1%s-32767 = %d, wanted -32768\n", `-`, got)
+       if got := add_uint8_1_ssa(0); got != 1 {
+               fmt.Printf("add_uint8 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(32766); got != 3 {
-               fmt.Printf("sub_int16 -32767%s32766 = %d, wanted 3\n", `-`, got)
+       if got := add_1_uint8_ssa(1); got != 2 {
+               fmt.Printf("add_uint8 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(32766); got != -3 {
-               fmt.Printf("sub_int16 32766%s-32767 = %d, wanted -3\n", `-`, got)
+       if got := add_uint8_1_ssa(1); got != 2 {
+               fmt.Printf("add_uint8 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg32767_int16_ssa(32767); got != 2 {
-               fmt.Printf("sub_int16 -32767%s32767 = %d, wanted 2\n", `-`, got)
+       if got := add_1_uint8_ssa(255); got != 0 {
+               fmt.Printf("add_uint8 1%s255 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg32767_ssa(32767); got != -2 {
-               fmt.Printf("sub_int16 32767%s-32767 = %d, wanted -2\n", `-`, got)
+       if got := add_uint8_1_ssa(255); got != 0 {
+               fmt.Printf("add_uint8 255%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(-32768); got != 32767 {
-               fmt.Printf("sub_int16 -1%s-32768 = %d, wanted 32767\n", `-`, got)
+       if got := add_255_uint8_ssa(0); got != 255 {
+               fmt.Printf("add_uint8 255%s0 = %d, wanted 255\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(-32768); got != -32767 {
-               fmt.Printf("sub_int16 -32768%s-1 = %d, wanted -32767\n", `-`, got)
+       if got := add_uint8_255_ssa(0); got != 255 {
+               fmt.Printf("add_uint8 0%s255 = %d, wanted 255\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(-32767); got != 32766 {
-               fmt.Printf("sub_int16 -1%s-32767 = %d, wanted 32766\n", `-`, got)
+       if got := add_255_uint8_ssa(1); got != 0 {
+               fmt.Printf("add_uint8 255%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(-32767); got != -32766 {
-               fmt.Printf("sub_int16 -32767%s-1 = %d, wanted -32766\n", `-`, got)
+       if got := add_uint8_255_ssa(1); got != 0 {
+               fmt.Printf("add_uint8 1%s255 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(-1); got != 0 {
-               fmt.Printf("sub_int16 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := add_255_uint8_ssa(255); got != 254 {
+               fmt.Printf("add_uint8 255%s255 = %d, wanted 254\n", `+`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("sub_int16 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := add_uint8_255_ssa(255); got != 254 {
+               fmt.Printf("add_uint8 255%s255 = %d, wanted 254\n", `+`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(0); got != -1 {
-               fmt.Printf("sub_int16 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := sub_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("sub_uint8 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(0); got != 1 {
-               fmt.Printf("sub_int16 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := sub_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("sub_uint8 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(1); got != -2 {
-               fmt.Printf("sub_int16 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := sub_0_uint8_ssa(1); got != 255 {
+               fmt.Printf("sub_uint8 0%s1 = %d, wanted 255\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(1); got != 2 {
-               fmt.Printf("sub_int16 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := sub_uint8_0_ssa(1); got != 1 {
+               fmt.Printf("sub_uint8 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(32766); got != -32767 {
-               fmt.Printf("sub_int16 -1%s32766 = %d, wanted -32767\n", `-`, got)
+       if got := sub_0_uint8_ssa(255); got != 1 {
+               fmt.Printf("sub_uint8 0%s255 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(32766); got != 32767 {
-               fmt.Printf("sub_int16 32766%s-1 = %d, wanted 32767\n", `-`, got)
+       if got := sub_uint8_0_ssa(255); got != 255 {
+               fmt.Printf("sub_uint8 255%s0 = %d, wanted 255\n", `-`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int16_ssa(32767); got != -32768 {
-               fmt.Printf("sub_int16 -1%s32767 = %d, wanted -32768\n", `-`, got)
+       if got := sub_1_uint8_ssa(0); got != 1 {
+               fmt.Printf("sub_uint8 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_Neg1_ssa(32767); got != -32768 {
-               fmt.Printf("sub_int16 32767%s-1 = %d, wanted -32768\n", `-`, got)
+       if got := sub_uint8_1_ssa(0); got != 255 {
+               fmt.Printf("sub_uint8 0%s1 = %d, wanted 255\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(-32768); got != -32768 {
-               fmt.Printf("sub_int16 0%s-32768 = %d, wanted -32768\n", `-`, got)
+       if got := sub_1_uint8_ssa(1); got != 0 {
+               fmt.Printf("sub_uint8 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(-32768); got != -32768 {
-               fmt.Printf("sub_int16 -32768%s0 = %d, wanted -32768\n", `-`, got)
+       if got := sub_uint8_1_ssa(1); got != 0 {
+               fmt.Printf("sub_uint8 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(-32767); got != 32767 {
-               fmt.Printf("sub_int16 0%s-32767 = %d, wanted 32767\n", `-`, got)
+       if got := sub_1_uint8_ssa(255); got != 2 {
+               fmt.Printf("sub_uint8 1%s255 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(-32767); got != -32767 {
-               fmt.Printf("sub_int16 -32767%s0 = %d, wanted -32767\n", `-`, got)
+       if got := sub_uint8_1_ssa(255); got != 254 {
+               fmt.Printf("sub_uint8 255%s1 = %d, wanted 254\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(-1); got != 1 {
-               fmt.Printf("sub_int16 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := sub_255_uint8_ssa(0); got != 255 {
+               fmt.Printf("sub_uint8 255%s0 = %d, wanted 255\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(-1); got != -1 {
-               fmt.Printf("sub_int16 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := sub_uint8_255_ssa(0); got != 1 {
+               fmt.Printf("sub_uint8 0%s255 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(0); got != 0 {
-               fmt.Printf("sub_int16 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := sub_255_uint8_ssa(1); got != 254 {
+               fmt.Printf("sub_uint8 255%s1 = %d, wanted 254\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(0); got != 0 {
-               fmt.Printf("sub_int16 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := sub_uint8_255_ssa(1); got != 2 {
+               fmt.Printf("sub_uint8 1%s255 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(1); got != -1 {
-               fmt.Printf("sub_int16 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := sub_255_uint8_ssa(255); got != 0 {
+               fmt.Printf("sub_uint8 255%s255 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(1); got != 1 {
-               fmt.Printf("sub_int16 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := sub_uint8_255_ssa(255); got != 0 {
+               fmt.Printf("sub_uint8 255%s255 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(32766); got != -32766 {
-               fmt.Printf("sub_int16 0%s32766 = %d, wanted -32766\n", `-`, got)
+       if got := div_0_uint8_ssa(1); got != 0 {
+               fmt.Printf("div_uint8 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(32766); got != 32766 {
-               fmt.Printf("sub_int16 32766%s0 = %d, wanted 32766\n", `-`, got)
+       if got := div_0_uint8_ssa(255); got != 0 {
+               fmt.Printf("div_uint8 0%s255 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_0_int16_ssa(32767); got != -32767 {
-               fmt.Printf("sub_int16 0%s32767 = %d, wanted -32767\n", `-`, got)
+       if got := div_uint8_1_ssa(0); got != 0 {
+               fmt.Printf("div_uint8 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int16_0_ssa(32767); got != 32767 {
-               fmt.Printf("sub_int16 32767%s0 = %d, wanted 32767\n", `-`, got)
+       if got := div_1_uint8_ssa(1); got != 1 {
+               fmt.Printf("div_uint8 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(-32768); got != -32767 {
-               fmt.Printf("sub_int16 1%s-32768 = %d, wanted -32767\n", `-`, got)
+       if got := div_uint8_1_ssa(1); got != 1 {
+               fmt.Printf("div_uint8 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(-32768); got != 32767 {
-               fmt.Printf("sub_int16 -32768%s1 = %d, wanted 32767\n", `-`, got)
+       if got := div_1_uint8_ssa(255); got != 0 {
+               fmt.Printf("div_uint8 1%s255 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(-32767); got != -32768 {
-               fmt.Printf("sub_int16 1%s-32767 = %d, wanted -32768\n", `-`, got)
+       if got := div_uint8_1_ssa(255); got != 255 {
+               fmt.Printf("div_uint8 255%s1 = %d, wanted 255\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(-32767); got != -32768 {
-               fmt.Printf("sub_int16 -32767%s1 = %d, wanted -32768\n", `-`, got)
+       if got := div_uint8_255_ssa(0); got != 0 {
+               fmt.Printf("div_uint8 0%s255 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(-1); got != 2 {
-               fmt.Printf("sub_int16 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := div_255_uint8_ssa(1); got != 255 {
+               fmt.Printf("div_uint8 255%s1 = %d, wanted 255\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(-1); got != -2 {
-               fmt.Printf("sub_int16 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := div_uint8_255_ssa(1); got != 0 {
+               fmt.Printf("div_uint8 1%s255 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(0); got != 1 {
-               fmt.Printf("sub_int16 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := div_255_uint8_ssa(255); got != 1 {
+               fmt.Printf("div_uint8 255%s255 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(0); got != -1 {
-               fmt.Printf("sub_int16 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := div_uint8_255_ssa(255); got != 1 {
+               fmt.Printf("div_uint8 255%s255 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(1); got != 0 {
-               fmt.Printf("sub_int16 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mul_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("mul_uint8 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(1); got != 0 {
-               fmt.Printf("sub_int16 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mul_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("mul_uint8 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(32766); got != -32765 {
-               fmt.Printf("sub_int16 1%s32766 = %d, wanted -32765\n", `-`, got)
+       if got := mul_0_uint8_ssa(1); got != 0 {
+               fmt.Printf("mul_uint8 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(32766); got != 32765 {
-               fmt.Printf("sub_int16 32766%s1 = %d, wanted 32765\n", `-`, got)
+       if got := mul_uint8_0_ssa(1); got != 0 {
+               fmt.Printf("mul_uint8 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_1_int16_ssa(32767); got != -32766 {
-               fmt.Printf("sub_int16 1%s32767 = %d, wanted -32766\n", `-`, got)
+       if got := mul_0_uint8_ssa(255); got != 0 {
+               fmt.Printf("mul_uint8 0%s255 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_1_ssa(32767); got != 32766 {
-               fmt.Printf("sub_int16 32767%s1 = %d, wanted 32766\n", `-`, got)
+       if got := mul_uint8_0_ssa(255); got != 0 {
+               fmt.Printf("mul_uint8 255%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(-32768); got != -2 {
-               fmt.Printf("sub_int16 32766%s-32768 = %d, wanted -2\n", `-`, got)
+       if got := mul_1_uint8_ssa(0); got != 0 {
+               fmt.Printf("mul_uint8 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(-32768); got != 2 {
-               fmt.Printf("sub_int16 -32768%s32766 = %d, wanted 2\n", `-`, got)
+       if got := mul_uint8_1_ssa(0); got != 0 {
+               fmt.Printf("mul_uint8 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(-32767); got != -3 {
-               fmt.Printf("sub_int16 32766%s-32767 = %d, wanted -3\n", `-`, got)
+       if got := mul_1_uint8_ssa(1); got != 1 {
+               fmt.Printf("mul_uint8 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(-32767); got != 3 {
-               fmt.Printf("sub_int16 -32767%s32766 = %d, wanted 3\n", `-`, got)
+       if got := mul_uint8_1_ssa(1); got != 1 {
+               fmt.Printf("mul_uint8 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(-1); got != 32767 {
-               fmt.Printf("sub_int16 32766%s-1 = %d, wanted 32767\n", `-`, got)
+       if got := mul_1_uint8_ssa(255); got != 255 {
+               fmt.Printf("mul_uint8 1%s255 = %d, wanted 255\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(-1); got != -32767 {
-               fmt.Printf("sub_int16 -1%s32766 = %d, wanted -32767\n", `-`, got)
+       if got := mul_uint8_1_ssa(255); got != 255 {
+               fmt.Printf("mul_uint8 255%s1 = %d, wanted 255\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(0); got != 32766 {
-               fmt.Printf("sub_int16 32766%s0 = %d, wanted 32766\n", `-`, got)
+       if got := mul_255_uint8_ssa(0); got != 0 {
+               fmt.Printf("mul_uint8 255%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(0); got != -32766 {
-               fmt.Printf("sub_int16 0%s32766 = %d, wanted -32766\n", `-`, got)
+       if got := mul_uint8_255_ssa(0); got != 0 {
+               fmt.Printf("mul_uint8 0%s255 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(1); got != 32765 {
-               fmt.Printf("sub_int16 32766%s1 = %d, wanted 32765\n", `-`, got)
+       if got := mul_255_uint8_ssa(1); got != 255 {
+               fmt.Printf("mul_uint8 255%s1 = %d, wanted 255\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(1); got != -32765 {
-               fmt.Printf("sub_int16 1%s32766 = %d, wanted -32765\n", `-`, got)
+       if got := mul_uint8_255_ssa(1); got != 255 {
+               fmt.Printf("mul_uint8 1%s255 = %d, wanted 255\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(32766); got != 0 {
-               fmt.Printf("sub_int16 32766%s32766 = %d, wanted 0\n", `-`, got)
+       if got := mul_255_uint8_ssa(255); got != 1 {
+               fmt.Printf("mul_uint8 255%s255 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(32766); got != 0 {
-               fmt.Printf("sub_int16 32766%s32766 = %d, wanted 0\n", `-`, got)
+       if got := mul_uint8_255_ssa(255); got != 1 {
+               fmt.Printf("mul_uint8 255%s255 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := sub_32766_int16_ssa(32767); got != -1 {
-               fmt.Printf("sub_int16 32766%s32767 = %d, wanted -1\n", `-`, got)
+       if got := lsh_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint8 0%s0 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32766_ssa(32767); got != 1 {
-               fmt.Printf("sub_int16 32767%s32766 = %d, wanted 1\n", `-`, got)
+       if got := lsh_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint8 0%s0 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(-32768); got != -1 {
-               fmt.Printf("sub_int16 32767%s-32768 = %d, wanted -1\n", `-`, got)
+       if got := lsh_0_uint8_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint8 0%s1 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(-32768); got != 1 {
-               fmt.Printf("sub_int16 -32768%s32767 = %d, wanted 1\n", `-`, got)
+       if got := lsh_uint8_0_ssa(1); got != 1 {
+               fmt.Printf("lsh_uint8 1%s0 = %d, wanted 1\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(-32767); got != -2 {
-               fmt.Printf("sub_int16 32767%s-32767 = %d, wanted -2\n", `-`, got)
+       if got := lsh_0_uint8_ssa(255); got != 0 {
+               fmt.Printf("lsh_uint8 0%s255 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(-32767); got != 2 {
-               fmt.Printf("sub_int16 -32767%s32767 = %d, wanted 2\n", `-`, got)
+       if got := lsh_uint8_0_ssa(255); got != 255 {
+               fmt.Printf("lsh_uint8 255%s0 = %d, wanted 255\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(-1); got != -32768 {
-               fmt.Printf("sub_int16 32767%s-1 = %d, wanted -32768\n", `-`, got)
+       if got := lsh_1_uint8_ssa(0); got != 1 {
+               fmt.Printf("lsh_uint8 1%s0 = %d, wanted 1\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(-1); got != -32768 {
-               fmt.Printf("sub_int16 -1%s32767 = %d, wanted -32768\n", `-`, got)
+       if got := lsh_uint8_1_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint8 0%s1 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(0); got != 32767 {
-               fmt.Printf("sub_int16 32767%s0 = %d, wanted 32767\n", `-`, got)
+       if got := lsh_1_uint8_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint8 1%s1 = %d, wanted 2\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(0); got != -32767 {
-               fmt.Printf("sub_int16 0%s32767 = %d, wanted -32767\n", `-`, got)
+       if got := lsh_uint8_1_ssa(1); got != 2 {
+               fmt.Printf("lsh_uint8 1%s1 = %d, wanted 2\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(1); got != 32766 {
-               fmt.Printf("sub_int16 32767%s1 = %d, wanted 32766\n", `-`, got)
+       if got := lsh_1_uint8_ssa(255); got != 0 {
+               fmt.Printf("lsh_uint8 1%s255 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(1); got != -32766 {
-               fmt.Printf("sub_int16 1%s32767 = %d, wanted -32766\n", `-`, got)
+       if got := lsh_uint8_1_ssa(255); got != 254 {
+               fmt.Printf("lsh_uint8 255%s1 = %d, wanted 254\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(32766); got != 1 {
-               fmt.Printf("sub_int16 32767%s32766 = %d, wanted 1\n", `-`, got)
+       if got := lsh_255_uint8_ssa(0); got != 255 {
+               fmt.Printf("lsh_uint8 255%s0 = %d, wanted 255\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(32766); got != -1 {
-               fmt.Printf("sub_int16 32766%s32767 = %d, wanted -1\n", `-`, got)
+       if got := lsh_uint8_255_ssa(0); got != 0 {
+               fmt.Printf("lsh_uint8 0%s255 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_32767_int16_ssa(32767); got != 0 {
-               fmt.Printf("sub_int16 32767%s32767 = %d, wanted 0\n", `-`, got)
+       if got := lsh_255_uint8_ssa(1); got != 254 {
+               fmt.Printf("lsh_uint8 255%s1 = %d, wanted 254\n", `<<`, got)
                failed = true
        }
 
-       if got := sub_int16_32767_ssa(32767); got != 0 {
-               fmt.Printf("sub_int16 32767%s32767 = %d, wanted 0\n", `-`, got)
+       if got := lsh_uint8_255_ssa(1); got != 0 {
+               fmt.Printf("lsh_uint8 1%s255 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := div_Neg32768_int16_ssa(-32768); got != 1 {
-               fmt.Printf("div_int16 -32768%s-32768 = %d, wanted 1\n", `/`, got)
+       if got := lsh_255_uint8_ssa(255); got != 0 {
+               fmt.Printf("lsh_uint8 255%s255 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(-32768); got != 1 {
-               fmt.Printf("div_int16 -32768%s-32768 = %d, wanted 1\n", `/`, got)
+       if got := lsh_uint8_255_ssa(255); got != 0 {
+               fmt.Printf("lsh_uint8 255%s255 = %d, wanted 0\n", `<<`, got)
                failed = true
        }
 
-       if got := div_Neg32768_int16_ssa(-32767); got != 1 {
-               fmt.Printf("div_int16 -32768%s-32767 = %d, wanted 1\n", `/`, got)
+       if got := rsh_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint8 0%s0 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(-32767); got != 0 {
-               fmt.Printf("div_int16 -32767%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint8 0%s0 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32768_int16_ssa(-1); got != -32768 {
-               fmt.Printf("div_int16 -32768%s-1 = %d, wanted -32768\n", `/`, got)
+       if got := rsh_0_uint8_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint8 0%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(-1); got != 0 {
-               fmt.Printf("div_int16 -1%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_uint8_0_ssa(1); got != 1 {
+               fmt.Printf("rsh_uint8 1%s0 = %d, wanted 1\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(0); got != 0 {
-               fmt.Printf("div_int16 0%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_0_uint8_ssa(255); got != 0 {
+               fmt.Printf("rsh_uint8 0%s255 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32768_int16_ssa(1); got != -32768 {
-               fmt.Printf("div_int16 -32768%s1 = %d, wanted -32768\n", `/`, got)
+       if got := rsh_uint8_0_ssa(255); got != 255 {
+               fmt.Printf("rsh_uint8 255%s0 = %d, wanted 255\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(1); got != 0 {
-               fmt.Printf("div_int16 1%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_1_uint8_ssa(0); got != 1 {
+               fmt.Printf("rsh_uint8 1%s0 = %d, wanted 1\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32768_int16_ssa(32766); got != -1 {
-               fmt.Printf("div_int16 -32768%s32766 = %d, wanted -1\n", `/`, got)
+       if got := rsh_uint8_1_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint8 0%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(32766); got != 0 {
-               fmt.Printf("div_int16 32766%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_1_uint8_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint8 1%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32768_int16_ssa(32767); got != -1 {
-               fmt.Printf("div_int16 -32768%s32767 = %d, wanted -1\n", `/`, got)
+       if got := rsh_uint8_1_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint8 1%s1 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32768_ssa(32767); got != 0 {
-               fmt.Printf("div_int16 32767%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_1_uint8_ssa(255); got != 0 {
+               fmt.Printf("rsh_uint8 1%s255 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32767_int16_ssa(-32768); got != 0 {
-               fmt.Printf("div_int16 -32767%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := rsh_uint8_1_ssa(255); got != 127 {
+               fmt.Printf("rsh_uint8 255%s1 = %d, wanted 127\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(-32768); got != 1 {
-               fmt.Printf("div_int16 -32768%s-32767 = %d, wanted 1\n", `/`, got)
+       if got := rsh_255_uint8_ssa(0); got != 255 {
+               fmt.Printf("rsh_uint8 255%s0 = %d, wanted 255\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32767_int16_ssa(-32767); got != 1 {
-               fmt.Printf("div_int16 -32767%s-32767 = %d, wanted 1\n", `/`, got)
+       if got := rsh_uint8_255_ssa(0); got != 0 {
+               fmt.Printf("rsh_uint8 0%s255 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(-32767); got != 1 {
-               fmt.Printf("div_int16 -32767%s-32767 = %d, wanted 1\n", `/`, got)
+       if got := rsh_255_uint8_ssa(1); got != 127 {
+               fmt.Printf("rsh_uint8 255%s1 = %d, wanted 127\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32767_int16_ssa(-1); got != 32767 {
-               fmt.Printf("div_int16 -32767%s-1 = %d, wanted 32767\n", `/`, got)
+       if got := rsh_uint8_255_ssa(1); got != 0 {
+               fmt.Printf("rsh_uint8 1%s255 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(-1); got != 0 {
-               fmt.Printf("div_int16 -1%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := rsh_255_uint8_ssa(255); got != 0 {
+               fmt.Printf("rsh_uint8 255%s255 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(0); got != 0 {
-               fmt.Printf("div_int16 0%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := rsh_uint8_255_ssa(255); got != 0 {
+               fmt.Printf("rsh_uint8 255%s255 = %d, wanted 0\n", `>>`, got)
                failed = true
        }
 
-       if got := div_Neg32767_int16_ssa(1); got != -32767 {
-               fmt.Printf("div_int16 -32767%s1 = %d, wanted -32767\n", `/`, got)
+       if got := mod_0_uint8_ssa(1); got != 0 {
+               fmt.Printf("mod_uint8 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(1); got != 0 {
-               fmt.Printf("div_int16 1%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := mod_0_uint8_ssa(255); got != 0 {
+               fmt.Printf("mod_uint8 0%s255 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_Neg32767_int16_ssa(32766); got != -1 {
-               fmt.Printf("div_int16 -32767%s32766 = %d, wanted -1\n", `/`, got)
+       if got := mod_uint8_1_ssa(0); got != 0 {
+               fmt.Printf("mod_uint8 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(32766); got != 0 {
-               fmt.Printf("div_int16 32766%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := mod_1_uint8_ssa(1); got != 0 {
+               fmt.Printf("mod_uint8 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_Neg32767_int16_ssa(32767); got != -1 {
-               fmt.Printf("div_int16 -32767%s32767 = %d, wanted -1\n", `/`, got)
+       if got := mod_uint8_1_ssa(1); got != 0 {
+               fmt.Printf("mod_uint8 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg32767_ssa(32767); got != -1 {
-               fmt.Printf("div_int16 32767%s-32767 = %d, wanted -1\n", `/`, got)
+       if got := mod_1_uint8_ssa(255); got != 1 {
+               fmt.Printf("mod_uint8 1%s255 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := div_Neg1_int16_ssa(-32768); got != 0 {
-               fmt.Printf("div_int16 -1%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := mod_uint8_1_ssa(255); got != 0 {
+               fmt.Printf("mod_uint8 255%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(-32768); got != -32768 {
-               fmt.Printf("div_int16 -32768%s-1 = %d, wanted -32768\n", `/`, got)
+       if got := mod_uint8_255_ssa(0); got != 0 {
+               fmt.Printf("mod_uint8 0%s255 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_Neg1_int16_ssa(-32767); got != 0 {
-               fmt.Printf("div_int16 -1%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := mod_255_uint8_ssa(1); got != 0 {
+               fmt.Printf("mod_uint8 255%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(-32767); got != 32767 {
-               fmt.Printf("div_int16 -32767%s-1 = %d, wanted 32767\n", `/`, got)
+       if got := mod_uint8_255_ssa(1); got != 1 {
+               fmt.Printf("mod_uint8 1%s255 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := div_Neg1_int16_ssa(-1); got != 1 {
-               fmt.Printf("div_int16 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := mod_255_uint8_ssa(255); got != 0 {
+               fmt.Printf("mod_uint8 255%s255 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("div_int16 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := mod_uint8_255_ssa(255); got != 0 {
+               fmt.Printf("mod_uint8 255%s255 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(0); got != 0 {
-               fmt.Printf("div_int16 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := and_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("and_uint8 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int16_ssa(1); got != -1 {
-               fmt.Printf("div_int16 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := and_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("and_uint8 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(1); got != -1 {
-               fmt.Printf("div_int16 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := and_0_uint8_ssa(1); got != 0 {
+               fmt.Printf("and_uint8 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int16_ssa(32766); got != 0 {
-               fmt.Printf("div_int16 -1%s32766 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_0_ssa(1); got != 0 {
+               fmt.Printf("and_uint8 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(32766); got != -32766 {
-               fmt.Printf("div_int16 32766%s-1 = %d, wanted -32766\n", `/`, got)
+       if got := and_0_uint8_ssa(255); got != 0 {
+               fmt.Printf("and_uint8 0%s255 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int16_ssa(32767); got != 0 {
-               fmt.Printf("div_int16 -1%s32767 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_0_ssa(255); got != 0 {
+               fmt.Printf("and_uint8 255%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int16_Neg1_ssa(32767); got != -32767 {
-               fmt.Printf("div_int16 32767%s-1 = %d, wanted -32767\n", `/`, got)
+       if got := and_1_uint8_ssa(0); got != 0 {
+               fmt.Printf("and_uint8 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int16_ssa(-32768); got != 0 {
-               fmt.Printf("div_int16 0%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_1_ssa(0); got != 0 {
+               fmt.Printf("and_uint8 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int16_ssa(-32767); got != 0 {
-               fmt.Printf("div_int16 0%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := and_1_uint8_ssa(1); got != 1 {
+               fmt.Printf("and_uint8 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int16_ssa(-1); got != 0 {
-               fmt.Printf("div_int16 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_1_ssa(1); got != 1 {
+               fmt.Printf("and_uint8 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int16_ssa(1); got != 0 {
-               fmt.Printf("div_int16 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := and_1_uint8_ssa(255); got != 1 {
+               fmt.Printf("and_uint8 1%s255 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int16_ssa(32766); got != 0 {
-               fmt.Printf("div_int16 0%s32766 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_1_ssa(255); got != 1 {
+               fmt.Printf("and_uint8 255%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int16_ssa(32767); got != 0 {
-               fmt.Printf("div_int16 0%s32767 = %d, wanted 0\n", `/`, got)
+       if got := and_255_uint8_ssa(0); got != 0 {
+               fmt.Printf("and_uint8 255%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int16_ssa(-32768); got != 0 {
-               fmt.Printf("div_int16 1%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_255_ssa(0); got != 0 {
+               fmt.Printf("and_uint8 0%s255 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(-32768); got != -32768 {
-               fmt.Printf("div_int16 -32768%s1 = %d, wanted -32768\n", `/`, got)
+       if got := and_255_uint8_ssa(1); got != 1 {
+               fmt.Printf("and_uint8 255%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int16_ssa(-32767); got != 0 {
-               fmt.Printf("div_int16 1%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := and_uint8_255_ssa(1); got != 1 {
+               fmt.Printf("and_uint8 1%s255 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(-32767); got != -32767 {
-               fmt.Printf("div_int16 -32767%s1 = %d, wanted -32767\n", `/`, got)
+       if got := and_255_uint8_ssa(255); got != 255 {
+               fmt.Printf("and_uint8 255%s255 = %d, wanted 255\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int16_ssa(-1); got != -1 {
-               fmt.Printf("div_int16 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := and_uint8_255_ssa(255); got != 255 {
+               fmt.Printf("and_uint8 255%s255 = %d, wanted 255\n", `&`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(-1); got != -1 {
-               fmt.Printf("div_int16 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := or_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("or_uint8 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(0); got != 0 {
-               fmt.Printf("div_int16 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := or_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("or_uint8 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int16_ssa(1); got != 1 {
-               fmt.Printf("div_int16 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := or_0_uint8_ssa(1); got != 1 {
+               fmt.Printf("or_uint8 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(1); got != 1 {
-               fmt.Printf("div_int16 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := or_uint8_0_ssa(1); got != 1 {
+               fmt.Printf("or_uint8 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int16_ssa(32766); got != 0 {
-               fmt.Printf("div_int16 1%s32766 = %d, wanted 0\n", `/`, got)
+       if got := or_0_uint8_ssa(255); got != 255 {
+               fmt.Printf("or_uint8 0%s255 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(32766); got != 32766 {
-               fmt.Printf("div_int16 32766%s1 = %d, wanted 32766\n", `/`, got)
+       if got := or_uint8_0_ssa(255); got != 255 {
+               fmt.Printf("or_uint8 255%s0 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_1_int16_ssa(32767); got != 0 {
-               fmt.Printf("div_int16 1%s32767 = %d, wanted 0\n", `/`, got)
+       if got := or_1_uint8_ssa(0); got != 1 {
+               fmt.Printf("or_uint8 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_1_ssa(32767); got != 32767 {
-               fmt.Printf("div_int16 32767%s1 = %d, wanted 32767\n", `/`, got)
+       if got := or_uint8_1_ssa(0); got != 1 {
+               fmt.Printf("or_uint8 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_32766_int16_ssa(-32768); got != 0 {
-               fmt.Printf("div_int16 32766%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := or_1_uint8_ssa(1); got != 1 {
+               fmt.Printf("or_uint8 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(-32768); got != -1 {
-               fmt.Printf("div_int16 -32768%s32766 = %d, wanted -1\n", `/`, got)
+       if got := or_uint8_1_ssa(1); got != 1 {
+               fmt.Printf("or_uint8 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := div_32766_int16_ssa(-32767); got != 0 {
-               fmt.Printf("div_int16 32766%s-32767 = %d, wanted 0\n", `/`, got)
+       if got := or_1_uint8_ssa(255); got != 255 {
+               fmt.Printf("or_uint8 1%s255 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(-32767); got != -1 {
-               fmt.Printf("div_int16 -32767%s32766 = %d, wanted -1\n", `/`, got)
+       if got := or_uint8_1_ssa(255); got != 255 {
+               fmt.Printf("or_uint8 255%s1 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_32766_int16_ssa(-1); got != -32766 {
-               fmt.Printf("div_int16 32766%s-1 = %d, wanted -32766\n", `/`, got)
+       if got := or_255_uint8_ssa(0); got != 255 {
+               fmt.Printf("or_uint8 255%s0 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(-1); got != 0 {
-               fmt.Printf("div_int16 -1%s32766 = %d, wanted 0\n", `/`, got)
+       if got := or_uint8_255_ssa(0); got != 255 {
+               fmt.Printf("or_uint8 0%s255 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(0); got != 0 {
-               fmt.Printf("div_int16 0%s32766 = %d, wanted 0\n", `/`, got)
+       if got := or_255_uint8_ssa(1); got != 255 {
+               fmt.Printf("or_uint8 255%s1 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_32766_int16_ssa(1); got != 32766 {
-               fmt.Printf("div_int16 32766%s1 = %d, wanted 32766\n", `/`, got)
+       if got := or_uint8_255_ssa(1); got != 255 {
+               fmt.Printf("or_uint8 1%s255 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(1); got != 0 {
-               fmt.Printf("div_int16 1%s32766 = %d, wanted 0\n", `/`, got)
+       if got := or_255_uint8_ssa(255); got != 255 {
+               fmt.Printf("or_uint8 255%s255 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_32766_int16_ssa(32766); got != 1 {
-               fmt.Printf("div_int16 32766%s32766 = %d, wanted 1\n", `/`, got)
+       if got := or_uint8_255_ssa(255); got != 255 {
+               fmt.Printf("or_uint8 255%s255 = %d, wanted 255\n", `|`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(32766); got != 1 {
-               fmt.Printf("div_int16 32766%s32766 = %d, wanted 1\n", `/`, got)
+       if got := xor_0_uint8_ssa(0); got != 0 {
+               fmt.Printf("xor_uint8 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_32766_int16_ssa(32767); got != 0 {
-               fmt.Printf("div_int16 32766%s32767 = %d, wanted 0\n", `/`, got)
+       if got := xor_uint8_0_ssa(0); got != 0 {
+               fmt.Printf("xor_uint8 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32766_ssa(32767); got != 1 {
-               fmt.Printf("div_int16 32767%s32766 = %d, wanted 1\n", `/`, got)
+       if got := xor_0_uint8_ssa(1); got != 1 {
+               fmt.Printf("xor_uint8 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_32767_int16_ssa(-32768); got != 0 {
-               fmt.Printf("div_int16 32767%s-32768 = %d, wanted 0\n", `/`, got)
+       if got := xor_uint8_0_ssa(1); got != 1 {
+               fmt.Printf("xor_uint8 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(-32768); got != -1 {
-               fmt.Printf("div_int16 -32768%s32767 = %d, wanted -1\n", `/`, got)
+       if got := xor_0_uint8_ssa(255); got != 255 {
+               fmt.Printf("xor_uint8 0%s255 = %d, wanted 255\n", `^`, got)
                failed = true
        }
 
-       if got := div_32767_int16_ssa(-32767); got != -1 {
-               fmt.Printf("div_int16 32767%s-32767 = %d, wanted -1\n", `/`, got)
+       if got := xor_uint8_0_ssa(255); got != 255 {
+               fmt.Printf("xor_uint8 255%s0 = %d, wanted 255\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(-32767); got != -1 {
-               fmt.Printf("div_int16 -32767%s32767 = %d, wanted -1\n", `/`, got)
+       if got := xor_1_uint8_ssa(0); got != 1 {
+               fmt.Printf("xor_uint8 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_32767_int16_ssa(-1); got != -32767 {
-               fmt.Printf("div_int16 32767%s-1 = %d, wanted -32767\n", `/`, got)
+       if got := xor_uint8_1_ssa(0); got != 1 {
+               fmt.Printf("xor_uint8 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(-1); got != 0 {
-               fmt.Printf("div_int16 -1%s32767 = %d, wanted 0\n", `/`, got)
+       if got := xor_1_uint8_ssa(1); got != 0 {
+               fmt.Printf("xor_uint8 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(0); got != 0 {
-               fmt.Printf("div_int16 0%s32767 = %d, wanted 0\n", `/`, got)
+       if got := xor_uint8_1_ssa(1); got != 0 {
+               fmt.Printf("xor_uint8 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := div_32767_int16_ssa(1); got != 32767 {
-               fmt.Printf("div_int16 32767%s1 = %d, wanted 32767\n", `/`, got)
+       if got := xor_1_uint8_ssa(255); got != 254 {
+               fmt.Printf("xor_uint8 1%s255 = %d, wanted 254\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(1); got != 0 {
-               fmt.Printf("div_int16 1%s32767 = %d, wanted 0\n", `/`, got)
+       if got := xor_uint8_1_ssa(255); got != 254 {
+               fmt.Printf("xor_uint8 255%s1 = %d, wanted 254\n", `^`, got)
                failed = true
        }
 
-       if got := div_32767_int16_ssa(32766); got != 1 {
-               fmt.Printf("div_int16 32767%s32766 = %d, wanted 1\n", `/`, got)
+       if got := xor_255_uint8_ssa(0); got != 255 {
+               fmt.Printf("xor_uint8 255%s0 = %d, wanted 255\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(32766); got != 0 {
-               fmt.Printf("div_int16 32766%s32767 = %d, wanted 0\n", `/`, got)
+       if got := xor_uint8_255_ssa(0); got != 255 {
+               fmt.Printf("xor_uint8 0%s255 = %d, wanted 255\n", `^`, got)
                failed = true
        }
 
-       if got := div_32767_int16_ssa(32767); got != 1 {
-               fmt.Printf("div_int16 32767%s32767 = %d, wanted 1\n", `/`, got)
+       if got := xor_255_uint8_ssa(1); got != 254 {
+               fmt.Printf("xor_uint8 255%s1 = %d, wanted 254\n", `^`, got)
                failed = true
        }
 
-       if got := div_int16_32767_ssa(32767); got != 1 {
-               fmt.Printf("div_int16 32767%s32767 = %d, wanted 1\n", `/`, got)
+       if got := xor_uint8_255_ssa(1); got != 254 {
+               fmt.Printf("xor_uint8 1%s255 = %d, wanted 254\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(-32768); got != 0 {
-               fmt.Printf("mul_int16 -32768%s-32768 = %d, wanted 0\n", `*`, got)
+       if got := xor_255_uint8_ssa(255); got != 0 {
+               fmt.Printf("xor_uint8 255%s255 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(-32768); got != 0 {
-               fmt.Printf("mul_int16 -32768%s-32768 = %d, wanted 0\n", `*`, got)
+       if got := xor_uint8_255_ssa(255); got != 0 {
+               fmt.Printf("xor_uint8 255%s255 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(-32767); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s-32767 = %d, wanted -32768\n", `*`, got)
+       if got := add_Neg128_int8_ssa(-128); got != 0 {
+               fmt.Printf("add_int8 -128%s-128 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(-32767); got != -32768 {
-               fmt.Printf("mul_int16 -32767%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_Neg128_ssa(-128); got != 0 {
+               fmt.Printf("add_int8 -128%s-128 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(-1); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s-1 = %d, wanted -32768\n", `*`, got)
+       if got := add_Neg128_int8_ssa(-127); got != 1 {
+               fmt.Printf("add_int8 -128%s-127 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(-1); got != -32768 {
-               fmt.Printf("mul_int16 -1%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_Neg128_ssa(-127); got != 1 {
+               fmt.Printf("add_int8 -127%s-128 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 -32768%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_Neg128_int8_ssa(-1); got != 127 {
+               fmt.Printf("add_int8 -128%s-1 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s-32768 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_Neg128_ssa(-1); got != 127 {
+               fmt.Printf("add_int8 -1%s-128 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(1); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s1 = %d, wanted -32768\n", `*`, got)
+       if got := add_Neg128_int8_ssa(0); got != -128 {
+               fmt.Printf("add_int8 -128%s0 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(1); got != -32768 {
-               fmt.Printf("mul_int16 1%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_Neg128_ssa(0); got != -128 {
+               fmt.Printf("add_int8 0%s-128 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(32766); got != 0 {
-               fmt.Printf("mul_int16 -32768%s32766 = %d, wanted 0\n", `*`, got)
+       if got := add_Neg128_int8_ssa(1); got != -127 {
+               fmt.Printf("add_int8 -128%s1 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(32766); got != 0 {
-               fmt.Printf("mul_int16 32766%s-32768 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_Neg128_ssa(1); got != -127 {
+               fmt.Printf("add_int8 1%s-128 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32768_int16_ssa(32767); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s32767 = %d, wanted -32768\n", `*`, got)
+       if got := add_Neg128_int8_ssa(126); got != -2 {
+               fmt.Printf("add_int8 -128%s126 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32768_ssa(32767); got != -32768 {
-               fmt.Printf("mul_int16 32767%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_Neg128_ssa(126); got != -2 {
+               fmt.Printf("add_int8 126%s-128 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 -32767%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_Neg128_int8_ssa(127); got != -1 {
+               fmt.Printf("add_int8 -128%s127 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s-32767 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_Neg128_ssa(127); got != -1 {
+               fmt.Printf("add_int8 127%s-128 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(-32767); got != 1 {
-               fmt.Printf("mul_int16 -32767%s-32767 = %d, wanted 1\n", `*`, got)
+       if got := add_Neg127_int8_ssa(-128); got != 1 {
+               fmt.Printf("add_int8 -127%s-128 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(-32767); got != 1 {
-               fmt.Printf("mul_int16 -32767%s-32767 = %d, wanted 1\n", `*`, got)
+       if got := add_int8_Neg127_ssa(-128); got != 1 {
+               fmt.Printf("add_int8 -128%s-127 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(-1); got != 32767 {
-               fmt.Printf("mul_int16 -32767%s-1 = %d, wanted 32767\n", `*`, got)
+       if got := add_Neg127_int8_ssa(-127); got != 2 {
+               fmt.Printf("add_int8 -127%s-127 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(-1); got != 32767 {
-               fmt.Printf("mul_int16 -1%s-32767 = %d, wanted 32767\n", `*`, got)
+       if got := add_int8_Neg127_ssa(-127); got != 2 {
+               fmt.Printf("add_int8 -127%s-127 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 -32767%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_Neg127_int8_ssa(-1); got != -128 {
+               fmt.Printf("add_int8 -127%s-1 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s-32767 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_Neg127_ssa(-1); got != -128 {
+               fmt.Printf("add_int8 -1%s-127 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(1); got != -32767 {
-               fmt.Printf("mul_int16 -32767%s1 = %d, wanted -32767\n", `*`, got)
+       if got := add_Neg127_int8_ssa(0); got != -127 {
+               fmt.Printf("add_int8 -127%s0 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(1); got != -32767 {
-               fmt.Printf("mul_int16 1%s-32767 = %d, wanted -32767\n", `*`, got)
+       if got := add_int8_Neg127_ssa(0); got != -127 {
+               fmt.Printf("add_int8 0%s-127 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(32766); got != 32766 {
-               fmt.Printf("mul_int16 -32767%s32766 = %d, wanted 32766\n", `*`, got)
+       if got := add_Neg127_int8_ssa(1); got != -126 {
+               fmt.Printf("add_int8 -127%s1 = %d, wanted -126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(32766); got != 32766 {
-               fmt.Printf("mul_int16 32766%s-32767 = %d, wanted 32766\n", `*`, got)
+       if got := add_int8_Neg127_ssa(1); got != -126 {
+               fmt.Printf("add_int8 1%s-127 = %d, wanted -126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg32767_int16_ssa(32767); got != -1 {
-               fmt.Printf("mul_int16 -32767%s32767 = %d, wanted -1\n", `*`, got)
+       if got := add_Neg127_int8_ssa(126); got != -1 {
+               fmt.Printf("add_int8 -127%s126 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg32767_ssa(32767); got != -1 {
-               fmt.Printf("mul_int16 32767%s-32767 = %d, wanted -1\n", `*`, got)
+       if got := add_int8_Neg127_ssa(126); got != -1 {
+               fmt.Printf("add_int8 126%s-127 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 -1%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_Neg127_int8_ssa(127); got != 0 {
+               fmt.Printf("add_int8 -127%s127 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s-1 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_Neg127_ssa(127); got != 0 {
+               fmt.Printf("add_int8 127%s-127 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(-32767); got != 32767 {
-               fmt.Printf("mul_int16 -1%s-32767 = %d, wanted 32767\n", `*`, got)
+       if got := add_Neg1_int8_ssa(-128); got != 127 {
+               fmt.Printf("add_int8 -1%s-128 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(-32767); got != 32767 {
-               fmt.Printf("mul_int16 -32767%s-1 = %d, wanted 32767\n", `*`, got)
+       if got := add_int8_Neg1_ssa(-128); got != 127 {
+               fmt.Printf("add_int8 -128%s-1 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(-1); got != 1 {
-               fmt.Printf("mul_int16 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := add_Neg1_int8_ssa(-127); got != -128 {
+               fmt.Printf("add_int8 -1%s-127 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("mul_int16 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := add_int8_Neg1_ssa(-127); got != -128 {
+               fmt.Printf("add_int8 -127%s-1 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_Neg1_int8_ssa(-1); got != -2 {
+               fmt.Printf("add_int8 -1%s-1 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_Neg1_ssa(-1); got != -2 {
+               fmt.Printf("add_int8 -1%s-1 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(1); got != -1 {
-               fmt.Printf("mul_int16 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := add_Neg1_int8_ssa(0); got != -1 {
+               fmt.Printf("add_int8 -1%s0 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(1); got != -1 {
-               fmt.Printf("mul_int16 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := add_int8_Neg1_ssa(0); got != -1 {
+               fmt.Printf("add_int8 0%s-1 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(32766); got != -32766 {
-               fmt.Printf("mul_int16 -1%s32766 = %d, wanted -32766\n", `*`, got)
+       if got := add_Neg1_int8_ssa(1); got != 0 {
+               fmt.Printf("add_int8 -1%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(32766); got != -32766 {
-               fmt.Printf("mul_int16 32766%s-1 = %d, wanted -32766\n", `*`, got)
+       if got := add_int8_Neg1_ssa(1); got != 0 {
+               fmt.Printf("add_int8 1%s-1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int16_ssa(32767); got != -32767 {
-               fmt.Printf("mul_int16 -1%s32767 = %d, wanted -32767\n", `*`, got)
+       if got := add_Neg1_int8_ssa(126); got != 125 {
+               fmt.Printf("add_int8 -1%s126 = %d, wanted 125\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_Neg1_ssa(32767); got != -32767 {
-               fmt.Printf("mul_int16 32767%s-1 = %d, wanted -32767\n", `*`, got)
+       if got := add_int8_Neg1_ssa(126); got != 125 {
+               fmt.Printf("add_int8 126%s-1 = %d, wanted 125\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(-32768); got != 0 {
-               fmt.Printf("mul_int16 0%s-32768 = %d, wanted 0\n", `*`, got)
+       if got := add_Neg1_int8_ssa(127); got != 126 {
+               fmt.Printf("add_int8 -1%s127 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(-32768); got != 0 {
-               fmt.Printf("mul_int16 -32768%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_Neg1_ssa(127); got != 126 {
+               fmt.Printf("add_int8 127%s-1 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(-32767); got != 0 {
-               fmt.Printf("mul_int16 0%s-32767 = %d, wanted 0\n", `*`, got)
+       if got := add_0_int8_ssa(-128); got != -128 {
+               fmt.Printf("add_int8 0%s-128 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(-32767); got != 0 {
-               fmt.Printf("mul_int16 -32767%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_0_ssa(-128); got != -128 {
+               fmt.Printf("add_int8 -128%s0 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(-1); got != 0 {
-               fmt.Printf("mul_int16 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := add_0_int8_ssa(-127); got != -127 {
+               fmt.Printf("add_int8 0%s-127 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(-1); got != 0 {
-               fmt.Printf("mul_int16 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_0_ssa(-127); got != -127 {
+               fmt.Printf("add_int8 -127%s0 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_0_int8_ssa(-1); got != -1 {
+               fmt.Printf("add_int8 0%s-1 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_0_ssa(-1); got != -1 {
+               fmt.Printf("add_int8 -1%s0 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(1); got != 0 {
-               fmt.Printf("mul_int16 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := add_0_int8_ssa(0); got != 0 {
+               fmt.Printf("add_int8 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(1); got != 0 {
-               fmt.Printf("mul_int16 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_0_ssa(0); got != 0 {
+               fmt.Printf("add_int8 0%s0 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(32766); got != 0 {
-               fmt.Printf("mul_int16 0%s32766 = %d, wanted 0\n", `*`, got)
+       if got := add_0_int8_ssa(1); got != 1 {
+               fmt.Printf("add_int8 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(32766); got != 0 {
-               fmt.Printf("mul_int16 32766%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_0_ssa(1); got != 1 {
+               fmt.Printf("add_int8 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_0_int16_ssa(32767); got != 0 {
-               fmt.Printf("mul_int16 0%s32767 = %d, wanted 0\n", `*`, got)
+       if got := add_0_int8_ssa(126); got != 126 {
+               fmt.Printf("add_int8 0%s126 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_0_ssa(32767); got != 0 {
-               fmt.Printf("mul_int16 32767%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_0_ssa(126); got != 126 {
+               fmt.Printf("add_int8 126%s0 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 1%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_0_int8_ssa(127); got != 127 {
+               fmt.Printf("add_int8 0%s127 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s1 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_0_ssa(127); got != 127 {
+               fmt.Printf("add_int8 127%s0 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(-32767); got != -32767 {
-               fmt.Printf("mul_int16 1%s-32767 = %d, wanted -32767\n", `*`, got)
+       if got := add_1_int8_ssa(-128); got != -127 {
+               fmt.Printf("add_int8 1%s-128 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(-32767); got != -32767 {
-               fmt.Printf("mul_int16 -32767%s1 = %d, wanted -32767\n", `*`, got)
+       if got := add_int8_1_ssa(-128); got != -127 {
+               fmt.Printf("add_int8 -128%s1 = %d, wanted -127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(-1); got != -1 {
-               fmt.Printf("mul_int16 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := add_1_int8_ssa(-127); got != -126 {
+               fmt.Printf("add_int8 1%s-127 = %d, wanted -126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(-1); got != -1 {
-               fmt.Printf("mul_int16 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := add_int8_1_ssa(-127); got != -126 {
+               fmt.Printf("add_int8 -127%s1 = %d, wanted -126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_1_int8_ssa(-1); got != 0 {
+               fmt.Printf("add_int8 1%s-1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_1_ssa(-1); got != 0 {
+               fmt.Printf("add_int8 -1%s1 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(1); got != 1 {
-               fmt.Printf("mul_int16 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := add_1_int8_ssa(0); got != 1 {
+               fmt.Printf("add_int8 1%s0 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(1); got != 1 {
-               fmt.Printf("mul_int16 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := add_int8_1_ssa(0); got != 1 {
+               fmt.Printf("add_int8 0%s1 = %d, wanted 1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(32766); got != 32766 {
-               fmt.Printf("mul_int16 1%s32766 = %d, wanted 32766\n", `*`, got)
+       if got := add_1_int8_ssa(1); got != 2 {
+               fmt.Printf("add_int8 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(32766); got != 32766 {
-               fmt.Printf("mul_int16 32766%s1 = %d, wanted 32766\n", `*`, got)
+       if got := add_int8_1_ssa(1); got != 2 {
+               fmt.Printf("add_int8 1%s1 = %d, wanted 2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_1_int16_ssa(32767); got != 32767 {
-               fmt.Printf("mul_int16 1%s32767 = %d, wanted 32767\n", `*`, got)
+       if got := add_1_int8_ssa(126); got != 127 {
+               fmt.Printf("add_int8 1%s126 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_1_ssa(32767); got != 32767 {
-               fmt.Printf("mul_int16 32767%s1 = %d, wanted 32767\n", `*`, got)
+       if got := add_int8_1_ssa(126); got != 127 {
+               fmt.Printf("add_int8 126%s1 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(-32768); got != 0 {
-               fmt.Printf("mul_int16 32766%s-32768 = %d, wanted 0\n", `*`, got)
+       if got := add_1_int8_ssa(127); got != -128 {
+               fmt.Printf("add_int8 1%s127 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(-32768); got != 0 {
-               fmt.Printf("mul_int16 -32768%s32766 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_1_ssa(127); got != -128 {
+               fmt.Printf("add_int8 127%s1 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(-32767); got != 32766 {
-               fmt.Printf("mul_int16 32766%s-32767 = %d, wanted 32766\n", `*`, got)
+       if got := add_126_int8_ssa(-128); got != -2 {
+               fmt.Printf("add_int8 126%s-128 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(-32767); got != 32766 {
-               fmt.Printf("mul_int16 -32767%s32766 = %d, wanted 32766\n", `*`, got)
+       if got := add_int8_126_ssa(-128); got != -2 {
+               fmt.Printf("add_int8 -128%s126 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(-1); got != -32766 {
-               fmt.Printf("mul_int16 32766%s-1 = %d, wanted -32766\n", `*`, got)
+       if got := add_126_int8_ssa(-127); got != -1 {
+               fmt.Printf("add_int8 126%s-127 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(-1); got != -32766 {
-               fmt.Printf("mul_int16 -1%s32766 = %d, wanted -32766\n", `*`, got)
+       if got := add_int8_126_ssa(-127); got != -1 {
+               fmt.Printf("add_int8 -127%s126 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 32766%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_126_int8_ssa(-1); got != 125 {
+               fmt.Printf("add_int8 126%s-1 = %d, wanted 125\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s32766 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_126_ssa(-1); got != 125 {
+               fmt.Printf("add_int8 -1%s126 = %d, wanted 125\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(1); got != 32766 {
-               fmt.Printf("mul_int16 32766%s1 = %d, wanted 32766\n", `*`, got)
+       if got := add_126_int8_ssa(0); got != 126 {
+               fmt.Printf("add_int8 126%s0 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(1); got != 32766 {
-               fmt.Printf("mul_int16 1%s32766 = %d, wanted 32766\n", `*`, got)
+       if got := add_int8_126_ssa(0); got != 126 {
+               fmt.Printf("add_int8 0%s126 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(32766); got != 4 {
-               fmt.Printf("mul_int16 32766%s32766 = %d, wanted 4\n", `*`, got)
+       if got := add_126_int8_ssa(1); got != 127 {
+               fmt.Printf("add_int8 126%s1 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(32766); got != 4 {
-               fmt.Printf("mul_int16 32766%s32766 = %d, wanted 4\n", `*`, got)
+       if got := add_int8_126_ssa(1); got != 127 {
+               fmt.Printf("add_int8 1%s126 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32766_int16_ssa(32767); got != -32766 {
-               fmt.Printf("mul_int16 32766%s32767 = %d, wanted -32766\n", `*`, got)
+       if got := add_126_int8_ssa(126); got != -4 {
+               fmt.Printf("add_int8 126%s126 = %d, wanted -4\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32766_ssa(32767); got != -32766 {
-               fmt.Printf("mul_int16 32767%s32766 = %d, wanted -32766\n", `*`, got)
+       if got := add_int8_126_ssa(126); got != -4 {
+               fmt.Printf("add_int8 126%s126 = %d, wanted -4\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 32767%s-32768 = %d, wanted -32768\n", `*`, got)
+       if got := add_126_int8_ssa(127); got != -3 {
+               fmt.Printf("add_int8 126%s127 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(-32768); got != -32768 {
-               fmt.Printf("mul_int16 -32768%s32767 = %d, wanted -32768\n", `*`, got)
+       if got := add_int8_126_ssa(127); got != -3 {
+               fmt.Printf("add_int8 127%s126 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(-32767); got != -1 {
-               fmt.Printf("mul_int16 32767%s-32767 = %d, wanted -1\n", `*`, got)
+       if got := add_127_int8_ssa(-128); got != -1 {
+               fmt.Printf("add_int8 127%s-128 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(-32767); got != -1 {
-               fmt.Printf("mul_int16 -32767%s32767 = %d, wanted -1\n", `*`, got)
+       if got := add_int8_127_ssa(-128); got != -1 {
+               fmt.Printf("add_int8 -128%s127 = %d, wanted -1\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(-1); got != -32767 {
-               fmt.Printf("mul_int16 32767%s-1 = %d, wanted -32767\n", `*`, got)
+       if got := add_127_int8_ssa(-127); got != 0 {
+               fmt.Printf("add_int8 127%s-127 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(-1); got != -32767 {
-               fmt.Printf("mul_int16 -1%s32767 = %d, wanted -32767\n", `*`, got)
+       if got := add_int8_127_ssa(-127); got != 0 {
+               fmt.Printf("add_int8 -127%s127 = %d, wanted 0\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 32767%s0 = %d, wanted 0\n", `*`, got)
+       if got := add_127_int8_ssa(-1); got != 126 {
+               fmt.Printf("add_int8 127%s-1 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(0); got != 0 {
-               fmt.Printf("mul_int16 0%s32767 = %d, wanted 0\n", `*`, got)
+       if got := add_int8_127_ssa(-1); got != 126 {
+               fmt.Printf("add_int8 -1%s127 = %d, wanted 126\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(1); got != 32767 {
-               fmt.Printf("mul_int16 32767%s1 = %d, wanted 32767\n", `*`, got)
+       if got := add_127_int8_ssa(0); got != 127 {
+               fmt.Printf("add_int8 127%s0 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(1); got != 32767 {
-               fmt.Printf("mul_int16 1%s32767 = %d, wanted 32767\n", `*`, got)
+       if got := add_int8_127_ssa(0); got != 127 {
+               fmt.Printf("add_int8 0%s127 = %d, wanted 127\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(32766); got != -32766 {
-               fmt.Printf("mul_int16 32767%s32766 = %d, wanted -32766\n", `*`, got)
+       if got := add_127_int8_ssa(1); got != -128 {
+               fmt.Printf("add_int8 127%s1 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(32766); got != -32766 {
-               fmt.Printf("mul_int16 32766%s32767 = %d, wanted -32766\n", `*`, got)
+       if got := add_int8_127_ssa(1); got != -128 {
+               fmt.Printf("add_int8 1%s127 = %d, wanted -128\n", `+`, got)
                failed = true
        }
 
-       if got := mul_32767_int16_ssa(32767); got != 1 {
-               fmt.Printf("mul_int16 32767%s32767 = %d, wanted 1\n", `*`, got)
+       if got := add_127_int8_ssa(126); got != -3 {
+               fmt.Printf("add_int8 127%s126 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := mul_int16_32767_ssa(32767); got != 1 {
-               fmt.Printf("mul_int16 32767%s32767 = %d, wanted 1\n", `*`, got)
+       if got := add_int8_127_ssa(126); got != -3 {
+               fmt.Printf("add_int8 126%s127 = %d, wanted -3\n", `+`, got)
                failed = true
        }
 
-       if got := mod_Neg32768_int16_ssa(-32768); got != 0 {
-               fmt.Printf("mod_int16 -32768%s-32768 = %d, wanted 0\n", `%`, got)
+       if got := add_127_int8_ssa(127); got != -2 {
+               fmt.Printf("add_int8 127%s127 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(-32768); got != 0 {
-               fmt.Printf("mod_int16 -32768%s-32768 = %d, wanted 0\n", `%`, got)
+       if got := add_int8_127_ssa(127); got != -2 {
+               fmt.Printf("add_int8 127%s127 = %d, wanted -2\n", `+`, got)
                failed = true
        }
 
-       if got := mod_Neg32768_int16_ssa(-32767); got != -1 {
-               fmt.Printf("mod_int16 -32768%s-32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(-128); got != 0 {
+               fmt.Printf("sub_int8 -128%s-128 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(-32767); got != -32767 {
-               fmt.Printf("mod_int16 -32767%s-32768 = %d, wanted -32767\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(-128); got != 0 {
+               fmt.Printf("sub_int8 -128%s-128 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32768_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 -32768%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(-127); got != -1 {
+               fmt.Printf("sub_int8 -128%s-127 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(-1); got != -1 {
-               fmt.Printf("mod_int16 -1%s-32768 = %d, wanted -1\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(-127); got != 1 {
+               fmt.Printf("sub_int8 -127%s-128 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(0); got != 0 {
-               fmt.Printf("mod_int16 0%s-32768 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(-1); got != -127 {
+               fmt.Printf("sub_int8 -128%s-1 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32768_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 -32768%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(-1); got != 127 {
+               fmt.Printf("sub_int8 -1%s-128 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(1); got != 1 {
-               fmt.Printf("mod_int16 1%s-32768 = %d, wanted 1\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(0); got != -128 {
+               fmt.Printf("sub_int8 -128%s0 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32768_int16_ssa(32766); got != -2 {
-               fmt.Printf("mod_int16 -32768%s32766 = %d, wanted -2\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(0); got != -128 {
+               fmt.Printf("sub_int8 0%s-128 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(32766); got != 32766 {
-               fmt.Printf("mod_int16 32766%s-32768 = %d, wanted 32766\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(1); got != 127 {
+               fmt.Printf("sub_int8 -128%s1 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32768_int16_ssa(32767); got != -1 {
-               fmt.Printf("mod_int16 -32768%s32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(1); got != -127 {
+               fmt.Printf("sub_int8 1%s-128 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32768_ssa(32767); got != 32767 {
-               fmt.Printf("mod_int16 32767%s-32768 = %d, wanted 32767\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(126); got != 2 {
+               fmt.Printf("sub_int8 -128%s126 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32767_int16_ssa(-32768); got != -32767 {
-               fmt.Printf("mod_int16 -32767%s-32768 = %d, wanted -32767\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(126); got != -2 {
+               fmt.Printf("sub_int8 126%s-128 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(-32768); got != -1 {
-               fmt.Printf("mod_int16 -32768%s-32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_Neg128_int8_ssa(127); got != 1 {
+               fmt.Printf("sub_int8 -128%s127 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32767_int16_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 -32767%s-32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg128_ssa(127); got != -1 {
+               fmt.Printf("sub_int8 127%s-128 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 -32767%s-32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(-128); got != 1 {
+               fmt.Printf("sub_int8 -127%s-128 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32767_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 -32767%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(-128); got != -1 {
+               fmt.Printf("sub_int8 -128%s-127 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(-1); got != -1 {
-               fmt.Printf("mod_int16 -1%s-32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(-127); got != 0 {
+               fmt.Printf("sub_int8 -127%s-127 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(0); got != 0 {
-               fmt.Printf("mod_int16 0%s-32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(-127); got != 0 {
+               fmt.Printf("sub_int8 -127%s-127 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32767_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 -32767%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(-1); got != -126 {
+               fmt.Printf("sub_int8 -127%s-1 = %d, wanted -126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(1); got != 1 {
-               fmt.Printf("mod_int16 1%s-32767 = %d, wanted 1\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(-1); got != 126 {
+               fmt.Printf("sub_int8 -1%s-127 = %d, wanted 126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32767_int16_ssa(32766); got != -1 {
-               fmt.Printf("mod_int16 -32767%s32766 = %d, wanted -1\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(0); got != -127 {
+               fmt.Printf("sub_int8 -127%s0 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(32766); got != 32766 {
-               fmt.Printf("mod_int16 32766%s-32767 = %d, wanted 32766\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(0); got != 127 {
+               fmt.Printf("sub_int8 0%s-127 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg32767_int16_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 -32767%s32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(1); got != -128 {
+               fmt.Printf("sub_int8 -127%s1 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg32767_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 32767%s-32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(1); got != -128 {
+               fmt.Printf("sub_int8 1%s-127 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int16_ssa(-32768); got != -1 {
-               fmt.Printf("mod_int16 -1%s-32768 = %d, wanted -1\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(126); got != 3 {
+               fmt.Printf("sub_int8 -127%s126 = %d, wanted 3\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(-32768); got != 0 {
-               fmt.Printf("mod_int16 -32768%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(126); got != -3 {
+               fmt.Printf("sub_int8 126%s-127 = %d, wanted -3\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int16_ssa(-32767); got != -1 {
-               fmt.Printf("mod_int16 -1%s-32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_Neg127_int8_ssa(127); got != 2 {
+               fmt.Printf("sub_int8 -127%s127 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 -32767%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg127_ssa(127); got != -2 {
+               fmt.Printf("sub_int8 127%s-127 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(-128); got != 127 {
+               fmt.Printf("sub_int8 -1%s-128 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(-128); got != -127 {
+               fmt.Printf("sub_int8 -128%s-1 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mod_int16 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(-127); got != 126 {
+               fmt.Printf("sub_int8 -1%s-127 = %d, wanted 126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(-127); got != -126 {
+               fmt.Printf("sub_int8 -127%s-1 = %d, wanted -126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(-1); got != 0 {
+               fmt.Printf("sub_int8 -1%s-1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int16_ssa(32766); got != -1 {
-               fmt.Printf("mod_int16 -1%s32766 = %d, wanted -1\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("sub_int8 -1%s-1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(32766); got != 0 {
-               fmt.Printf("mod_int16 32766%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(0); got != -1 {
+               fmt.Printf("sub_int8 -1%s0 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int16_ssa(32767); got != -1 {
-               fmt.Printf("mod_int16 -1%s32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(0); got != 1 {
+               fmt.Printf("sub_int8 0%s-1 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_Neg1_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 32767%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(1); got != -2 {
+               fmt.Printf("sub_int8 -1%s1 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_int16_ssa(-32768); got != 0 {
-               fmt.Printf("mod_int16 0%s-32768 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(1); got != 2 {
+               fmt.Printf("sub_int8 1%s-1 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_int16_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 0%s-32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(126); got != -127 {
+               fmt.Printf("sub_int8 -1%s126 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(126); got != 127 {
+               fmt.Printf("sub_int8 126%s-1 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_Neg1_int8_ssa(127); got != -128 {
+               fmt.Printf("sub_int8 -1%s127 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_int16_ssa(32766); got != 0 {
-               fmt.Printf("mod_int16 0%s32766 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_Neg1_ssa(127); got != -128 {
+               fmt.Printf("sub_int8 127%s-1 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_0_int16_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 0%s32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_0_int8_ssa(-128); got != -128 {
+               fmt.Printf("sub_int8 0%s-128 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_int16_ssa(-32768); got != 1 {
-               fmt.Printf("mod_int16 1%s-32768 = %d, wanted 1\n", `%`, got)
+       if got := sub_int8_0_ssa(-128); got != -128 {
+               fmt.Printf("sub_int8 -128%s0 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(-32768); got != 0 {
-               fmt.Printf("mod_int16 -32768%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_0_int8_ssa(-127); got != 127 {
+               fmt.Printf("sub_int8 0%s-127 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_int16_ssa(-32767); got != 1 {
-               fmt.Printf("mod_int16 1%s-32767 = %d, wanted 1\n", `%`, got)
+       if got := sub_int8_0_ssa(-127); got != -127 {
+               fmt.Printf("sub_int8 -127%s0 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 -32767%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_0_int8_ssa(-1); got != 1 {
+               fmt.Printf("sub_int8 0%s-1 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_0_ssa(-1); got != -1 {
+               fmt.Printf("sub_int8 -1%s0 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_0_int8_ssa(0); got != 0 {
+               fmt.Printf("sub_int8 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(0); got != 0 {
-               fmt.Printf("mod_int16 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_0_ssa(0); got != 0 {
+               fmt.Printf("sub_int8 0%s0 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_0_int8_ssa(1); got != -1 {
+               fmt.Printf("sub_int8 0%s1 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_0_ssa(1); got != 1 {
+               fmt.Printf("sub_int8 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_int16_ssa(32766); got != 1 {
-               fmt.Printf("mod_int16 1%s32766 = %d, wanted 1\n", `%`, got)
+       if got := sub_0_int8_ssa(126); got != -126 {
+               fmt.Printf("sub_int8 0%s126 = %d, wanted -126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(32766); got != 0 {
-               fmt.Printf("mod_int16 32766%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_0_ssa(126); got != 126 {
+               fmt.Printf("sub_int8 126%s0 = %d, wanted 126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_1_int16_ssa(32767); got != 1 {
-               fmt.Printf("mod_int16 1%s32767 = %d, wanted 1\n", `%`, got)
+       if got := sub_0_int8_ssa(127); got != -127 {
+               fmt.Printf("sub_int8 0%s127 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_1_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 32767%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_0_ssa(127); got != 127 {
+               fmt.Printf("sub_int8 127%s0 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32766_int16_ssa(-32768); got != 32766 {
-               fmt.Printf("mod_int16 32766%s-32768 = %d, wanted 32766\n", `%`, got)
+       if got := sub_1_int8_ssa(-128); got != -127 {
+               fmt.Printf("sub_int8 1%s-128 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(-32768); got != -2 {
-               fmt.Printf("mod_int16 -32768%s32766 = %d, wanted -2\n", `%`, got)
+       if got := sub_int8_1_ssa(-128); got != 127 {
+               fmt.Printf("sub_int8 -128%s1 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32766_int16_ssa(-32767); got != 32766 {
-               fmt.Printf("mod_int16 32766%s-32767 = %d, wanted 32766\n", `%`, got)
+       if got := sub_1_int8_ssa(-127); got != -128 {
+               fmt.Printf("sub_int8 1%s-127 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(-32767); got != -1 {
-               fmt.Printf("mod_int16 -32767%s32766 = %d, wanted -1\n", `%`, got)
+       if got := sub_int8_1_ssa(-127); got != -128 {
+               fmt.Printf("sub_int8 -127%s1 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32766_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 32766%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_1_int8_ssa(-1); got != 2 {
+               fmt.Printf("sub_int8 1%s-1 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(-1); got != -1 {
-               fmt.Printf("mod_int16 -1%s32766 = %d, wanted -1\n", `%`, got)
+       if got := sub_int8_1_ssa(-1); got != -2 {
+               fmt.Printf("sub_int8 -1%s1 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(0); got != 0 {
-               fmt.Printf("mod_int16 0%s32766 = %d, wanted 0\n", `%`, got)
+       if got := sub_1_int8_ssa(0); got != 1 {
+               fmt.Printf("sub_int8 1%s0 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32766_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 32766%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_1_ssa(0); got != -1 {
+               fmt.Printf("sub_int8 0%s1 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(1); got != 1 {
-               fmt.Printf("mod_int16 1%s32766 = %d, wanted 1\n", `%`, got)
+       if got := sub_1_int8_ssa(1); got != 0 {
+               fmt.Printf("sub_int8 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32766_int16_ssa(32766); got != 0 {
-               fmt.Printf("mod_int16 32766%s32766 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_1_ssa(1); got != 0 {
+               fmt.Printf("sub_int8 1%s1 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(32766); got != 0 {
-               fmt.Printf("mod_int16 32766%s32766 = %d, wanted 0\n", `%`, got)
+       if got := sub_1_int8_ssa(126); got != -125 {
+               fmt.Printf("sub_int8 1%s126 = %d, wanted -125\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32766_int16_ssa(32767); got != 32766 {
-               fmt.Printf("mod_int16 32766%s32767 = %d, wanted 32766\n", `%`, got)
+       if got := sub_int8_1_ssa(126); got != 125 {
+               fmt.Printf("sub_int8 126%s1 = %d, wanted 125\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32766_ssa(32767); got != 1 {
-               fmt.Printf("mod_int16 32767%s32766 = %d, wanted 1\n", `%`, got)
+       if got := sub_1_int8_ssa(127); got != -126 {
+               fmt.Printf("sub_int8 1%s127 = %d, wanted -126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32767_int16_ssa(-32768); got != 32767 {
-               fmt.Printf("mod_int16 32767%s-32768 = %d, wanted 32767\n", `%`, got)
+       if got := sub_int8_1_ssa(127); got != 126 {
+               fmt.Printf("sub_int8 127%s1 = %d, wanted 126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(-32768); got != -1 {
-               fmt.Printf("mod_int16 -32768%s32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_126_int8_ssa(-128); got != -2 {
+               fmt.Printf("sub_int8 126%s-128 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32767_int16_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 32767%s-32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_126_ssa(-128); got != 2 {
+               fmt.Printf("sub_int8 -128%s126 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(-32767); got != 0 {
-               fmt.Printf("mod_int16 -32767%s32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_126_int8_ssa(-127); got != -3 {
+               fmt.Printf("sub_int8 126%s-127 = %d, wanted -3\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32767_int16_ssa(-1); got != 0 {
-               fmt.Printf("mod_int16 32767%s-1 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_126_ssa(-127); got != 3 {
+               fmt.Printf("sub_int8 -127%s126 = %d, wanted 3\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(-1); got != -1 {
-               fmt.Printf("mod_int16 -1%s32767 = %d, wanted -1\n", `%`, got)
+       if got := sub_126_int8_ssa(-1); got != 127 {
+               fmt.Printf("sub_int8 126%s-1 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(0); got != 0 {
-               fmt.Printf("mod_int16 0%s32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_126_ssa(-1); got != -127 {
+               fmt.Printf("sub_int8 -1%s126 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32767_int16_ssa(1); got != 0 {
-               fmt.Printf("mod_int16 32767%s1 = %d, wanted 0\n", `%`, got)
+       if got := sub_126_int8_ssa(0); got != 126 {
+               fmt.Printf("sub_int8 126%s0 = %d, wanted 126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(1); got != 1 {
-               fmt.Printf("mod_int16 1%s32767 = %d, wanted 1\n", `%`, got)
+       if got := sub_int8_126_ssa(0); got != -126 {
+               fmt.Printf("sub_int8 0%s126 = %d, wanted -126\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32767_int16_ssa(32766); got != 1 {
-               fmt.Printf("mod_int16 32767%s32766 = %d, wanted 1\n", `%`, got)
+       if got := sub_126_int8_ssa(1); got != 125 {
+               fmt.Printf("sub_int8 126%s1 = %d, wanted 125\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(32766); got != 32766 {
-               fmt.Printf("mod_int16 32766%s32767 = %d, wanted 32766\n", `%`, got)
+       if got := sub_int8_126_ssa(1); got != -125 {
+               fmt.Printf("sub_int8 1%s126 = %d, wanted -125\n", `-`, got)
                failed = true
        }
 
-       if got := mod_32767_int16_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 32767%s32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_126_int8_ssa(126); got != 0 {
+               fmt.Printf("sub_int8 126%s126 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := mod_int16_32767_ssa(32767); got != 0 {
-               fmt.Printf("mod_int16 32767%s32767 = %d, wanted 0\n", `%`, got)
+       if got := sub_int8_126_ssa(126); got != 0 {
+               fmt.Printf("sub_int8 126%s126 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_uint8_ssa(0); got != 0 {
-               fmt.Printf("add_uint8 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := sub_126_int8_ssa(127); got != -1 {
+               fmt.Printf("sub_int8 126%s127 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_0_ssa(0); got != 0 {
-               fmt.Printf("add_uint8 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := sub_int8_126_ssa(127); got != 1 {
+               fmt.Printf("sub_int8 127%s126 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_uint8_ssa(1); got != 1 {
-               fmt.Printf("add_uint8 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := sub_127_int8_ssa(-128); got != -1 {
+               fmt.Printf("sub_int8 127%s-128 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_0_ssa(1); got != 1 {
-               fmt.Printf("add_uint8 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := sub_int8_127_ssa(-128); got != 1 {
+               fmt.Printf("sub_int8 -128%s127 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_0_uint8_ssa(255); got != 255 {
-               fmt.Printf("add_uint8 0%s255 = %d, wanted 255\n", `+`, got)
+       if got := sub_127_int8_ssa(-127); got != -2 {
+               fmt.Printf("sub_int8 127%s-127 = %d, wanted -2\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_0_ssa(255); got != 255 {
-               fmt.Printf("add_uint8 255%s0 = %d, wanted 255\n", `+`, got)
+       if got := sub_int8_127_ssa(-127); got != 2 {
+               fmt.Printf("sub_int8 -127%s127 = %d, wanted 2\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_uint8_ssa(0); got != 1 {
-               fmt.Printf("add_uint8 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := sub_127_int8_ssa(-1); got != -128 {
+               fmt.Printf("sub_int8 127%s-1 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_1_ssa(0); got != 1 {
-               fmt.Printf("add_uint8 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := sub_int8_127_ssa(-1); got != -128 {
+               fmt.Printf("sub_int8 -1%s127 = %d, wanted -128\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_uint8_ssa(1); got != 2 {
-               fmt.Printf("add_uint8 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := sub_127_int8_ssa(0); got != 127 {
+               fmt.Printf("sub_int8 127%s0 = %d, wanted 127\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_1_ssa(1); got != 2 {
-               fmt.Printf("add_uint8 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := sub_int8_127_ssa(0); got != -127 {
+               fmt.Printf("sub_int8 0%s127 = %d, wanted -127\n", `-`, got)
                failed = true
        }
 
-       if got := add_1_uint8_ssa(255); got != 0 {
-               fmt.Printf("add_uint8 1%s255 = %d, wanted 0\n", `+`, got)
+       if got := sub_127_int8_ssa(1); got != 126 {
+               fmt.Printf("sub_int8 127%s1 = %d, wanted 126\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_1_ssa(255); got != 0 {
-               fmt.Printf("add_uint8 255%s1 = %d, wanted 0\n", `+`, got)
+       if got := sub_int8_127_ssa(1); got != -126 {
+               fmt.Printf("sub_int8 1%s127 = %d, wanted -126\n", `-`, got)
                failed = true
        }
 
-       if got := add_255_uint8_ssa(0); got != 255 {
-               fmt.Printf("add_uint8 255%s0 = %d, wanted 255\n", `+`, got)
+       if got := sub_127_int8_ssa(126); got != 1 {
+               fmt.Printf("sub_int8 127%s126 = %d, wanted 1\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_255_ssa(0); got != 255 {
-               fmt.Printf("add_uint8 0%s255 = %d, wanted 255\n", `+`, got)
+       if got := sub_int8_127_ssa(126); got != -1 {
+               fmt.Printf("sub_int8 126%s127 = %d, wanted -1\n", `-`, got)
                failed = true
        }
 
-       if got := add_255_uint8_ssa(1); got != 0 {
-               fmt.Printf("add_uint8 255%s1 = %d, wanted 0\n", `+`, got)
+       if got := sub_127_int8_ssa(127); got != 0 {
+               fmt.Printf("sub_int8 127%s127 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_uint8_255_ssa(1); got != 0 {
-               fmt.Printf("add_uint8 1%s255 = %d, wanted 0\n", `+`, got)
+       if got := sub_int8_127_ssa(127); got != 0 {
+               fmt.Printf("sub_int8 127%s127 = %d, wanted 0\n", `-`, got)
                failed = true
        }
 
-       if got := add_255_uint8_ssa(255); got != 254 {
-               fmt.Printf("add_uint8 255%s255 = %d, wanted 254\n", `+`, got)
+       if got := div_Neg128_int8_ssa(-128); got != 1 {
+               fmt.Printf("div_int8 -128%s-128 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := add_uint8_255_ssa(255); got != 254 {
-               fmt.Printf("add_uint8 255%s255 = %d, wanted 254\n", `+`, got)
+       if got := div_int8_Neg128_ssa(-128); got != 1 {
+               fmt.Printf("div_int8 -128%s-128 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_0_uint8_ssa(0); got != 0 {
-               fmt.Printf("sub_uint8 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := div_Neg128_int8_ssa(-127); got != 1 {
+               fmt.Printf("div_int8 -128%s-127 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_0_ssa(0); got != 0 {
-               fmt.Printf("sub_uint8 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := div_int8_Neg128_ssa(-127); got != 0 {
+               fmt.Printf("div_int8 -127%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_0_uint8_ssa(1); got != 255 {
-               fmt.Printf("sub_uint8 0%s1 = %d, wanted 255\n", `-`, got)
+       if got := div_Neg128_int8_ssa(-1); got != -128 {
+               fmt.Printf("div_int8 -128%s-1 = %d, wanted -128\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_0_ssa(1); got != 1 {
-               fmt.Printf("sub_uint8 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := div_int8_Neg128_ssa(-1); got != 0 {
+               fmt.Printf("div_int8 -1%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_0_uint8_ssa(255); got != 1 {
-               fmt.Printf("sub_uint8 0%s255 = %d, wanted 1\n", `-`, got)
+       if got := div_int8_Neg128_ssa(0); got != 0 {
+               fmt.Printf("div_int8 0%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_0_ssa(255); got != 255 {
-               fmt.Printf("sub_uint8 255%s0 = %d, wanted 255\n", `-`, got)
+       if got := div_Neg128_int8_ssa(1); got != -128 {
+               fmt.Printf("div_int8 -128%s1 = %d, wanted -128\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_uint8_ssa(0); got != 1 {
-               fmt.Printf("sub_uint8 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := div_int8_Neg128_ssa(1); got != 0 {
+               fmt.Printf("div_int8 1%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_1_ssa(0); got != 255 {
-               fmt.Printf("sub_uint8 0%s1 = %d, wanted 255\n", `-`, got)
+       if got := div_Neg128_int8_ssa(126); got != -1 {
+               fmt.Printf("div_int8 -128%s126 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_uint8_ssa(1); got != 0 {
-               fmt.Printf("sub_uint8 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := div_int8_Neg128_ssa(126); got != 0 {
+               fmt.Printf("div_int8 126%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_1_ssa(1); got != 0 {
-               fmt.Printf("sub_uint8 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := div_Neg128_int8_ssa(127); got != -1 {
+               fmt.Printf("div_int8 -128%s127 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_1_uint8_ssa(255); got != 2 {
-               fmt.Printf("sub_uint8 1%s255 = %d, wanted 2\n", `-`, got)
+       if got := div_int8_Neg128_ssa(127); got != 0 {
+               fmt.Printf("div_int8 127%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_1_ssa(255); got != 254 {
-               fmt.Printf("sub_uint8 255%s1 = %d, wanted 254\n", `-`, got)
+       if got := div_Neg127_int8_ssa(-128); got != 0 {
+               fmt.Printf("div_int8 -127%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_255_uint8_ssa(0); got != 255 {
-               fmt.Printf("sub_uint8 255%s0 = %d, wanted 255\n", `-`, got)
+       if got := div_int8_Neg127_ssa(-128); got != 1 {
+               fmt.Printf("div_int8 -128%s-127 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_255_ssa(0); got != 1 {
-               fmt.Printf("sub_uint8 0%s255 = %d, wanted 1\n", `-`, got)
+       if got := div_Neg127_int8_ssa(-127); got != 1 {
+               fmt.Printf("div_int8 -127%s-127 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_255_uint8_ssa(1); got != 254 {
-               fmt.Printf("sub_uint8 255%s1 = %d, wanted 254\n", `-`, got)
+       if got := div_int8_Neg127_ssa(-127); got != 1 {
+               fmt.Printf("div_int8 -127%s-127 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_255_ssa(1); got != 2 {
-               fmt.Printf("sub_uint8 1%s255 = %d, wanted 2\n", `-`, got)
+       if got := div_Neg127_int8_ssa(-1); got != 127 {
+               fmt.Printf("div_int8 -127%s-1 = %d, wanted 127\n", `/`, got)
                failed = true
        }
 
-       if got := sub_255_uint8_ssa(255); got != 0 {
-               fmt.Printf("sub_uint8 255%s255 = %d, wanted 0\n", `-`, got)
+       if got := div_int8_Neg127_ssa(-1); got != 0 {
+               fmt.Printf("div_int8 -1%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := sub_uint8_255_ssa(255); got != 0 {
-               fmt.Printf("sub_uint8 255%s255 = %d, wanted 0\n", `-`, got)
+       if got := div_int8_Neg127_ssa(0); got != 0 {
+               fmt.Printf("div_int8 0%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := div_0_uint8_ssa(1); got != 0 {
-               fmt.Printf("div_uint8 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := div_Neg127_int8_ssa(1); got != -127 {
+               fmt.Printf("div_int8 -127%s1 = %d, wanted -127\n", `/`, got)
                failed = true
        }
 
-       if got := div_0_uint8_ssa(255); got != 0 {
-               fmt.Printf("div_uint8 0%s255 = %d, wanted 0\n", `/`, got)
+       if got := div_int8_Neg127_ssa(1); got != 0 {
+               fmt.Printf("div_int8 1%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := div_uint8_1_ssa(0); got != 0 {
-               fmt.Printf("div_uint8 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := div_Neg127_int8_ssa(126); got != -1 {
+               fmt.Printf("div_int8 -127%s126 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := div_1_uint8_ssa(1); got != 1 {
-               fmt.Printf("div_uint8 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := div_int8_Neg127_ssa(126); got != 0 {
+               fmt.Printf("div_int8 126%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := div_uint8_1_ssa(1); got != 1 {
-               fmt.Printf("div_uint8 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := div_Neg127_int8_ssa(127); got != -1 {
+               fmt.Printf("div_int8 -127%s127 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := div_1_uint8_ssa(255); got != 0 {
-               fmt.Printf("div_uint8 1%s255 = %d, wanted 0\n", `/`, got)
+       if got := div_int8_Neg127_ssa(127); got != -1 {
+               fmt.Printf("div_int8 127%s-127 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := div_uint8_1_ssa(255); got != 255 {
-               fmt.Printf("div_uint8 255%s1 = %d, wanted 255\n", `/`, got)
+       if got := div_Neg1_int8_ssa(-128); got != 0 {
+               fmt.Printf("div_int8 -1%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := div_uint8_255_ssa(0); got != 0 {
-               fmt.Printf("div_uint8 0%s255 = %d, wanted 0\n", `/`, got)
+       if got := div_int8_Neg1_ssa(-128); got != -128 {
+               fmt.Printf("div_int8 -128%s-1 = %d, wanted -128\n", `/`, got)
                failed = true
        }
 
-       if got := div_255_uint8_ssa(1); got != 255 {
-               fmt.Printf("div_uint8 255%s1 = %d, wanted 255\n", `/`, got)
+       if got := div_Neg1_int8_ssa(-127); got != 0 {
+               fmt.Printf("div_int8 -1%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := div_uint8_255_ssa(1); got != 0 {
-               fmt.Printf("div_uint8 1%s255 = %d, wanted 0\n", `/`, got)
+       if got := div_int8_Neg1_ssa(-127); got != 127 {
+               fmt.Printf("div_int8 -127%s-1 = %d, wanted 127\n", `/`, got)
                failed = true
        }
 
-       if got := div_255_uint8_ssa(255); got != 1 {
-               fmt.Printf("div_uint8 255%s255 = %d, wanted 1\n", `/`, got)
+       if got := div_Neg1_int8_ssa(-1); got != 1 {
+               fmt.Printf("div_int8 -1%s-1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := div_uint8_255_ssa(255); got != 1 {
-               fmt.Printf("div_uint8 255%s255 = %d, wanted 1\n", `/`, got)
+       if got := div_int8_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("div_int8 -1%s-1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_0_uint8_ssa(0); got != 0 {
-               fmt.Printf("mul_uint8 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_int8_Neg1_ssa(0); got != 0 {
+               fmt.Printf("div_int8 0%s-1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_0_ssa(0); got != 0 {
-               fmt.Printf("mul_uint8 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_Neg1_int8_ssa(1); got != -1 {
+               fmt.Printf("div_int8 -1%s1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_0_uint8_ssa(1); got != 0 {
-               fmt.Printf("mul_uint8 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := div_int8_Neg1_ssa(1); got != -1 {
+               fmt.Printf("div_int8 1%s-1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_0_ssa(1); got != 0 {
-               fmt.Printf("mul_uint8 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_Neg1_int8_ssa(126); got != 0 {
+               fmt.Printf("div_int8 -1%s126 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_0_uint8_ssa(255); got != 0 {
-               fmt.Printf("mul_uint8 0%s255 = %d, wanted 0\n", `*`, got)
+       if got := div_int8_Neg1_ssa(126); got != -126 {
+               fmt.Printf("div_int8 126%s-1 = %d, wanted -126\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_0_ssa(255); got != 0 {
-               fmt.Printf("mul_uint8 255%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_Neg1_int8_ssa(127); got != 0 {
+               fmt.Printf("div_int8 -1%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_uint8_ssa(0); got != 0 {
-               fmt.Printf("mul_uint8 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_int8_Neg1_ssa(127); got != -127 {
+               fmt.Printf("div_int8 127%s-1 = %d, wanted -127\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_1_ssa(0); got != 0 {
-               fmt.Printf("mul_uint8 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := div_0_int8_ssa(-128); got != 0 {
+               fmt.Printf("div_int8 0%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_uint8_ssa(1); got != 1 {
-               fmt.Printf("mul_uint8 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := div_0_int8_ssa(-127); got != 0 {
+               fmt.Printf("div_int8 0%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_1_ssa(1); got != 1 {
-               fmt.Printf("mul_uint8 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := div_0_int8_ssa(-1); got != 0 {
+               fmt.Printf("div_int8 0%s-1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_1_uint8_ssa(255); got != 255 {
-               fmt.Printf("mul_uint8 1%s255 = %d, wanted 255\n", `*`, got)
+       if got := div_0_int8_ssa(1); got != 0 {
+               fmt.Printf("div_int8 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_1_ssa(255); got != 255 {
-               fmt.Printf("mul_uint8 255%s1 = %d, wanted 255\n", `*`, got)
+       if got := div_0_int8_ssa(126); got != 0 {
+               fmt.Printf("div_int8 0%s126 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_255_uint8_ssa(0); got != 0 {
-               fmt.Printf("mul_uint8 255%s0 = %d, wanted 0\n", `*`, got)
+       if got := div_0_int8_ssa(127); got != 0 {
+               fmt.Printf("div_int8 0%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_255_ssa(0); got != 0 {
-               fmt.Printf("mul_uint8 0%s255 = %d, wanted 0\n", `*`, got)
+       if got := div_1_int8_ssa(-128); got != 0 {
+               fmt.Printf("div_int8 1%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_255_uint8_ssa(1); got != 255 {
-               fmt.Printf("mul_uint8 255%s1 = %d, wanted 255\n", `*`, got)
+       if got := div_int8_1_ssa(-128); got != -128 {
+               fmt.Printf("div_int8 -128%s1 = %d, wanted -128\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_255_ssa(1); got != 255 {
-               fmt.Printf("mul_uint8 1%s255 = %d, wanted 255\n", `*`, got)
+       if got := div_1_int8_ssa(-127); got != 0 {
+               fmt.Printf("div_int8 1%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := mul_255_uint8_ssa(255); got != 1 {
-               fmt.Printf("mul_uint8 255%s255 = %d, wanted 1\n", `*`, got)
+       if got := div_int8_1_ssa(-127); got != -127 {
+               fmt.Printf("div_int8 -127%s1 = %d, wanted -127\n", `/`, got)
                failed = true
        }
 
-       if got := mul_uint8_255_ssa(255); got != 1 {
-               fmt.Printf("mul_uint8 255%s255 = %d, wanted 1\n", `*`, got)
+       if got := div_1_int8_ssa(-1); got != -1 {
+               fmt.Printf("div_int8 1%s-1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_0_uint8_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint8 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := div_int8_1_ssa(-1); got != -1 {
+               fmt.Printf("div_int8 -1%s1 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_0_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint8 0%s0 = %d, wanted 0\n", `<<`, got)
+       if got := div_int8_1_ssa(0); got != 0 {
+               fmt.Printf("div_int8 0%s1 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_0_uint8_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint8 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := div_1_int8_ssa(1); got != 1 {
+               fmt.Printf("div_int8 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_0_ssa(1); got != 1 {
-               fmt.Printf("lsh_uint8 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := div_int8_1_ssa(1); got != 1 {
+               fmt.Printf("div_int8 1%s1 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_0_uint8_ssa(255); got != 0 {
-               fmt.Printf("lsh_uint8 0%s255 = %d, wanted 0\n", `<<`, got)
+       if got := div_1_int8_ssa(126); got != 0 {
+               fmt.Printf("div_int8 1%s126 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_0_ssa(255); got != 255 {
-               fmt.Printf("lsh_uint8 255%s0 = %d, wanted 255\n", `<<`, got)
+       if got := div_int8_1_ssa(126); got != 126 {
+               fmt.Printf("div_int8 126%s1 = %d, wanted 126\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_1_uint8_ssa(0); got != 1 {
-               fmt.Printf("lsh_uint8 1%s0 = %d, wanted 1\n", `<<`, got)
+       if got := div_1_int8_ssa(127); got != 0 {
+               fmt.Printf("div_int8 1%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_1_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint8 0%s1 = %d, wanted 0\n", `<<`, got)
+       if got := div_int8_1_ssa(127); got != 127 {
+               fmt.Printf("div_int8 127%s1 = %d, wanted 127\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_1_uint8_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint8 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := div_126_int8_ssa(-128); got != 0 {
+               fmt.Printf("div_int8 126%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_1_ssa(1); got != 2 {
-               fmt.Printf("lsh_uint8 1%s1 = %d, wanted 2\n", `<<`, got)
+       if got := div_int8_126_ssa(-128); got != -1 {
+               fmt.Printf("div_int8 -128%s126 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_1_uint8_ssa(255); got != 0 {
-               fmt.Printf("lsh_uint8 1%s255 = %d, wanted 0\n", `<<`, got)
+       if got := div_126_int8_ssa(-127); got != 0 {
+               fmt.Printf("div_int8 126%s-127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_1_ssa(255); got != 254 {
-               fmt.Printf("lsh_uint8 255%s1 = %d, wanted 254\n", `<<`, got)
+       if got := div_int8_126_ssa(-127); got != -1 {
+               fmt.Printf("div_int8 -127%s126 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_255_uint8_ssa(0); got != 255 {
-               fmt.Printf("lsh_uint8 255%s0 = %d, wanted 255\n", `<<`, got)
+       if got := div_126_int8_ssa(-1); got != -126 {
+               fmt.Printf("div_int8 126%s-1 = %d, wanted -126\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_255_ssa(0); got != 0 {
-               fmt.Printf("lsh_uint8 0%s255 = %d, wanted 0\n", `<<`, got)
+       if got := div_int8_126_ssa(-1); got != 0 {
+               fmt.Printf("div_int8 -1%s126 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_255_uint8_ssa(1); got != 254 {
-               fmt.Printf("lsh_uint8 255%s1 = %d, wanted 254\n", `<<`, got)
+       if got := div_int8_126_ssa(0); got != 0 {
+               fmt.Printf("div_int8 0%s126 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_255_ssa(1); got != 0 {
-               fmt.Printf("lsh_uint8 1%s255 = %d, wanted 0\n", `<<`, got)
+       if got := div_126_int8_ssa(1); got != 126 {
+               fmt.Printf("div_int8 126%s1 = %d, wanted 126\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_255_uint8_ssa(255); got != 0 {
-               fmt.Printf("lsh_uint8 255%s255 = %d, wanted 0\n", `<<`, got)
+       if got := div_int8_126_ssa(1); got != 0 {
+               fmt.Printf("div_int8 1%s126 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := lsh_uint8_255_ssa(255); got != 0 {
-               fmt.Printf("lsh_uint8 255%s255 = %d, wanted 0\n", `<<`, got)
+       if got := div_126_int8_ssa(126); got != 1 {
+               fmt.Printf("div_int8 126%s126 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_0_uint8_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint8 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_126_ssa(126); got != 1 {
+               fmt.Printf("div_int8 126%s126 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_0_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint8 0%s0 = %d, wanted 0\n", `>>`, got)
+       if got := div_126_int8_ssa(127); got != 0 {
+               fmt.Printf("div_int8 126%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_0_uint8_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint8 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_126_ssa(127); got != 1 {
+               fmt.Printf("div_int8 127%s126 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_0_ssa(1); got != 1 {
-               fmt.Printf("rsh_uint8 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := div_127_int8_ssa(-128); got != 0 {
+               fmt.Printf("div_int8 127%s-128 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_0_uint8_ssa(255); got != 0 {
-               fmt.Printf("rsh_uint8 0%s255 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_127_ssa(-128); got != -1 {
+               fmt.Printf("div_int8 -128%s127 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_0_ssa(255); got != 255 {
-               fmt.Printf("rsh_uint8 255%s0 = %d, wanted 255\n", `>>`, got)
+       if got := div_127_int8_ssa(-127); got != -1 {
+               fmt.Printf("div_int8 127%s-127 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_1_uint8_ssa(0); got != 1 {
-               fmt.Printf("rsh_uint8 1%s0 = %d, wanted 1\n", `>>`, got)
+       if got := div_int8_127_ssa(-127); got != -1 {
+               fmt.Printf("div_int8 -127%s127 = %d, wanted -1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_1_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint8 0%s1 = %d, wanted 0\n", `>>`, got)
+       if got := div_127_int8_ssa(-1); got != -127 {
+               fmt.Printf("div_int8 127%s-1 = %d, wanted -127\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_1_uint8_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint8 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_127_ssa(-1); got != 0 {
+               fmt.Printf("div_int8 -1%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_1_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint8 1%s1 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_127_ssa(0); got != 0 {
+               fmt.Printf("div_int8 0%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_1_uint8_ssa(255); got != 0 {
-               fmt.Printf("rsh_uint8 1%s255 = %d, wanted 0\n", `>>`, got)
+       if got := div_127_int8_ssa(1); got != 127 {
+               fmt.Printf("div_int8 127%s1 = %d, wanted 127\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_1_ssa(255); got != 127 {
-               fmt.Printf("rsh_uint8 255%s1 = %d, wanted 127\n", `>>`, got)
+       if got := div_int8_127_ssa(1); got != 0 {
+               fmt.Printf("div_int8 1%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_255_uint8_ssa(0); got != 255 {
-               fmt.Printf("rsh_uint8 255%s0 = %d, wanted 255\n", `>>`, got)
+       if got := div_127_int8_ssa(126); got != 1 {
+               fmt.Printf("div_int8 127%s126 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_255_ssa(0); got != 0 {
-               fmt.Printf("rsh_uint8 0%s255 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_127_ssa(126); got != 0 {
+               fmt.Printf("div_int8 126%s127 = %d, wanted 0\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_255_uint8_ssa(1); got != 127 {
-               fmt.Printf("rsh_uint8 255%s1 = %d, wanted 127\n", `>>`, got)
+       if got := div_127_int8_ssa(127); got != 1 {
+               fmt.Printf("div_int8 127%s127 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_uint8_255_ssa(1); got != 0 {
-               fmt.Printf("rsh_uint8 1%s255 = %d, wanted 0\n", `>>`, got)
+       if got := div_int8_127_ssa(127); got != 1 {
+               fmt.Printf("div_int8 127%s127 = %d, wanted 1\n", `/`, got)
                failed = true
        }
 
-       if got := rsh_255_uint8_ssa(255); got != 0 {
-               fmt.Printf("rsh_uint8 255%s255 = %d, wanted 0\n", `>>`, got)
+       if got := mul_Neg128_int8_ssa(-128); got != 0 {
+               fmt.Printf("mul_int8 -128%s-128 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := rsh_uint8_255_ssa(255); got != 0 {
-               fmt.Printf("rsh_uint8 255%s255 = %d, wanted 0\n", `>>`, got)
+       if got := mul_int8_Neg128_ssa(-128); got != 0 {
+               fmt.Printf("mul_int8 -128%s-128 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mod_0_uint8_ssa(1); got != 0 {
-               fmt.Printf("mod_uint8 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := mul_Neg128_int8_ssa(-127); got != -128 {
+               fmt.Printf("mul_int8 -128%s-127 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_0_uint8_ssa(255); got != 0 {
-               fmt.Printf("mod_uint8 0%s255 = %d, wanted 0\n", `%`, got)
+       if got := mul_int8_Neg128_ssa(-127); got != -128 {
+               fmt.Printf("mul_int8 -127%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_uint8_1_ssa(0); got != 0 {
-               fmt.Printf("mod_uint8 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := mul_Neg128_int8_ssa(-1); got != -128 {
+               fmt.Printf("mul_int8 -128%s-1 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_1_uint8_ssa(1); got != 0 {
-               fmt.Printf("mod_uint8 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := mul_int8_Neg128_ssa(-1); got != -128 {
+               fmt.Printf("mul_int8 -1%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_uint8_1_ssa(1); got != 0 {
-               fmt.Printf("mod_uint8 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := mul_Neg128_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 -128%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mod_1_uint8_ssa(255); got != 1 {
-               fmt.Printf("mod_uint8 1%s255 = %d, wanted 1\n", `%`, got)
+       if got := mul_int8_Neg128_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s-128 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mod_uint8_1_ssa(255); got != 0 {
-               fmt.Printf("mod_uint8 255%s1 = %d, wanted 0\n", `%`, got)
+       if got := mul_Neg128_int8_ssa(1); got != -128 {
+               fmt.Printf("mul_int8 -128%s1 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_uint8_255_ssa(0); got != 0 {
-               fmt.Printf("mod_uint8 0%s255 = %d, wanted 0\n", `%`, got)
+       if got := mul_int8_Neg128_ssa(1); got != -128 {
+               fmt.Printf("mul_int8 1%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_255_uint8_ssa(1); got != 0 {
-               fmt.Printf("mod_uint8 255%s1 = %d, wanted 0\n", `%`, got)
+       if got := mul_Neg128_int8_ssa(126); got != 0 {
+               fmt.Printf("mul_int8 -128%s126 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mod_uint8_255_ssa(1); got != 1 {
-               fmt.Printf("mod_uint8 1%s255 = %d, wanted 1\n", `%`, got)
+       if got := mul_int8_Neg128_ssa(126); got != 0 {
+               fmt.Printf("mul_int8 126%s-128 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := mod_255_uint8_ssa(255); got != 0 {
-               fmt.Printf("mod_uint8 255%s255 = %d, wanted 0\n", `%`, got)
+       if got := mul_Neg128_int8_ssa(127); got != -128 {
+               fmt.Printf("mul_int8 -128%s127 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := mod_uint8_255_ssa(255); got != 0 {
-               fmt.Printf("mod_uint8 255%s255 = %d, wanted 0\n", `%`, got)
+       if got := mul_int8_Neg128_ssa(127); got != -128 {
+               fmt.Printf("mul_int8 127%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(-128); got != 0 {
-               fmt.Printf("add_int8 -128%s-128 = %d, wanted 0\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 -127%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(-128); got != 0 {
-               fmt.Printf("add_int8 -128%s-128 = %d, wanted 0\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 -128%s-127 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(-127); got != 1 {
-               fmt.Printf("add_int8 -128%s-127 = %d, wanted 1\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(-127); got != 1 {
+               fmt.Printf("mul_int8 -127%s-127 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(-127); got != 1 {
-               fmt.Printf("add_int8 -127%s-128 = %d, wanted 1\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(-127); got != 1 {
+               fmt.Printf("mul_int8 -127%s-127 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(-1); got != 127 {
-               fmt.Printf("add_int8 -128%s-1 = %d, wanted 127\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(-1); got != 127 {
+               fmt.Printf("mul_int8 -127%s-1 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(-1); got != 127 {
-               fmt.Printf("add_int8 -1%s-128 = %d, wanted 127\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(-1); got != 127 {
+               fmt.Printf("mul_int8 -1%s-127 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(0); got != -128 {
-               fmt.Printf("add_int8 -128%s0 = %d, wanted -128\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 -127%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(0); got != -128 {
-               fmt.Printf("add_int8 0%s-128 = %d, wanted -128\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s-127 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(1); got != -127 {
-               fmt.Printf("add_int8 -128%s1 = %d, wanted -127\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(1); got != -127 {
+               fmt.Printf("mul_int8 -127%s1 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(1); got != -127 {
-               fmt.Printf("add_int8 1%s-128 = %d, wanted -127\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(1); got != -127 {
+               fmt.Printf("mul_int8 1%s-127 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(126); got != -2 {
-               fmt.Printf("add_int8 -128%s126 = %d, wanted -2\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(126); got != 126 {
+               fmt.Printf("mul_int8 -127%s126 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(126); got != -2 {
-               fmt.Printf("add_int8 126%s-128 = %d, wanted -2\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(126); got != 126 {
+               fmt.Printf("mul_int8 126%s-127 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg128_int8_ssa(127); got != -1 {
-               fmt.Printf("add_int8 -128%s127 = %d, wanted -1\n", `+`, got)
+       if got := mul_Neg127_int8_ssa(127); got != -1 {
+               fmt.Printf("mul_int8 -127%s127 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg128_ssa(127); got != -1 {
-               fmt.Printf("add_int8 127%s-128 = %d, wanted -1\n", `+`, got)
+       if got := mul_int8_Neg127_ssa(127); got != -1 {
+               fmt.Printf("mul_int8 127%s-127 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(-128); got != 1 {
-               fmt.Printf("add_int8 -127%s-128 = %d, wanted 1\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 -1%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(-128); got != 1 {
-               fmt.Printf("add_int8 -128%s-127 = %d, wanted 1\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 -128%s-1 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(-127); got != 2 {
-               fmt.Printf("add_int8 -127%s-127 = %d, wanted 2\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(-127); got != 127 {
+               fmt.Printf("mul_int8 -1%s-127 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(-127); got != 2 {
-               fmt.Printf("add_int8 -127%s-127 = %d, wanted 2\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(-127); got != 127 {
+               fmt.Printf("mul_int8 -127%s-1 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(-1); got != -128 {
-               fmt.Printf("add_int8 -127%s-1 = %d, wanted -128\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(-1); got != 1 {
+               fmt.Printf("mul_int8 -1%s-1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(-1); got != -128 {
-               fmt.Printf("add_int8 -1%s-127 = %d, wanted -128\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(-1); got != 1 {
+               fmt.Printf("mul_int8 -1%s-1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(0); got != -127 {
-               fmt.Printf("add_int8 -127%s0 = %d, wanted -127\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 -1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(0); got != -127 {
-               fmt.Printf("add_int8 0%s-127 = %d, wanted -127\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s-1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(1); got != -126 {
-               fmt.Printf("add_int8 -127%s1 = %d, wanted -126\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(1); got != -1 {
+               fmt.Printf("mul_int8 -1%s1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(1); got != -126 {
-               fmt.Printf("add_int8 1%s-127 = %d, wanted -126\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(1); got != -1 {
+               fmt.Printf("mul_int8 1%s-1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(126); got != -1 {
-               fmt.Printf("add_int8 -127%s126 = %d, wanted -1\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(126); got != -126 {
+               fmt.Printf("mul_int8 -1%s126 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(126); got != -1 {
-               fmt.Printf("add_int8 126%s-127 = %d, wanted -1\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(126); got != -126 {
+               fmt.Printf("mul_int8 126%s-1 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg127_int8_ssa(127); got != 0 {
-               fmt.Printf("add_int8 -127%s127 = %d, wanted 0\n", `+`, got)
+       if got := mul_Neg1_int8_ssa(127); got != -127 {
+               fmt.Printf("mul_int8 -1%s127 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg127_ssa(127); got != 0 {
-               fmt.Printf("add_int8 127%s-127 = %d, wanted 0\n", `+`, got)
+       if got := mul_int8_Neg1_ssa(127); got != -127 {
+               fmt.Printf("mul_int8 127%s-1 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(-128); got != 127 {
-               fmt.Printf("add_int8 -1%s-128 = %d, wanted 127\n", `+`, got)
+       if got := mul_0_int8_ssa(-128); got != 0 {
+               fmt.Printf("mul_int8 0%s-128 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(-128); got != 127 {
-               fmt.Printf("add_int8 -128%s-1 = %d, wanted 127\n", `+`, got)
+       if got := mul_int8_0_ssa(-128); got != 0 {
+               fmt.Printf("mul_int8 -128%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(-127); got != -128 {
-               fmt.Printf("add_int8 -1%s-127 = %d, wanted -128\n", `+`, got)
+       if got := mul_0_int8_ssa(-127); got != 0 {
+               fmt.Printf("mul_int8 0%s-127 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(-127); got != -128 {
-               fmt.Printf("add_int8 -127%s-1 = %d, wanted -128\n", `+`, got)
+       if got := mul_int8_0_ssa(-127); got != 0 {
+               fmt.Printf("mul_int8 -127%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(-1); got != -2 {
-               fmt.Printf("add_int8 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := mul_0_int8_ssa(-1); got != 0 {
+               fmt.Printf("mul_int8 0%s-1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(-1); got != -2 {
-               fmt.Printf("add_int8 -1%s-1 = %d, wanted -2\n", `+`, got)
+       if got := mul_int8_0_ssa(-1); got != 0 {
+               fmt.Printf("mul_int8 -1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(0); got != -1 {
-               fmt.Printf("add_int8 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := mul_0_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(0); got != -1 {
-               fmt.Printf("add_int8 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := mul_int8_0_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(1); got != 0 {
-               fmt.Printf("add_int8 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := mul_0_int8_ssa(1); got != 0 {
+               fmt.Printf("mul_int8 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(1); got != 0 {
-               fmt.Printf("add_int8 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := mul_int8_0_ssa(1); got != 0 {
+               fmt.Printf("mul_int8 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(126); got != 125 {
-               fmt.Printf("add_int8 -1%s126 = %d, wanted 125\n", `+`, got)
+       if got := mul_0_int8_ssa(126); got != 0 {
+               fmt.Printf("mul_int8 0%s126 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(126); got != 125 {
-               fmt.Printf("add_int8 126%s-1 = %d, wanted 125\n", `+`, got)
+       if got := mul_int8_0_ssa(126); got != 0 {
+               fmt.Printf("mul_int8 126%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_Neg1_int8_ssa(127); got != 126 {
-               fmt.Printf("add_int8 -1%s127 = %d, wanted 126\n", `+`, got)
+       if got := mul_0_int8_ssa(127); got != 0 {
+               fmt.Printf("mul_int8 0%s127 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_Neg1_ssa(127); got != 126 {
-               fmt.Printf("add_int8 127%s-1 = %d, wanted 126\n", `+`, got)
+       if got := mul_int8_0_ssa(127); got != 0 {
+               fmt.Printf("mul_int8 127%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(-128); got != -128 {
-               fmt.Printf("add_int8 0%s-128 = %d, wanted -128\n", `+`, got)
+       if got := mul_1_int8_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 1%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(-128); got != -128 {
-               fmt.Printf("add_int8 -128%s0 = %d, wanted -128\n", `+`, got)
+       if got := mul_int8_1_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 -128%s1 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(-127); got != -127 {
-               fmt.Printf("add_int8 0%s-127 = %d, wanted -127\n", `+`, got)
+       if got := mul_1_int8_ssa(-127); got != -127 {
+               fmt.Printf("mul_int8 1%s-127 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(-127); got != -127 {
-               fmt.Printf("add_int8 -127%s0 = %d, wanted -127\n", `+`, got)
+       if got := mul_int8_1_ssa(-127); got != -127 {
+               fmt.Printf("mul_int8 -127%s1 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(-1); got != -1 {
-               fmt.Printf("add_int8 0%s-1 = %d, wanted -1\n", `+`, got)
+       if got := mul_1_int8_ssa(-1); got != -1 {
+               fmt.Printf("mul_int8 1%s-1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(-1); got != -1 {
-               fmt.Printf("add_int8 -1%s0 = %d, wanted -1\n", `+`, got)
+       if got := mul_int8_1_ssa(-1); got != -1 {
+               fmt.Printf("mul_int8 -1%s1 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(0); got != 0 {
-               fmt.Printf("add_int8 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := mul_1_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 1%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(0); got != 0 {
-               fmt.Printf("add_int8 0%s0 = %d, wanted 0\n", `+`, got)
+       if got := mul_int8_1_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s1 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(1); got != 1 {
-               fmt.Printf("add_int8 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := mul_1_int8_ssa(1); got != 1 {
+               fmt.Printf("mul_int8 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(1); got != 1 {
-               fmt.Printf("add_int8 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := mul_int8_1_ssa(1); got != 1 {
+               fmt.Printf("mul_int8 1%s1 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(126); got != 126 {
-               fmt.Printf("add_int8 0%s126 = %d, wanted 126\n", `+`, got)
+       if got := mul_1_int8_ssa(126); got != 126 {
+               fmt.Printf("mul_int8 1%s126 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(126); got != 126 {
-               fmt.Printf("add_int8 126%s0 = %d, wanted 126\n", `+`, got)
+       if got := mul_int8_1_ssa(126); got != 126 {
+               fmt.Printf("mul_int8 126%s1 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_0_int8_ssa(127); got != 127 {
-               fmt.Printf("add_int8 0%s127 = %d, wanted 127\n", `+`, got)
+       if got := mul_1_int8_ssa(127); got != 127 {
+               fmt.Printf("mul_int8 1%s127 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_0_ssa(127); got != 127 {
-               fmt.Printf("add_int8 127%s0 = %d, wanted 127\n", `+`, got)
+       if got := mul_int8_1_ssa(127); got != 127 {
+               fmt.Printf("mul_int8 127%s1 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(-128); got != -127 {
-               fmt.Printf("add_int8 1%s-128 = %d, wanted -127\n", `+`, got)
+       if got := mul_126_int8_ssa(-128); got != 0 {
+               fmt.Printf("mul_int8 126%s-128 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(-128); got != -127 {
-               fmt.Printf("add_int8 -128%s1 = %d, wanted -127\n", `+`, got)
+       if got := mul_int8_126_ssa(-128); got != 0 {
+               fmt.Printf("mul_int8 -128%s126 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(-127); got != -126 {
-               fmt.Printf("add_int8 1%s-127 = %d, wanted -126\n", `+`, got)
+       if got := mul_126_int8_ssa(-127); got != 126 {
+               fmt.Printf("mul_int8 126%s-127 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(-127); got != -126 {
-               fmt.Printf("add_int8 -127%s1 = %d, wanted -126\n", `+`, got)
+       if got := mul_int8_126_ssa(-127); got != 126 {
+               fmt.Printf("mul_int8 -127%s126 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(-1); got != 0 {
-               fmt.Printf("add_int8 1%s-1 = %d, wanted 0\n", `+`, got)
+       if got := mul_126_int8_ssa(-1); got != -126 {
+               fmt.Printf("mul_int8 126%s-1 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(-1); got != 0 {
-               fmt.Printf("add_int8 -1%s1 = %d, wanted 0\n", `+`, got)
+       if got := mul_int8_126_ssa(-1); got != -126 {
+               fmt.Printf("mul_int8 -1%s126 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(0); got != 1 {
-               fmt.Printf("add_int8 1%s0 = %d, wanted 1\n", `+`, got)
+       if got := mul_126_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 126%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(0); got != 1 {
-               fmt.Printf("add_int8 0%s1 = %d, wanted 1\n", `+`, got)
+       if got := mul_int8_126_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s126 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(1); got != 2 {
-               fmt.Printf("add_int8 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := mul_126_int8_ssa(1); got != 126 {
+               fmt.Printf("mul_int8 126%s1 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(1); got != 2 {
-               fmt.Printf("add_int8 1%s1 = %d, wanted 2\n", `+`, got)
+       if got := mul_int8_126_ssa(1); got != 126 {
+               fmt.Printf("mul_int8 1%s126 = %d, wanted 126\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(126); got != 127 {
-               fmt.Printf("add_int8 1%s126 = %d, wanted 127\n", `+`, got)
+       if got := mul_126_int8_ssa(126); got != 4 {
+               fmt.Printf("mul_int8 126%s126 = %d, wanted 4\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(126); got != 127 {
-               fmt.Printf("add_int8 126%s1 = %d, wanted 127\n", `+`, got)
+       if got := mul_int8_126_ssa(126); got != 4 {
+               fmt.Printf("mul_int8 126%s126 = %d, wanted 4\n", `*`, got)
                failed = true
        }
 
-       if got := add_1_int8_ssa(127); got != -128 {
-               fmt.Printf("add_int8 1%s127 = %d, wanted -128\n", `+`, got)
+       if got := mul_126_int8_ssa(127); got != -126 {
+               fmt.Printf("mul_int8 126%s127 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_1_ssa(127); got != -128 {
-               fmt.Printf("add_int8 127%s1 = %d, wanted -128\n", `+`, got)
+       if got := mul_int8_126_ssa(127); got != -126 {
+               fmt.Printf("mul_int8 127%s126 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(-128); got != -2 {
-               fmt.Printf("add_int8 126%s-128 = %d, wanted -2\n", `+`, got)
+       if got := mul_127_int8_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 127%s-128 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(-128); got != -2 {
-               fmt.Printf("add_int8 -128%s126 = %d, wanted -2\n", `+`, got)
+       if got := mul_int8_127_ssa(-128); got != -128 {
+               fmt.Printf("mul_int8 -128%s127 = %d, wanted -128\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(-127); got != -1 {
-               fmt.Printf("add_int8 126%s-127 = %d, wanted -1\n", `+`, got)
+       if got := mul_127_int8_ssa(-127); got != -1 {
+               fmt.Printf("mul_int8 127%s-127 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(-127); got != -1 {
-               fmt.Printf("add_int8 -127%s126 = %d, wanted -1\n", `+`, got)
+       if got := mul_int8_127_ssa(-127); got != -1 {
+               fmt.Printf("mul_int8 -127%s127 = %d, wanted -1\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(-1); got != 125 {
-               fmt.Printf("add_int8 126%s-1 = %d, wanted 125\n", `+`, got)
+       if got := mul_127_int8_ssa(-1); got != -127 {
+               fmt.Printf("mul_int8 127%s-1 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(-1); got != 125 {
-               fmt.Printf("add_int8 -1%s126 = %d, wanted 125\n", `+`, got)
+       if got := mul_int8_127_ssa(-1); got != -127 {
+               fmt.Printf("mul_int8 -1%s127 = %d, wanted -127\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(0); got != 126 {
-               fmt.Printf("add_int8 126%s0 = %d, wanted 126\n", `+`, got)
+       if got := mul_127_int8_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 127%s0 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(0); got != 126 {
-               fmt.Printf("add_int8 0%s126 = %d, wanted 126\n", `+`, got)
+       if got := mul_int8_127_ssa(0); got != 0 {
+               fmt.Printf("mul_int8 0%s127 = %d, wanted 0\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(1); got != 127 {
-               fmt.Printf("add_int8 126%s1 = %d, wanted 127\n", `+`, got)
+       if got := mul_127_int8_ssa(1); got != 127 {
+               fmt.Printf("mul_int8 127%s1 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(1); got != 127 {
-               fmt.Printf("add_int8 1%s126 = %d, wanted 127\n", `+`, got)
+       if got := mul_int8_127_ssa(1); got != 127 {
+               fmt.Printf("mul_int8 1%s127 = %d, wanted 127\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(126); got != -4 {
-               fmt.Printf("add_int8 126%s126 = %d, wanted -4\n", `+`, got)
+       if got := mul_127_int8_ssa(126); got != -126 {
+               fmt.Printf("mul_int8 127%s126 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(126); got != -4 {
-               fmt.Printf("add_int8 126%s126 = %d, wanted -4\n", `+`, got)
+       if got := mul_int8_127_ssa(126); got != -126 {
+               fmt.Printf("mul_int8 126%s127 = %d, wanted -126\n", `*`, got)
                failed = true
        }
 
-       if got := add_126_int8_ssa(127); got != -3 {
-               fmt.Printf("add_int8 126%s127 = %d, wanted -3\n", `+`, got)
+       if got := mul_127_int8_ssa(127); got != 1 {
+               fmt.Printf("mul_int8 127%s127 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_int8_126_ssa(127); got != -3 {
-               fmt.Printf("add_int8 127%s126 = %d, wanted -3\n", `+`, got)
+       if got := mul_int8_127_ssa(127); got != 1 {
+               fmt.Printf("mul_int8 127%s127 = %d, wanted 1\n", `*`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(-128); got != -1 {
-               fmt.Printf("add_int8 127%s-128 = %d, wanted -1\n", `+`, got)
+       if got := mod_Neg128_int8_ssa(-128); got != 0 {
+               fmt.Printf("mod_int8 -128%s-128 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(-128); got != -1 {
-               fmt.Printf("add_int8 -128%s127 = %d, wanted -1\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(-128); got != 0 {
+               fmt.Printf("mod_int8 -128%s-128 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(-127); got != 0 {
-               fmt.Printf("add_int8 127%s-127 = %d, wanted 0\n", `+`, got)
+       if got := mod_Neg128_int8_ssa(-127); got != -1 {
+               fmt.Printf("mod_int8 -128%s-127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(-127); got != 0 {
-               fmt.Printf("add_int8 -127%s127 = %d, wanted 0\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(-127); got != -127 {
+               fmt.Printf("mod_int8 -127%s-128 = %d, wanted -127\n", `%`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(-1); got != 126 {
-               fmt.Printf("add_int8 127%s-1 = %d, wanted 126\n", `+`, got)
+       if got := mod_Neg128_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 -128%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(-1); got != 126 {
-               fmt.Printf("add_int8 -1%s127 = %d, wanted 126\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(-1); got != -1 {
+               fmt.Printf("mod_int8 -1%s-128 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(0); got != 127 {
-               fmt.Printf("add_int8 127%s0 = %d, wanted 127\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(0); got != 0 {
+               fmt.Printf("mod_int8 0%s-128 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(0); got != 127 {
-               fmt.Printf("add_int8 0%s127 = %d, wanted 127\n", `+`, got)
+       if got := mod_Neg128_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 -128%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(1); got != -128 {
-               fmt.Printf("add_int8 127%s1 = %d, wanted -128\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(1); got != 1 {
+               fmt.Printf("mod_int8 1%s-128 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(1); got != -128 {
-               fmt.Printf("add_int8 1%s127 = %d, wanted -128\n", `+`, got)
+       if got := mod_Neg128_int8_ssa(126); got != -2 {
+               fmt.Printf("mod_int8 -128%s126 = %d, wanted -2\n", `%`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(126); got != -3 {
-               fmt.Printf("add_int8 127%s126 = %d, wanted -3\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(126); got != 126 {
+               fmt.Printf("mod_int8 126%s-128 = %d, wanted 126\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(126); got != -3 {
-               fmt.Printf("add_int8 126%s127 = %d, wanted -3\n", `+`, got)
+       if got := mod_Neg128_int8_ssa(127); got != -1 {
+               fmt.Printf("mod_int8 -128%s127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := add_127_int8_ssa(127); got != -2 {
-               fmt.Printf("add_int8 127%s127 = %d, wanted -2\n", `+`, got)
+       if got := mod_int8_Neg128_ssa(127); got != 127 {
+               fmt.Printf("mod_int8 127%s-128 = %d, wanted 127\n", `%`, got)
                failed = true
        }
 
-       if got := add_int8_127_ssa(127); got != -2 {
-               fmt.Printf("add_int8 127%s127 = %d, wanted -2\n", `+`, got)
+       if got := mod_Neg127_int8_ssa(-128); got != -127 {
+               fmt.Printf("mod_int8 -127%s-128 = %d, wanted -127\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(-128); got != 0 {
-               fmt.Printf("sub_int8 -128%s-128 = %d, wanted 0\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(-128); got != -1 {
+               fmt.Printf("mod_int8 -128%s-127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(-128); got != 0 {
-               fmt.Printf("sub_int8 -128%s-128 = %d, wanted 0\n", `-`, got)
+       if got := mod_Neg127_int8_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 -127%s-127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(-127); got != -1 {
-               fmt.Printf("sub_int8 -128%s-127 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 -127%s-127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(-127); got != 1 {
-               fmt.Printf("sub_int8 -127%s-128 = %d, wanted 1\n", `-`, got)
+       if got := mod_Neg127_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 -127%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(-1); got != -127 {
-               fmt.Printf("sub_int8 -128%s-1 = %d, wanted -127\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(-1); got != -1 {
+               fmt.Printf("mod_int8 -1%s-127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(-1); got != 127 {
-               fmt.Printf("sub_int8 -1%s-128 = %d, wanted 127\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(0); got != 0 {
+               fmt.Printf("mod_int8 0%s-127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(0); got != -128 {
-               fmt.Printf("sub_int8 -128%s0 = %d, wanted -128\n", `-`, got)
+       if got := mod_Neg127_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 -127%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(0); got != -128 {
-               fmt.Printf("sub_int8 0%s-128 = %d, wanted -128\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(1); got != 1 {
+               fmt.Printf("mod_int8 1%s-127 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(1); got != 127 {
-               fmt.Printf("sub_int8 -128%s1 = %d, wanted 127\n", `-`, got)
+       if got := mod_Neg127_int8_ssa(126); got != -1 {
+               fmt.Printf("mod_int8 -127%s126 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(1); got != -127 {
-               fmt.Printf("sub_int8 1%s-128 = %d, wanted -127\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(126); got != 126 {
+               fmt.Printf("mod_int8 126%s-127 = %d, wanted 126\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(126); got != 2 {
-               fmt.Printf("sub_int8 -128%s126 = %d, wanted 2\n", `-`, got)
+       if got := mod_Neg127_int8_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 -127%s127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(126); got != -2 {
-               fmt.Printf("sub_int8 126%s-128 = %d, wanted -2\n", `-`, got)
+       if got := mod_int8_Neg127_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 127%s-127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg128_int8_ssa(127); got != 1 {
-               fmt.Printf("sub_int8 -128%s127 = %d, wanted 1\n", `-`, got)
+       if got := mod_Neg1_int8_ssa(-128); got != -1 {
+               fmt.Printf("mod_int8 -1%s-128 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg128_ssa(127); got != -1 {
-               fmt.Printf("sub_int8 127%s-128 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(-128); got != 0 {
+               fmt.Printf("mod_int8 -128%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(-128); got != 1 {
-               fmt.Printf("sub_int8 -127%s-128 = %d, wanted 1\n", `-`, got)
+       if got := mod_Neg1_int8_ssa(-127); got != -1 {
+               fmt.Printf("mod_int8 -1%s-127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(-128); got != -1 {
-               fmt.Printf("sub_int8 -128%s-127 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 -127%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(-127); got != 0 {
-               fmt.Printf("sub_int8 -127%s-127 = %d, wanted 0\n", `-`, got)
+       if got := mod_Neg1_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 -1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(-127); got != 0 {
-               fmt.Printf("sub_int8 -127%s-127 = %d, wanted 0\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 -1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(-1); got != -126 {
-               fmt.Printf("sub_int8 -127%s-1 = %d, wanted -126\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(0); got != 0 {
+               fmt.Printf("mod_int8 0%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(-1); got != 126 {
-               fmt.Printf("sub_int8 -1%s-127 = %d, wanted 126\n", `-`, got)
+       if got := mod_Neg1_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 -1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(0); got != -127 {
-               fmt.Printf("sub_int8 -127%s0 = %d, wanted -127\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(0); got != 127 {
-               fmt.Printf("sub_int8 0%s-127 = %d, wanted 127\n", `-`, got)
+       if got := mod_Neg1_int8_ssa(126); got != -1 {
+               fmt.Printf("mod_int8 -1%s126 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(1); got != -128 {
-               fmt.Printf("sub_int8 -127%s1 = %d, wanted -128\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(126); got != 0 {
+               fmt.Printf("mod_int8 126%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(1); got != -128 {
-               fmt.Printf("sub_int8 1%s-127 = %d, wanted -128\n", `-`, got)
+       if got := mod_Neg1_int8_ssa(127); got != -1 {
+               fmt.Printf("mod_int8 -1%s127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(126); got != 3 {
-               fmt.Printf("sub_int8 -127%s126 = %d, wanted 3\n", `-`, got)
+       if got := mod_int8_Neg1_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 127%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(126); got != -3 {
-               fmt.Printf("sub_int8 126%s-127 = %d, wanted -3\n", `-`, got)
+       if got := mod_0_int8_ssa(-128); got != 0 {
+               fmt.Printf("mod_int8 0%s-128 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg127_int8_ssa(127); got != 2 {
-               fmt.Printf("sub_int8 -127%s127 = %d, wanted 2\n", `-`, got)
+       if got := mod_0_int8_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 0%s-127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg127_ssa(127); got != -2 {
-               fmt.Printf("sub_int8 127%s-127 = %d, wanted -2\n", `-`, got)
+       if got := mod_0_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 0%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(-128); got != 127 {
-               fmt.Printf("sub_int8 -1%s-128 = %d, wanted 127\n", `-`, got)
+       if got := mod_0_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(-128); got != -127 {
-               fmt.Printf("sub_int8 -128%s-1 = %d, wanted -127\n", `-`, got)
+       if got := mod_0_int8_ssa(126); got != 0 {
+               fmt.Printf("mod_int8 0%s126 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(-127); got != 126 {
-               fmt.Printf("sub_int8 -1%s-127 = %d, wanted 126\n", `-`, got)
+       if got := mod_0_int8_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 0%s127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(-127); got != -126 {
-               fmt.Printf("sub_int8 -127%s-1 = %d, wanted -126\n", `-`, got)
+       if got := mod_1_int8_ssa(-128); got != 1 {
+               fmt.Printf("mod_int8 1%s-128 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(-1); got != 0 {
-               fmt.Printf("sub_int8 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := mod_int8_1_ssa(-128); got != 0 {
+               fmt.Printf("mod_int8 -128%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("sub_int8 -1%s-1 = %d, wanted 0\n", `-`, got)
+       if got := mod_1_int8_ssa(-127); got != 1 {
+               fmt.Printf("mod_int8 1%s-127 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(0); got != -1 {
-               fmt.Printf("sub_int8 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_1_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 -127%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(0); got != 1 {
-               fmt.Printf("sub_int8 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := mod_1_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 1%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(1); got != -2 {
-               fmt.Printf("sub_int8 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := mod_int8_1_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 -1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(1); got != 2 {
-               fmt.Printf("sub_int8 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := mod_int8_1_ssa(0); got != 0 {
+               fmt.Printf("mod_int8 0%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(126); got != -127 {
-               fmt.Printf("sub_int8 -1%s126 = %d, wanted -127\n", `-`, got)
+       if got := mod_1_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(126); got != 127 {
-               fmt.Printf("sub_int8 126%s-1 = %d, wanted 127\n", `-`, got)
+       if got := mod_int8_1_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 1%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_Neg1_int8_ssa(127); got != -128 {
-               fmt.Printf("sub_int8 -1%s127 = %d, wanted -128\n", `-`, got)
+       if got := mod_1_int8_ssa(126); got != 1 {
+               fmt.Printf("mod_int8 1%s126 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_Neg1_ssa(127); got != -128 {
-               fmt.Printf("sub_int8 127%s-1 = %d, wanted -128\n", `-`, got)
+       if got := mod_int8_1_ssa(126); got != 0 {
+               fmt.Printf("mod_int8 126%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(-128); got != -128 {
-               fmt.Printf("sub_int8 0%s-128 = %d, wanted -128\n", `-`, got)
+       if got := mod_1_int8_ssa(127); got != 1 {
+               fmt.Printf("mod_int8 1%s127 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(-128); got != -128 {
-               fmt.Printf("sub_int8 -128%s0 = %d, wanted -128\n", `-`, got)
+       if got := mod_int8_1_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 127%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(-127); got != 127 {
-               fmt.Printf("sub_int8 0%s-127 = %d, wanted 127\n", `-`, got)
+       if got := mod_126_int8_ssa(-128); got != 126 {
+               fmt.Printf("mod_int8 126%s-128 = %d, wanted 126\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(-127); got != -127 {
-               fmt.Printf("sub_int8 -127%s0 = %d, wanted -127\n", `-`, got)
+       if got := mod_int8_126_ssa(-128); got != -2 {
+               fmt.Printf("mod_int8 -128%s126 = %d, wanted -2\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(-1); got != 1 {
-               fmt.Printf("sub_int8 0%s-1 = %d, wanted 1\n", `-`, got)
+       if got := mod_126_int8_ssa(-127); got != 126 {
+               fmt.Printf("mod_int8 126%s-127 = %d, wanted 126\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(-1); got != -1 {
-               fmt.Printf("sub_int8 -1%s0 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_126_ssa(-127); got != -1 {
+               fmt.Printf("mod_int8 -127%s126 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(0); got != 0 {
-               fmt.Printf("sub_int8 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := mod_126_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 126%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(0); got != 0 {
-               fmt.Printf("sub_int8 0%s0 = %d, wanted 0\n", `-`, got)
+       if got := mod_int8_126_ssa(-1); got != -1 {
+               fmt.Printf("mod_int8 -1%s126 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(1); got != -1 {
-               fmt.Printf("sub_int8 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_126_ssa(0); got != 0 {
+               fmt.Printf("mod_int8 0%s126 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(1); got != 1 {
-               fmt.Printf("sub_int8 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := mod_126_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 126%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(126); got != -126 {
-               fmt.Printf("sub_int8 0%s126 = %d, wanted -126\n", `-`, got)
+       if got := mod_int8_126_ssa(1); got != 1 {
+               fmt.Printf("mod_int8 1%s126 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(126); got != 126 {
-               fmt.Printf("sub_int8 126%s0 = %d, wanted 126\n", `-`, got)
+       if got := mod_126_int8_ssa(126); got != 0 {
+               fmt.Printf("mod_int8 126%s126 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_0_int8_ssa(127); got != -127 {
-               fmt.Printf("sub_int8 0%s127 = %d, wanted -127\n", `-`, got)
+       if got := mod_int8_126_ssa(126); got != 0 {
+               fmt.Printf("mod_int8 126%s126 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_0_ssa(127); got != 127 {
-               fmt.Printf("sub_int8 127%s0 = %d, wanted 127\n", `-`, got)
+       if got := mod_126_int8_ssa(127); got != 126 {
+               fmt.Printf("mod_int8 126%s127 = %d, wanted 126\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(-128); got != -127 {
-               fmt.Printf("sub_int8 1%s-128 = %d, wanted -127\n", `-`, got)
+       if got := mod_int8_126_ssa(127); got != 1 {
+               fmt.Printf("mod_int8 127%s126 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(-128); got != 127 {
-               fmt.Printf("sub_int8 -128%s1 = %d, wanted 127\n", `-`, got)
+       if got := mod_127_int8_ssa(-128); got != 127 {
+               fmt.Printf("mod_int8 127%s-128 = %d, wanted 127\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(-127); got != -128 {
-               fmt.Printf("sub_int8 1%s-127 = %d, wanted -128\n", `-`, got)
+       if got := mod_int8_127_ssa(-128); got != -1 {
+               fmt.Printf("mod_int8 -128%s127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(-127); got != -128 {
-               fmt.Printf("sub_int8 -127%s1 = %d, wanted -128\n", `-`, got)
+       if got := mod_127_int8_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 127%s-127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(-1); got != 2 {
-               fmt.Printf("sub_int8 1%s-1 = %d, wanted 2\n", `-`, got)
+       if got := mod_int8_127_ssa(-127); got != 0 {
+               fmt.Printf("mod_int8 -127%s127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(-1); got != -2 {
-               fmt.Printf("sub_int8 -1%s1 = %d, wanted -2\n", `-`, got)
+       if got := mod_127_int8_ssa(-1); got != 0 {
+               fmt.Printf("mod_int8 127%s-1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(0); got != 1 {
-               fmt.Printf("sub_int8 1%s0 = %d, wanted 1\n", `-`, got)
+       if got := mod_int8_127_ssa(-1); got != -1 {
+               fmt.Printf("mod_int8 -1%s127 = %d, wanted -1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(0); got != -1 {
-               fmt.Printf("sub_int8 0%s1 = %d, wanted -1\n", `-`, got)
+       if got := mod_int8_127_ssa(0); got != 0 {
+               fmt.Printf("mod_int8 0%s127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(1); got != 0 {
-               fmt.Printf("sub_int8 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mod_127_int8_ssa(1); got != 0 {
+               fmt.Printf("mod_int8 127%s1 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(1); got != 0 {
-               fmt.Printf("sub_int8 1%s1 = %d, wanted 0\n", `-`, got)
+       if got := mod_int8_127_ssa(1); got != 1 {
+               fmt.Printf("mod_int8 1%s127 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(126); got != -125 {
-               fmt.Printf("sub_int8 1%s126 = %d, wanted -125\n", `-`, got)
+       if got := mod_127_int8_ssa(126); got != 1 {
+               fmt.Printf("mod_int8 127%s126 = %d, wanted 1\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(126); got != 125 {
-               fmt.Printf("sub_int8 126%s1 = %d, wanted 125\n", `-`, got)
+       if got := mod_int8_127_ssa(126); got != 126 {
+               fmt.Printf("mod_int8 126%s127 = %d, wanted 126\n", `%`, got)
                failed = true
        }
 
-       if got := sub_1_int8_ssa(127); got != -126 {
-               fmt.Printf("sub_int8 1%s127 = %d, wanted -126\n", `-`, got)
+       if got := mod_127_int8_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 127%s127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_int8_1_ssa(127); got != 126 {
-               fmt.Printf("sub_int8 127%s1 = %d, wanted 126\n", `-`, got)
+       if got := mod_int8_127_ssa(127); got != 0 {
+               fmt.Printf("mod_int8 127%s127 = %d, wanted 0\n", `%`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(-128); got != -2 {
-               fmt.Printf("sub_int8 126%s-128 = %d, wanted -2\n", `-`, got)
+       if got := and_Neg128_int8_ssa(-128); got != -128 {
+               fmt.Printf("and_int8 -128%s-128 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(-128); got != 2 {
-               fmt.Printf("sub_int8 -128%s126 = %d, wanted 2\n", `-`, got)
+       if got := and_int8_Neg128_ssa(-128); got != -128 {
+               fmt.Printf("and_int8 -128%s-128 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(-127); got != -3 {
-               fmt.Printf("sub_int8 126%s-127 = %d, wanted -3\n", `-`, got)
+       if got := and_Neg128_int8_ssa(-127); got != -128 {
+               fmt.Printf("and_int8 -128%s-127 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(-127); got != 3 {
-               fmt.Printf("sub_int8 -127%s126 = %d, wanted 3\n", `-`, got)
+       if got := and_int8_Neg128_ssa(-127); got != -128 {
+               fmt.Printf("and_int8 -127%s-128 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(-1); got != 127 {
-               fmt.Printf("sub_int8 126%s-1 = %d, wanted 127\n", `-`, got)
+       if got := and_Neg128_int8_ssa(-1); got != -128 {
+               fmt.Printf("and_int8 -128%s-1 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(-1); got != -127 {
-               fmt.Printf("sub_int8 -1%s126 = %d, wanted -127\n", `-`, got)
+       if got := and_int8_Neg128_ssa(-1); got != -128 {
+               fmt.Printf("and_int8 -1%s-128 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(0); got != 126 {
-               fmt.Printf("sub_int8 126%s0 = %d, wanted 126\n", `-`, got)
+       if got := and_Neg128_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 -128%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(0); got != -126 {
-               fmt.Printf("sub_int8 0%s126 = %d, wanted -126\n", `-`, got)
+       if got := and_int8_Neg128_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(1); got != 125 {
-               fmt.Printf("sub_int8 126%s1 = %d, wanted 125\n", `-`, got)
+       if got := and_Neg128_int8_ssa(1); got != 0 {
+               fmt.Printf("and_int8 -128%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(1); got != -125 {
-               fmt.Printf("sub_int8 1%s126 = %d, wanted -125\n", `-`, got)
+       if got := and_int8_Neg128_ssa(1); got != 0 {
+               fmt.Printf("and_int8 1%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(126); got != 0 {
-               fmt.Printf("sub_int8 126%s126 = %d, wanted 0\n", `-`, got)
+       if got := and_Neg128_int8_ssa(126); got != 0 {
+               fmt.Printf("and_int8 -128%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(126); got != 0 {
-               fmt.Printf("sub_int8 126%s126 = %d, wanted 0\n", `-`, got)
+       if got := and_int8_Neg128_ssa(126); got != 0 {
+               fmt.Printf("and_int8 126%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_126_int8_ssa(127); got != -1 {
-               fmt.Printf("sub_int8 126%s127 = %d, wanted -1\n", `-`, got)
+       if got := and_Neg128_int8_ssa(127); got != 0 {
+               fmt.Printf("and_int8 -128%s127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_126_ssa(127); got != 1 {
-               fmt.Printf("sub_int8 127%s126 = %d, wanted 1\n", `-`, got)
+       if got := and_int8_Neg128_ssa(127); got != 0 {
+               fmt.Printf("and_int8 127%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(-128); got != -1 {
-               fmt.Printf("sub_int8 127%s-128 = %d, wanted -1\n", `-`, got)
+       if got := and_Neg127_int8_ssa(-128); got != -128 {
+               fmt.Printf("and_int8 -127%s-128 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(-128); got != 1 {
-               fmt.Printf("sub_int8 -128%s127 = %d, wanted 1\n", `-`, got)
+       if got := and_int8_Neg127_ssa(-128); got != -128 {
+               fmt.Printf("and_int8 -128%s-127 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(-127); got != -2 {
-               fmt.Printf("sub_int8 127%s-127 = %d, wanted -2\n", `-`, got)
+       if got := and_Neg127_int8_ssa(-127); got != -127 {
+               fmt.Printf("and_int8 -127%s-127 = %d, wanted -127\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(-127); got != 2 {
-               fmt.Printf("sub_int8 -127%s127 = %d, wanted 2\n", `-`, got)
+       if got := and_int8_Neg127_ssa(-127); got != -127 {
+               fmt.Printf("and_int8 -127%s-127 = %d, wanted -127\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(-1); got != -128 {
-               fmt.Printf("sub_int8 127%s-1 = %d, wanted -128\n", `-`, got)
+       if got := and_Neg127_int8_ssa(-1); got != -127 {
+               fmt.Printf("and_int8 -127%s-1 = %d, wanted -127\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(-1); got != -128 {
-               fmt.Printf("sub_int8 -1%s127 = %d, wanted -128\n", `-`, got)
+       if got := and_int8_Neg127_ssa(-1); got != -127 {
+               fmt.Printf("and_int8 -1%s-127 = %d, wanted -127\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(0); got != 127 {
-               fmt.Printf("sub_int8 127%s0 = %d, wanted 127\n", `-`, got)
+       if got := and_Neg127_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 -127%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(0); got != -127 {
-               fmt.Printf("sub_int8 0%s127 = %d, wanted -127\n", `-`, got)
+       if got := and_int8_Neg127_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s-127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(1); got != 126 {
-               fmt.Printf("sub_int8 127%s1 = %d, wanted 126\n", `-`, got)
+       if got := and_Neg127_int8_ssa(1); got != 1 {
+               fmt.Printf("and_int8 -127%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(1); got != -126 {
-               fmt.Printf("sub_int8 1%s127 = %d, wanted -126\n", `-`, got)
+       if got := and_int8_Neg127_ssa(1); got != 1 {
+               fmt.Printf("and_int8 1%s-127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(126); got != 1 {
-               fmt.Printf("sub_int8 127%s126 = %d, wanted 1\n", `-`, got)
+       if got := and_Neg127_int8_ssa(126); got != 0 {
+               fmt.Printf("and_int8 -127%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(126); got != -1 {
-               fmt.Printf("sub_int8 126%s127 = %d, wanted -1\n", `-`, got)
+       if got := and_int8_Neg127_ssa(126); got != 0 {
+               fmt.Printf("and_int8 126%s-127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := sub_127_int8_ssa(127); got != 0 {
-               fmt.Printf("sub_int8 127%s127 = %d, wanted 0\n", `-`, got)
+       if got := and_Neg127_int8_ssa(127); got != 1 {
+               fmt.Printf("and_int8 -127%s127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := sub_int8_127_ssa(127); got != 0 {
-               fmt.Printf("sub_int8 127%s127 = %d, wanted 0\n", `-`, got)
+       if got := and_int8_Neg127_ssa(127); got != 1 {
+               fmt.Printf("and_int8 127%s-127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg128_int8_ssa(-128); got != 1 {
-               fmt.Printf("div_int8 -128%s-128 = %d, wanted 1\n", `/`, got)
+       if got := and_Neg1_int8_ssa(-128); got != -128 {
+               fmt.Printf("and_int8 -1%s-128 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(-128); got != 1 {
-               fmt.Printf("div_int8 -128%s-128 = %d, wanted 1\n", `/`, got)
+       if got := and_int8_Neg1_ssa(-128); got != -128 {
+               fmt.Printf("and_int8 -128%s-1 = %d, wanted -128\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg128_int8_ssa(-127); got != 1 {
-               fmt.Printf("div_int8 -128%s-127 = %d, wanted 1\n", `/`, got)
+       if got := and_Neg1_int8_ssa(-127); got != -127 {
+               fmt.Printf("and_int8 -1%s-127 = %d, wanted -127\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(-127); got != 0 {
-               fmt.Printf("div_int8 -127%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_Neg1_ssa(-127); got != -127 {
+               fmt.Printf("and_int8 -127%s-1 = %d, wanted -127\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg128_int8_ssa(-1); got != -128 {
-               fmt.Printf("div_int8 -128%s-1 = %d, wanted -128\n", `/`, got)
+       if got := and_Neg1_int8_ssa(-1); got != -1 {
+               fmt.Printf("and_int8 -1%s-1 = %d, wanted -1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(-1); got != 0 {
-               fmt.Printf("div_int8 -1%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("and_int8 -1%s-1 = %d, wanted -1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(0); got != 0 {
-               fmt.Printf("div_int8 0%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 -1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg128_int8_ssa(1); got != -128 {
-               fmt.Printf("div_int8 -128%s1 = %d, wanted -128\n", `/`, got)
+       if got := and_int8_Neg1_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s-1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(1); got != 0 {
-               fmt.Printf("div_int8 1%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int8_ssa(1); got != 1 {
+               fmt.Printf("and_int8 -1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg128_int8_ssa(126); got != -1 {
-               fmt.Printf("div_int8 -128%s126 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_Neg1_ssa(1); got != 1 {
+               fmt.Printf("and_int8 1%s-1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(126); got != 0 {
-               fmt.Printf("div_int8 126%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int8_ssa(126); got != 126 {
+               fmt.Printf("and_int8 -1%s126 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg128_int8_ssa(127); got != -1 {
-               fmt.Printf("div_int8 -128%s127 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_Neg1_ssa(126); got != 126 {
+               fmt.Printf("and_int8 126%s-1 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg128_ssa(127); got != 0 {
-               fmt.Printf("div_int8 127%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_Neg1_int8_ssa(127); got != 127 {
+               fmt.Printf("and_int8 -1%s127 = %d, wanted 127\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg127_int8_ssa(-128); got != 0 {
-               fmt.Printf("div_int8 -127%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_Neg1_ssa(127); got != 127 {
+               fmt.Printf("and_int8 127%s-1 = %d, wanted 127\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(-128); got != 1 {
-               fmt.Printf("div_int8 -128%s-127 = %d, wanted 1\n", `/`, got)
+       if got := and_0_int8_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 0%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg127_int8_ssa(-127); got != 1 {
-               fmt.Printf("div_int8 -127%s-127 = %d, wanted 1\n", `/`, got)
+       if got := and_int8_0_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 -128%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(-127); got != 1 {
-               fmt.Printf("div_int8 -127%s-127 = %d, wanted 1\n", `/`, got)
+       if got := and_0_int8_ssa(-127); got != 0 {
+               fmt.Printf("and_int8 0%s-127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg127_int8_ssa(-1); got != 127 {
-               fmt.Printf("div_int8 -127%s-1 = %d, wanted 127\n", `/`, got)
+       if got := and_int8_0_ssa(-127); got != 0 {
+               fmt.Printf("and_int8 -127%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(-1); got != 0 {
-               fmt.Printf("div_int8 -1%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_0_int8_ssa(-1); got != 0 {
+               fmt.Printf("and_int8 0%s-1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(0); got != 0 {
-               fmt.Printf("div_int8 0%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_0_ssa(-1); got != 0 {
+               fmt.Printf("and_int8 -1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg127_int8_ssa(1); got != -127 {
-               fmt.Printf("div_int8 -127%s1 = %d, wanted -127\n", `/`, got)
+       if got := and_0_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(1); got != 0 {
-               fmt.Printf("div_int8 1%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_0_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg127_int8_ssa(126); got != -1 {
-               fmt.Printf("div_int8 -127%s126 = %d, wanted -1\n", `/`, got)
+       if got := and_0_int8_ssa(1); got != 0 {
+               fmt.Printf("and_int8 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(126); got != 0 {
-               fmt.Printf("div_int8 126%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_0_ssa(1); got != 0 {
+               fmt.Printf("and_int8 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg127_int8_ssa(127); got != -1 {
-               fmt.Printf("div_int8 -127%s127 = %d, wanted -1\n", `/`, got)
+       if got := and_0_int8_ssa(126); got != 0 {
+               fmt.Printf("and_int8 0%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg127_ssa(127); got != -1 {
-               fmt.Printf("div_int8 127%s-127 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_0_ssa(126); got != 0 {
+               fmt.Printf("and_int8 126%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int8_ssa(-128); got != 0 {
-               fmt.Printf("div_int8 -1%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_0_int8_ssa(127); got != 0 {
+               fmt.Printf("and_int8 0%s127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(-128); got != -128 {
-               fmt.Printf("div_int8 -128%s-1 = %d, wanted -128\n", `/`, got)
+       if got := and_int8_0_ssa(127); got != 0 {
+               fmt.Printf("and_int8 127%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int8_ssa(-127); got != 0 {
-               fmt.Printf("div_int8 -1%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_1_int8_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 1%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(-127); got != 127 {
-               fmt.Printf("div_int8 -127%s-1 = %d, wanted 127\n", `/`, got)
+       if got := and_int8_1_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 -128%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int8_ssa(-1); got != 1 {
-               fmt.Printf("div_int8 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := and_1_int8_ssa(-127); got != 1 {
+               fmt.Printf("and_int8 1%s-127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("div_int8 -1%s-1 = %d, wanted 1\n", `/`, got)
+       if got := and_int8_1_ssa(-127); got != 1 {
+               fmt.Printf("and_int8 -127%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(0); got != 0 {
-               fmt.Printf("div_int8 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := and_1_int8_ssa(-1); got != 1 {
+               fmt.Printf("and_int8 1%s-1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int8_ssa(1); got != -1 {
-               fmt.Printf("div_int8 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_1_ssa(-1); got != 1 {
+               fmt.Printf("and_int8 -1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(1); got != -1 {
-               fmt.Printf("div_int8 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := and_1_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 1%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int8_ssa(126); got != 0 {
-               fmt.Printf("div_int8 -1%s126 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_1_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(126); got != -126 {
-               fmt.Printf("div_int8 126%s-1 = %d, wanted -126\n", `/`, got)
+       if got := and_1_int8_ssa(1); got != 1 {
+               fmt.Printf("and_int8 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_Neg1_int8_ssa(127); got != 0 {
-               fmt.Printf("div_int8 -1%s127 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_1_ssa(1); got != 1 {
+               fmt.Printf("and_int8 1%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_Neg1_ssa(127); got != -127 {
-               fmt.Printf("div_int8 127%s-1 = %d, wanted -127\n", `/`, got)
+       if got := and_1_int8_ssa(126); got != 0 {
+               fmt.Printf("and_int8 1%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int8_ssa(-128); got != 0 {
-               fmt.Printf("div_int8 0%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_1_ssa(126); got != 0 {
+               fmt.Printf("and_int8 126%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int8_ssa(-127); got != 0 {
-               fmt.Printf("div_int8 0%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_1_int8_ssa(127); got != 1 {
+               fmt.Printf("and_int8 1%s127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int8_ssa(-1); got != 0 {
-               fmt.Printf("div_int8 0%s-1 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_1_ssa(127); got != 1 {
+               fmt.Printf("and_int8 127%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int8_ssa(1); got != 0 {
-               fmt.Printf("div_int8 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := and_126_int8_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 126%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int8_ssa(126); got != 0 {
-               fmt.Printf("div_int8 0%s126 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_126_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 -128%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_0_int8_ssa(127); got != 0 {
-               fmt.Printf("div_int8 0%s127 = %d, wanted 0\n", `/`, got)
+       if got := and_126_int8_ssa(-127); got != 0 {
+               fmt.Printf("and_int8 126%s-127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int8_ssa(-128); got != 0 {
-               fmt.Printf("div_int8 1%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_126_ssa(-127); got != 0 {
+               fmt.Printf("and_int8 -127%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(-128); got != -128 {
-               fmt.Printf("div_int8 -128%s1 = %d, wanted -128\n", `/`, got)
+       if got := and_126_int8_ssa(-1); got != 126 {
+               fmt.Printf("and_int8 126%s-1 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int8_ssa(-127); got != 0 {
-               fmt.Printf("div_int8 1%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_126_ssa(-1); got != 126 {
+               fmt.Printf("and_int8 -1%s126 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(-127); got != -127 {
-               fmt.Printf("div_int8 -127%s1 = %d, wanted -127\n", `/`, got)
+       if got := and_126_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 126%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int8_ssa(-1); got != -1 {
-               fmt.Printf("div_int8 1%s-1 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_126_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(-1); got != -1 {
-               fmt.Printf("div_int8 -1%s1 = %d, wanted -1\n", `/`, got)
+       if got := and_126_int8_ssa(1); got != 0 {
+               fmt.Printf("and_int8 126%s1 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(0); got != 0 {
-               fmt.Printf("div_int8 0%s1 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_126_ssa(1); got != 0 {
+               fmt.Printf("and_int8 1%s126 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int8_ssa(1); got != 1 {
-               fmt.Printf("div_int8 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := and_126_int8_ssa(126); got != 126 {
+               fmt.Printf("and_int8 126%s126 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(1); got != 1 {
-               fmt.Printf("div_int8 1%s1 = %d, wanted 1\n", `/`, got)
+       if got := and_int8_126_ssa(126); got != 126 {
+               fmt.Printf("and_int8 126%s126 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int8_ssa(126); got != 0 {
-               fmt.Printf("div_int8 1%s126 = %d, wanted 0\n", `/`, got)
+       if got := and_126_int8_ssa(127); got != 126 {
+               fmt.Printf("and_int8 126%s127 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(126); got != 126 {
-               fmt.Printf("div_int8 126%s1 = %d, wanted 126\n", `/`, got)
+       if got := and_int8_126_ssa(127); got != 126 {
+               fmt.Printf("and_int8 127%s126 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_1_int8_ssa(127); got != 0 {
-               fmt.Printf("div_int8 1%s127 = %d, wanted 0\n", `/`, got)
+       if got := and_127_int8_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 127%s-128 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_1_ssa(127); got != 127 {
-               fmt.Printf("div_int8 127%s1 = %d, wanted 127\n", `/`, got)
+       if got := and_int8_127_ssa(-128); got != 0 {
+               fmt.Printf("and_int8 -128%s127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_126_int8_ssa(-128); got != 0 {
-               fmt.Printf("div_int8 126%s-128 = %d, wanted 0\n", `/`, got)
+       if got := and_127_int8_ssa(-127); got != 1 {
+               fmt.Printf("and_int8 127%s-127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(-128); got != -1 {
-               fmt.Printf("div_int8 -128%s126 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_127_ssa(-127); got != 1 {
+               fmt.Printf("and_int8 -127%s127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_126_int8_ssa(-127); got != 0 {
-               fmt.Printf("div_int8 126%s-127 = %d, wanted 0\n", `/`, got)
+       if got := and_127_int8_ssa(-1); got != 127 {
+               fmt.Printf("and_int8 127%s-1 = %d, wanted 127\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(-127); got != -1 {
-               fmt.Printf("div_int8 -127%s126 = %d, wanted -1\n", `/`, got)
+       if got := and_int8_127_ssa(-1); got != 127 {
+               fmt.Printf("and_int8 -1%s127 = %d, wanted 127\n", `&`, got)
                failed = true
        }
 
-       if got := div_126_int8_ssa(-1); got != -126 {
-               fmt.Printf("div_int8 126%s-1 = %d, wanted -126\n", `/`, got)
+       if got := and_127_int8_ssa(0); got != 0 {
+               fmt.Printf("and_int8 127%s0 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(-1); got != 0 {
-               fmt.Printf("div_int8 -1%s126 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_127_ssa(0); got != 0 {
+               fmt.Printf("and_int8 0%s127 = %d, wanted 0\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(0); got != 0 {
-               fmt.Printf("div_int8 0%s126 = %d, wanted 0\n", `/`, got)
+       if got := and_127_int8_ssa(1); got != 1 {
+               fmt.Printf("and_int8 127%s1 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_126_int8_ssa(1); got != 126 {
-               fmt.Printf("div_int8 126%s1 = %d, wanted 126\n", `/`, got)
+       if got := and_int8_127_ssa(1); got != 1 {
+               fmt.Printf("and_int8 1%s127 = %d, wanted 1\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(1); got != 0 {
-               fmt.Printf("div_int8 1%s126 = %d, wanted 0\n", `/`, got)
+       if got := and_127_int8_ssa(126); got != 126 {
+               fmt.Printf("and_int8 127%s126 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_126_int8_ssa(126); got != 1 {
-               fmt.Printf("div_int8 126%s126 = %d, wanted 1\n", `/`, got)
+       if got := and_int8_127_ssa(126); got != 126 {
+               fmt.Printf("and_int8 126%s127 = %d, wanted 126\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(126); got != 1 {
-               fmt.Printf("div_int8 126%s126 = %d, wanted 1\n", `/`, got)
+       if got := and_127_int8_ssa(127); got != 127 {
+               fmt.Printf("and_int8 127%s127 = %d, wanted 127\n", `&`, got)
                failed = true
        }
 
-       if got := div_126_int8_ssa(127); got != 0 {
-               fmt.Printf("div_int8 126%s127 = %d, wanted 0\n", `/`, got)
+       if got := and_int8_127_ssa(127); got != 127 {
+               fmt.Printf("and_int8 127%s127 = %d, wanted 127\n", `&`, got)
                failed = true
        }
 
-       if got := div_int8_126_ssa(127); got != 1 {
-               fmt.Printf("div_int8 127%s126 = %d, wanted 1\n", `/`, got)
+       if got := or_Neg128_int8_ssa(-128); got != -128 {
+               fmt.Printf("or_int8 -128%s-128 = %d, wanted -128\n", `|`, got)
                failed = true
        }
 
-       if got := div_127_int8_ssa(-128); got != 0 {
-               fmt.Printf("div_int8 127%s-128 = %d, wanted 0\n", `/`, got)
+       if got := or_int8_Neg128_ssa(-128); got != -128 {
+               fmt.Printf("or_int8 -128%s-128 = %d, wanted -128\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(-128); got != -1 {
-               fmt.Printf("div_int8 -128%s127 = %d, wanted -1\n", `/`, got)
+       if got := or_Neg128_int8_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 -128%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := div_127_int8_ssa(-127); got != -1 {
-               fmt.Printf("div_int8 127%s-127 = %d, wanted -1\n", `/`, got)
+       if got := or_int8_Neg128_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 -127%s-128 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(-127); got != -1 {
-               fmt.Printf("div_int8 -127%s127 = %d, wanted -1\n", `/`, got)
+       if got := or_Neg128_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -128%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_127_int8_ssa(-1); got != -127 {
-               fmt.Printf("div_int8 127%s-1 = %d, wanted -127\n", `/`, got)
+       if got := or_int8_Neg128_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s-128 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(-1); got != 0 {
-               fmt.Printf("div_int8 -1%s127 = %d, wanted 0\n", `/`, got)
+       if got := or_Neg128_int8_ssa(0); got != -128 {
+               fmt.Printf("or_int8 -128%s0 = %d, wanted -128\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(0); got != 0 {
-               fmt.Printf("div_int8 0%s127 = %d, wanted 0\n", `/`, got)
+       if got := or_int8_Neg128_ssa(0); got != -128 {
+               fmt.Printf("or_int8 0%s-128 = %d, wanted -128\n", `|`, got)
                failed = true
        }
 
-       if got := div_127_int8_ssa(1); got != 127 {
-               fmt.Printf("div_int8 127%s1 = %d, wanted 127\n", `/`, got)
+       if got := or_Neg128_int8_ssa(1); got != -127 {
+               fmt.Printf("or_int8 -128%s1 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(1); got != 0 {
-               fmt.Printf("div_int8 1%s127 = %d, wanted 0\n", `/`, got)
+       if got := or_int8_Neg128_ssa(1); got != -127 {
+               fmt.Printf("or_int8 1%s-128 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := div_127_int8_ssa(126); got != 1 {
-               fmt.Printf("div_int8 127%s126 = %d, wanted 1\n", `/`, got)
+       if got := or_Neg128_int8_ssa(126); got != -2 {
+               fmt.Printf("or_int8 -128%s126 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(126); got != 0 {
-               fmt.Printf("div_int8 126%s127 = %d, wanted 0\n", `/`, got)
+       if got := or_int8_Neg128_ssa(126); got != -2 {
+               fmt.Printf("or_int8 126%s-128 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := div_127_int8_ssa(127); got != 1 {
-               fmt.Printf("div_int8 127%s127 = %d, wanted 1\n", `/`, got)
+       if got := or_Neg128_int8_ssa(127); got != -1 {
+               fmt.Printf("or_int8 -128%s127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := div_int8_127_ssa(127); got != 1 {
-               fmt.Printf("div_int8 127%s127 = %d, wanted 1\n", `/`, got)
+       if got := or_int8_Neg128_ssa(127); got != -1 {
+               fmt.Printf("or_int8 127%s-128 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(-128); got != 0 {
-               fmt.Printf("mul_int8 -128%s-128 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg127_int8_ssa(-128); got != -127 {
+               fmt.Printf("or_int8 -127%s-128 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(-128); got != 0 {
-               fmt.Printf("mul_int8 -128%s-128 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_Neg127_ssa(-128); got != -127 {
+               fmt.Printf("or_int8 -128%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(-127); got != -128 {
-               fmt.Printf("mul_int8 -128%s-127 = %d, wanted -128\n", `*`, got)
+       if got := or_Neg127_int8_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 -127%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(-127); got != -128 {
-               fmt.Printf("mul_int8 -127%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_Neg127_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 -127%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(-1); got != -128 {
-               fmt.Printf("mul_int8 -128%s-1 = %d, wanted -128\n", `*`, got)
+       if got := or_Neg127_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -127%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(-1); got != -128 {
-               fmt.Printf("mul_int8 -1%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_Neg127_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s-127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 -128%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg127_int8_ssa(0); got != -127 {
+               fmt.Printf("or_int8 -127%s0 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s-128 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_Neg127_ssa(0); got != -127 {
+               fmt.Printf("or_int8 0%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(1); got != -128 {
-               fmt.Printf("mul_int8 -128%s1 = %d, wanted -128\n", `*`, got)
+       if got := or_Neg127_int8_ssa(1); got != -127 {
+               fmt.Printf("or_int8 -127%s1 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(1); got != -128 {
-               fmt.Printf("mul_int8 1%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_Neg127_ssa(1); got != -127 {
+               fmt.Printf("or_int8 1%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(126); got != 0 {
-               fmt.Printf("mul_int8 -128%s126 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg127_int8_ssa(126); got != -1 {
+               fmt.Printf("or_int8 -127%s126 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(126); got != 0 {
-               fmt.Printf("mul_int8 126%s-128 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_Neg127_ssa(126); got != -1 {
+               fmt.Printf("or_int8 126%s-127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg128_int8_ssa(127); got != -128 {
-               fmt.Printf("mul_int8 -128%s127 = %d, wanted -128\n", `*`, got)
+       if got := or_Neg127_int8_ssa(127); got != -1 {
+               fmt.Printf("or_int8 -127%s127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg128_ssa(127); got != -128 {
-               fmt.Printf("mul_int8 127%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_Neg127_ssa(127); got != -1 {
+               fmt.Printf("or_int8 127%s-127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 -127%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_Neg1_int8_ssa(-128); got != -1 {
+               fmt.Printf("or_int8 -1%s-128 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 -128%s-127 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_Neg1_ssa(-128); got != -1 {
+               fmt.Printf("or_int8 -128%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(-127); got != 1 {
-               fmt.Printf("mul_int8 -127%s-127 = %d, wanted 1\n", `*`, got)
+       if got := or_Neg1_int8_ssa(-127); got != -1 {
+               fmt.Printf("or_int8 -1%s-127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(-127); got != 1 {
-               fmt.Printf("mul_int8 -127%s-127 = %d, wanted 1\n", `*`, got)
+       if got := or_int8_Neg1_ssa(-127); got != -1 {
+               fmt.Printf("or_int8 -127%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(-1); got != 127 {
-               fmt.Printf("mul_int8 -127%s-1 = %d, wanted 127\n", `*`, got)
+       if got := or_Neg1_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(-1); got != 127 {
-               fmt.Printf("mul_int8 -1%s-127 = %d, wanted 127\n", `*`, got)
+       if got := or_int8_Neg1_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 -127%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_Neg1_int8_ssa(0); got != -1 {
+               fmt.Printf("or_int8 -1%s0 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s-127 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_Neg1_ssa(0); got != -1 {
+               fmt.Printf("or_int8 0%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(1); got != -127 {
-               fmt.Printf("mul_int8 -127%s1 = %d, wanted -127\n", `*`, got)
+       if got := or_Neg1_int8_ssa(1); got != -1 {
+               fmt.Printf("or_int8 -1%s1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(1); got != -127 {
-               fmt.Printf("mul_int8 1%s-127 = %d, wanted -127\n", `*`, got)
+       if got := or_int8_Neg1_ssa(1); got != -1 {
+               fmt.Printf("or_int8 1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(126); got != 126 {
-               fmt.Printf("mul_int8 -127%s126 = %d, wanted 126\n", `*`, got)
+       if got := or_Neg1_int8_ssa(126); got != -1 {
+               fmt.Printf("or_int8 -1%s126 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(126); got != 126 {
-               fmt.Printf("mul_int8 126%s-127 = %d, wanted 126\n", `*`, got)
+       if got := or_int8_Neg1_ssa(126); got != -1 {
+               fmt.Printf("or_int8 126%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg127_int8_ssa(127); got != -1 {
-               fmt.Printf("mul_int8 -127%s127 = %d, wanted -1\n", `*`, got)
+       if got := or_Neg1_int8_ssa(127); got != -1 {
+               fmt.Printf("or_int8 -1%s127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg127_ssa(127); got != -1 {
-               fmt.Printf("mul_int8 127%s-127 = %d, wanted -1\n", `*`, got)
+       if got := or_int8_Neg1_ssa(127); got != -1 {
+               fmt.Printf("or_int8 127%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 -1%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_0_int8_ssa(-128); got != -128 {
+               fmt.Printf("or_int8 0%s-128 = %d, wanted -128\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 -128%s-1 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_0_ssa(-128); got != -128 {
+               fmt.Printf("or_int8 -128%s0 = %d, wanted -128\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(-127); got != 127 {
-               fmt.Printf("mul_int8 -1%s-127 = %d, wanted 127\n", `*`, got)
+       if got := or_0_int8_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 0%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(-127); got != 127 {
-               fmt.Printf("mul_int8 -127%s-1 = %d, wanted 127\n", `*`, got)
+       if got := or_int8_0_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 -127%s0 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(-1); got != 1 {
-               fmt.Printf("mul_int8 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := or_0_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 0%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(-1); got != 1 {
-               fmt.Printf("mul_int8 -1%s-1 = %d, wanted 1\n", `*`, got)
+       if got := or_int8_0_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s0 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_0_int8_ssa(0); got != 0 {
+               fmt.Printf("or_int8 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_0_ssa(0); got != 0 {
+               fmt.Printf("or_int8 0%s0 = %d, wanted 0\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(1); got != -1 {
-               fmt.Printf("mul_int8 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := or_0_int8_ssa(1); got != 1 {
+               fmt.Printf("or_int8 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(1); got != -1 {
-               fmt.Printf("mul_int8 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := or_int8_0_ssa(1); got != 1 {
+               fmt.Printf("or_int8 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(126); got != -126 {
-               fmt.Printf("mul_int8 -1%s126 = %d, wanted -126\n", `*`, got)
+       if got := or_0_int8_ssa(126); got != 126 {
+               fmt.Printf("or_int8 0%s126 = %d, wanted 126\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(126); got != -126 {
-               fmt.Printf("mul_int8 126%s-1 = %d, wanted -126\n", `*`, got)
+       if got := or_int8_0_ssa(126); got != 126 {
+               fmt.Printf("or_int8 126%s0 = %d, wanted 126\n", `|`, got)
                failed = true
        }
 
-       if got := mul_Neg1_int8_ssa(127); got != -127 {
-               fmt.Printf("mul_int8 -1%s127 = %d, wanted -127\n", `*`, got)
+       if got := or_0_int8_ssa(127); got != 127 {
+               fmt.Printf("or_int8 0%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_Neg1_ssa(127); got != -127 {
-               fmt.Printf("mul_int8 127%s-1 = %d, wanted -127\n", `*`, got)
+       if got := or_int8_0_ssa(127); got != 127 {
+               fmt.Printf("or_int8 127%s0 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(-128); got != 0 {
-               fmt.Printf("mul_int8 0%s-128 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(-128); got != -127 {
+               fmt.Printf("or_int8 1%s-128 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(-128); got != 0 {
-               fmt.Printf("mul_int8 -128%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(-128); got != -127 {
+               fmt.Printf("or_int8 -128%s1 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(-127); got != 0 {
-               fmt.Printf("mul_int8 0%s-127 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 1%s-127 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(-127); got != 0 {
-               fmt.Printf("mul_int8 -127%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(-127); got != -127 {
+               fmt.Printf("or_int8 -127%s1 = %d, wanted -127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(-1); got != 0 {
-               fmt.Printf("mul_int8 0%s-1 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 1%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(-1); got != 0 {
-               fmt.Printf("mul_int8 -1%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(0); got != 1 {
+               fmt.Printf("or_int8 1%s0 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(0); got != 1 {
+               fmt.Printf("or_int8 0%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(1); got != 0 {
-               fmt.Printf("mul_int8 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(1); got != 1 {
+               fmt.Printf("or_int8 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(1); got != 0 {
-               fmt.Printf("mul_int8 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(1); got != 1 {
+               fmt.Printf("or_int8 1%s1 = %d, wanted 1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(126); got != 0 {
-               fmt.Printf("mul_int8 0%s126 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(126); got != 127 {
+               fmt.Printf("or_int8 1%s126 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(126); got != 0 {
-               fmt.Printf("mul_int8 126%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(126); got != 127 {
+               fmt.Printf("or_int8 126%s1 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_0_int8_ssa(127); got != 0 {
-               fmt.Printf("mul_int8 0%s127 = %d, wanted 0\n", `*`, got)
+       if got := or_1_int8_ssa(127); got != 127 {
+               fmt.Printf("or_int8 1%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_0_ssa(127); got != 0 {
-               fmt.Printf("mul_int8 127%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_1_ssa(127); got != 127 {
+               fmt.Printf("or_int8 127%s1 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 1%s-128 = %d, wanted -128\n", `*`, got)
+       if got := or_126_int8_ssa(-128); got != -2 {
+               fmt.Printf("or_int8 126%s-128 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 -128%s1 = %d, wanted -128\n", `*`, got)
+       if got := or_int8_126_ssa(-128); got != -2 {
+               fmt.Printf("or_int8 -128%s126 = %d, wanted -2\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(-127); got != -127 {
-               fmt.Printf("mul_int8 1%s-127 = %d, wanted -127\n", `*`, got)
+       if got := or_126_int8_ssa(-127); got != -1 {
+               fmt.Printf("or_int8 126%s-127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(-127); got != -127 {
-               fmt.Printf("mul_int8 -127%s1 = %d, wanted -127\n", `*`, got)
+       if got := or_int8_126_ssa(-127); got != -1 {
+               fmt.Printf("or_int8 -127%s126 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(-1); got != -1 {
-               fmt.Printf("mul_int8 1%s-1 = %d, wanted -1\n", `*`, got)
+       if got := or_126_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 126%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(-1); got != -1 {
-               fmt.Printf("mul_int8 -1%s1 = %d, wanted -1\n", `*`, got)
+       if got := or_int8_126_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s126 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 1%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_126_int8_ssa(0); got != 126 {
+               fmt.Printf("or_int8 126%s0 = %d, wanted 126\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s1 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_126_ssa(0); got != 126 {
+               fmt.Printf("or_int8 0%s126 = %d, wanted 126\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(1); got != 1 {
-               fmt.Printf("mul_int8 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := or_126_int8_ssa(1); got != 127 {
+               fmt.Printf("or_int8 126%s1 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(1); got != 1 {
-               fmt.Printf("mul_int8 1%s1 = %d, wanted 1\n", `*`, got)
+       if got := or_int8_126_ssa(1); got != 127 {
+               fmt.Printf("or_int8 1%s126 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(126); got != 126 {
-               fmt.Printf("mul_int8 1%s126 = %d, wanted 126\n", `*`, got)
+       if got := or_126_int8_ssa(126); got != 126 {
+               fmt.Printf("or_int8 126%s126 = %d, wanted 126\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(126); got != 126 {
-               fmt.Printf("mul_int8 126%s1 = %d, wanted 126\n", `*`, got)
+       if got := or_int8_126_ssa(126); got != 126 {
+               fmt.Printf("or_int8 126%s126 = %d, wanted 126\n", `|`, got)
                failed = true
        }
 
-       if got := mul_1_int8_ssa(127); got != 127 {
-               fmt.Printf("mul_int8 1%s127 = %d, wanted 127\n", `*`, got)
+       if got := or_126_int8_ssa(127); got != 127 {
+               fmt.Printf("or_int8 126%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_1_ssa(127); got != 127 {
-               fmt.Printf("mul_int8 127%s1 = %d, wanted 127\n", `*`, got)
+       if got := or_int8_126_ssa(127); got != 127 {
+               fmt.Printf("or_int8 127%s126 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(-128); got != 0 {
-               fmt.Printf("mul_int8 126%s-128 = %d, wanted 0\n", `*`, got)
+       if got := or_127_int8_ssa(-128); got != -1 {
+               fmt.Printf("or_int8 127%s-128 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(-128); got != 0 {
-               fmt.Printf("mul_int8 -128%s126 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_127_ssa(-128); got != -1 {
+               fmt.Printf("or_int8 -128%s127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(-127); got != 126 {
-               fmt.Printf("mul_int8 126%s-127 = %d, wanted 126\n", `*`, got)
+       if got := or_127_int8_ssa(-127); got != -1 {
+               fmt.Printf("or_int8 127%s-127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(-127); got != 126 {
-               fmt.Printf("mul_int8 -127%s126 = %d, wanted 126\n", `*`, got)
+       if got := or_int8_127_ssa(-127); got != -1 {
+               fmt.Printf("or_int8 -127%s127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(-1); got != -126 {
-               fmt.Printf("mul_int8 126%s-1 = %d, wanted -126\n", `*`, got)
+       if got := or_127_int8_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 127%s-1 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(-1); got != -126 {
-               fmt.Printf("mul_int8 -1%s126 = %d, wanted -126\n", `*`, got)
+       if got := or_int8_127_ssa(-1); got != -1 {
+               fmt.Printf("or_int8 -1%s127 = %d, wanted -1\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 126%s0 = %d, wanted 0\n", `*`, got)
+       if got := or_127_int8_ssa(0); got != 127 {
+               fmt.Printf("or_int8 127%s0 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s126 = %d, wanted 0\n", `*`, got)
+       if got := or_int8_127_ssa(0); got != 127 {
+               fmt.Printf("or_int8 0%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(1); got != 126 {
-               fmt.Printf("mul_int8 126%s1 = %d, wanted 126\n", `*`, got)
+       if got := or_127_int8_ssa(1); got != 127 {
+               fmt.Printf("or_int8 127%s1 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(1); got != 126 {
-               fmt.Printf("mul_int8 1%s126 = %d, wanted 126\n", `*`, got)
+       if got := or_int8_127_ssa(1); got != 127 {
+               fmt.Printf("or_int8 1%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(126); got != 4 {
-               fmt.Printf("mul_int8 126%s126 = %d, wanted 4\n", `*`, got)
+       if got := or_127_int8_ssa(126); got != 127 {
+               fmt.Printf("or_int8 127%s126 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(126); got != 4 {
-               fmt.Printf("mul_int8 126%s126 = %d, wanted 4\n", `*`, got)
+       if got := or_int8_127_ssa(126); got != 127 {
+               fmt.Printf("or_int8 126%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_126_int8_ssa(127); got != -126 {
-               fmt.Printf("mul_int8 126%s127 = %d, wanted -126\n", `*`, got)
+       if got := or_127_int8_ssa(127); got != 127 {
+               fmt.Printf("or_int8 127%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_int8_126_ssa(127); got != -126 {
-               fmt.Printf("mul_int8 127%s126 = %d, wanted -126\n", `*`, got)
+       if got := or_int8_127_ssa(127); got != 127 {
+               fmt.Printf("or_int8 127%s127 = %d, wanted 127\n", `|`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 127%s-128 = %d, wanted -128\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(-128); got != 0 {
+               fmt.Printf("xor_int8 -128%s-128 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(-128); got != -128 {
-               fmt.Printf("mul_int8 -128%s127 = %d, wanted -128\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(-128); got != 0 {
+               fmt.Printf("xor_int8 -128%s-128 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(-127); got != -1 {
-               fmt.Printf("mul_int8 127%s-127 = %d, wanted -1\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(-127); got != 1 {
+               fmt.Printf("xor_int8 -128%s-127 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(-127); got != -1 {
-               fmt.Printf("mul_int8 -127%s127 = %d, wanted -1\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(-127); got != 1 {
+               fmt.Printf("xor_int8 -127%s-128 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(-1); got != -127 {
-               fmt.Printf("mul_int8 127%s-1 = %d, wanted -127\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(-1); got != 127 {
+               fmt.Printf("xor_int8 -128%s-1 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(-1); got != -127 {
-               fmt.Printf("mul_int8 -1%s127 = %d, wanted -127\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(-1); got != 127 {
+               fmt.Printf("xor_int8 -1%s-128 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 127%s0 = %d, wanted 0\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(0); got != -128 {
+               fmt.Printf("xor_int8 -128%s0 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(0); got != 0 {
-               fmt.Printf("mul_int8 0%s127 = %d, wanted 0\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(0); got != -128 {
+               fmt.Printf("xor_int8 0%s-128 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(1); got != 127 {
-               fmt.Printf("mul_int8 127%s1 = %d, wanted 127\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(1); got != -127 {
+               fmt.Printf("xor_int8 -128%s1 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(1); got != 127 {
-               fmt.Printf("mul_int8 1%s127 = %d, wanted 127\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(1); got != -127 {
+               fmt.Printf("xor_int8 1%s-128 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(126); got != -126 {
-               fmt.Printf("mul_int8 127%s126 = %d, wanted -126\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(126); got != -2 {
+               fmt.Printf("xor_int8 -128%s126 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(126); got != -126 {
-               fmt.Printf("mul_int8 126%s127 = %d, wanted -126\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(126); got != -2 {
+               fmt.Printf("xor_int8 126%s-128 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mul_127_int8_ssa(127); got != 1 {
-               fmt.Printf("mul_int8 127%s127 = %d, wanted 1\n", `*`, got)
+       if got := xor_Neg128_int8_ssa(127); got != -1 {
+               fmt.Printf("xor_int8 -128%s127 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mul_int8_127_ssa(127); got != 1 {
-               fmt.Printf("mul_int8 127%s127 = %d, wanted 1\n", `*`, got)
+       if got := xor_int8_Neg128_ssa(127); got != -1 {
+               fmt.Printf("xor_int8 127%s-128 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg128_int8_ssa(-128); got != 0 {
-               fmt.Printf("mod_int8 -128%s-128 = %d, wanted 0\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(-128); got != 1 {
+               fmt.Printf("xor_int8 -127%s-128 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(-128); got != 0 {
-               fmt.Printf("mod_int8 -128%s-128 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(-128); got != 1 {
+               fmt.Printf("xor_int8 -128%s-127 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg128_int8_ssa(-127); got != -1 {
-               fmt.Printf("mod_int8 -128%s-127 = %d, wanted -1\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(-127); got != 0 {
+               fmt.Printf("xor_int8 -127%s-127 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(-127); got != -127 {
-               fmt.Printf("mod_int8 -127%s-128 = %d, wanted -127\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(-127); got != 0 {
+               fmt.Printf("xor_int8 -127%s-127 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg128_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 -128%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(-1); got != 126 {
+               fmt.Printf("xor_int8 -127%s-1 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(-1); got != -1 {
-               fmt.Printf("mod_int8 -1%s-128 = %d, wanted -1\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(-1); got != 126 {
+               fmt.Printf("xor_int8 -1%s-127 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(0); got != 0 {
-               fmt.Printf("mod_int8 0%s-128 = %d, wanted 0\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(0); got != -127 {
+               fmt.Printf("xor_int8 -127%s0 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg128_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 -128%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(0); got != -127 {
+               fmt.Printf("xor_int8 0%s-127 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(1); got != 1 {
-               fmt.Printf("mod_int8 1%s-128 = %d, wanted 1\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(1); got != -128 {
+               fmt.Printf("xor_int8 -127%s1 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg128_int8_ssa(126); got != -2 {
-               fmt.Printf("mod_int8 -128%s126 = %d, wanted -2\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(1); got != -128 {
+               fmt.Printf("xor_int8 1%s-127 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(126); got != 126 {
-               fmt.Printf("mod_int8 126%s-128 = %d, wanted 126\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(126); got != -1 {
+               fmt.Printf("xor_int8 -127%s126 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg128_int8_ssa(127); got != -1 {
-               fmt.Printf("mod_int8 -128%s127 = %d, wanted -1\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(126); got != -1 {
+               fmt.Printf("xor_int8 126%s-127 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg128_ssa(127); got != 127 {
-               fmt.Printf("mod_int8 127%s-128 = %d, wanted 127\n", `%`, got)
+       if got := xor_Neg127_int8_ssa(127); got != -2 {
+               fmt.Printf("xor_int8 -127%s127 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg127_int8_ssa(-128); got != -127 {
-               fmt.Printf("mod_int8 -127%s-128 = %d, wanted -127\n", `%`, got)
+       if got := xor_int8_Neg127_ssa(127); got != -2 {
+               fmt.Printf("xor_int8 127%s-127 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(-128); got != -1 {
-               fmt.Printf("mod_int8 -128%s-127 = %d, wanted -1\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(-128); got != 127 {
+               fmt.Printf("xor_int8 -1%s-128 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg127_int8_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 -127%s-127 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(-128); got != 127 {
+               fmt.Printf("xor_int8 -128%s-1 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 -127%s-127 = %d, wanted 0\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(-127); got != 126 {
+               fmt.Printf("xor_int8 -1%s-127 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg127_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 -127%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(-127); got != 126 {
+               fmt.Printf("xor_int8 -127%s-1 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(-1); got != -1 {
-               fmt.Printf("mod_int8 -1%s-127 = %d, wanted -1\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(-1); got != 0 {
+               fmt.Printf("xor_int8 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(0); got != 0 {
-               fmt.Printf("mod_int8 0%s-127 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(-1); got != 0 {
+               fmt.Printf("xor_int8 -1%s-1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg127_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 -127%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(0); got != -1 {
+               fmt.Printf("xor_int8 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(1); got != 1 {
-               fmt.Printf("mod_int8 1%s-127 = %d, wanted 1\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(0); got != -1 {
+               fmt.Printf("xor_int8 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg127_int8_ssa(126); got != -1 {
-               fmt.Printf("mod_int8 -127%s126 = %d, wanted -1\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(1); got != -2 {
+               fmt.Printf("xor_int8 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(126); got != 126 {
-               fmt.Printf("mod_int8 126%s-127 = %d, wanted 126\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(1); got != -2 {
+               fmt.Printf("xor_int8 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg127_int8_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 -127%s127 = %d, wanted 0\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(126); got != -127 {
+               fmt.Printf("xor_int8 -1%s126 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg127_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 127%s-127 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(126); got != -127 {
+               fmt.Printf("xor_int8 126%s-1 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int8_ssa(-128); got != -1 {
-               fmt.Printf("mod_int8 -1%s-128 = %d, wanted -1\n", `%`, got)
+       if got := xor_Neg1_int8_ssa(127); got != -128 {
+               fmt.Printf("xor_int8 -1%s127 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(-128); got != 0 {
-               fmt.Printf("mod_int8 -128%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_Neg1_ssa(127); got != -128 {
+               fmt.Printf("xor_int8 127%s-1 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int8_ssa(-127); got != -1 {
-               fmt.Printf("mod_int8 -1%s-127 = %d, wanted -1\n", `%`, got)
+       if got := xor_0_int8_ssa(-128); got != -128 {
+               fmt.Printf("xor_int8 0%s-128 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 -127%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_0_ssa(-128); got != -128 {
+               fmt.Printf("xor_int8 -128%s0 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_int8_ssa(-127); got != -127 {
+               fmt.Printf("xor_int8 0%s-127 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 -1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_0_ssa(-127); got != -127 {
+               fmt.Printf("xor_int8 -127%s0 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(0); got != 0 {
-               fmt.Printf("mod_int8 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_int8_ssa(-1); got != -1 {
+               fmt.Printf("xor_int8 0%s-1 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_0_ssa(-1); got != -1 {
+               fmt.Printf("xor_int8 -1%s0 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_int8_ssa(0); got != 0 {
+               fmt.Printf("xor_int8 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int8_ssa(126); got != -1 {
-               fmt.Printf("mod_int8 -1%s126 = %d, wanted -1\n", `%`, got)
+       if got := xor_int8_0_ssa(0); got != 0 {
+               fmt.Printf("xor_int8 0%s0 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(126); got != 0 {
-               fmt.Printf("mod_int8 126%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_int8_ssa(1); got != 1 {
+               fmt.Printf("xor_int8 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_Neg1_int8_ssa(127); got != -1 {
-               fmt.Printf("mod_int8 -1%s127 = %d, wanted -1\n", `%`, got)
+       if got := xor_int8_0_ssa(1); got != 1 {
+               fmt.Printf("xor_int8 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_Neg1_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 127%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_int8_ssa(126); got != 126 {
+               fmt.Printf("xor_int8 0%s126 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_int8_ssa(-128); got != 0 {
-               fmt.Printf("mod_int8 0%s-128 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_0_ssa(126); got != 126 {
+               fmt.Printf("xor_int8 126%s0 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_int8_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 0%s-127 = %d, wanted 0\n", `%`, got)
+       if got := xor_0_int8_ssa(127); got != 127 {
+               fmt.Printf("xor_int8 0%s127 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 0%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_0_ssa(127); got != 127 {
+               fmt.Printf("xor_int8 127%s0 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_int8_ssa(-128); got != -127 {
+               fmt.Printf("xor_int8 1%s-128 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_int8_ssa(126); got != 0 {
-               fmt.Printf("mod_int8 0%s126 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_1_ssa(-128); got != -127 {
+               fmt.Printf("xor_int8 -128%s1 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_0_int8_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 0%s127 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_int8_ssa(-127); got != -128 {
+               fmt.Printf("xor_int8 1%s-127 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_int8_ssa(-128); got != 1 {
-               fmt.Printf("mod_int8 1%s-128 = %d, wanted 1\n", `%`, got)
+       if got := xor_int8_1_ssa(-127); got != -128 {
+               fmt.Printf("xor_int8 -127%s1 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(-128); got != 0 {
-               fmt.Printf("mod_int8 -128%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_int8_ssa(-1); got != -2 {
+               fmt.Printf("xor_int8 1%s-1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_int8_ssa(-127); got != 1 {
-               fmt.Printf("mod_int8 1%s-127 = %d, wanted 1\n", `%`, got)
+       if got := xor_int8_1_ssa(-1); got != -2 {
+               fmt.Printf("xor_int8 -1%s1 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 -127%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_int8_ssa(0); got != 1 {
+               fmt.Printf("xor_int8 1%s0 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 1%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_1_ssa(0); got != 1 {
+               fmt.Printf("xor_int8 0%s1 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 -1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_int8_ssa(1); got != 0 {
+               fmt.Printf("xor_int8 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(0); got != 0 {
-               fmt.Printf("mod_int8 0%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_1_ssa(1); got != 0 {
+               fmt.Printf("xor_int8 1%s1 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_1_int8_ssa(126); got != 127 {
+               fmt.Printf("xor_int8 1%s126 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 1%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_1_ssa(126); got != 127 {
+               fmt.Printf("xor_int8 126%s1 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_int8_ssa(126); got != 1 {
-               fmt.Printf("mod_int8 1%s126 = %d, wanted 1\n", `%`, got)
+       if got := xor_1_int8_ssa(127); got != 126 {
+               fmt.Printf("xor_int8 1%s127 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(126); got != 0 {
-               fmt.Printf("mod_int8 126%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_1_ssa(127); got != 126 {
+               fmt.Printf("xor_int8 127%s1 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_1_int8_ssa(127); got != 1 {
-               fmt.Printf("mod_int8 1%s127 = %d, wanted 1\n", `%`, got)
+       if got := xor_126_int8_ssa(-128); got != -2 {
+               fmt.Printf("xor_int8 126%s-128 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_1_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 127%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_126_ssa(-128); got != -2 {
+               fmt.Printf("xor_int8 -128%s126 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_126_int8_ssa(-128); got != 126 {
-               fmt.Printf("mod_int8 126%s-128 = %d, wanted 126\n", `%`, got)
+       if got := xor_126_int8_ssa(-127); got != -1 {
+               fmt.Printf("xor_int8 126%s-127 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(-128); got != -2 {
-               fmt.Printf("mod_int8 -128%s126 = %d, wanted -2\n", `%`, got)
+       if got := xor_int8_126_ssa(-127); got != -1 {
+               fmt.Printf("xor_int8 -127%s126 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_126_int8_ssa(-127); got != 126 {
-               fmt.Printf("mod_int8 126%s-127 = %d, wanted 126\n", `%`, got)
+       if got := xor_126_int8_ssa(-1); got != -127 {
+               fmt.Printf("xor_int8 126%s-1 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(-127); got != -1 {
-               fmt.Printf("mod_int8 -127%s126 = %d, wanted -1\n", `%`, got)
+       if got := xor_int8_126_ssa(-1); got != -127 {
+               fmt.Printf("xor_int8 -1%s126 = %d, wanted -127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_126_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 126%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_126_int8_ssa(0); got != 126 {
+               fmt.Printf("xor_int8 126%s0 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(-1); got != -1 {
-               fmt.Printf("mod_int8 -1%s126 = %d, wanted -1\n", `%`, got)
+       if got := xor_int8_126_ssa(0); got != 126 {
+               fmt.Printf("xor_int8 0%s126 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(0); got != 0 {
-               fmt.Printf("mod_int8 0%s126 = %d, wanted 0\n", `%`, got)
+       if got := xor_126_int8_ssa(1); got != 127 {
+               fmt.Printf("xor_int8 126%s1 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_126_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 126%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_126_ssa(1); got != 127 {
+               fmt.Printf("xor_int8 1%s126 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(1); got != 1 {
-               fmt.Printf("mod_int8 1%s126 = %d, wanted 1\n", `%`, got)
+       if got := xor_126_int8_ssa(126); got != 0 {
+               fmt.Printf("xor_int8 126%s126 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_126_int8_ssa(126); got != 0 {
-               fmt.Printf("mod_int8 126%s126 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_126_ssa(126); got != 0 {
+               fmt.Printf("xor_int8 126%s126 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(126); got != 0 {
-               fmt.Printf("mod_int8 126%s126 = %d, wanted 0\n", `%`, got)
+       if got := xor_126_int8_ssa(127); got != 1 {
+               fmt.Printf("xor_int8 126%s127 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_126_int8_ssa(127); got != 126 {
-               fmt.Printf("mod_int8 126%s127 = %d, wanted 126\n", `%`, got)
+       if got := xor_int8_126_ssa(127); got != 1 {
+               fmt.Printf("xor_int8 127%s126 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_126_ssa(127); got != 1 {
-               fmt.Printf("mod_int8 127%s126 = %d, wanted 1\n", `%`, got)
+       if got := xor_127_int8_ssa(-128); got != -1 {
+               fmt.Printf("xor_int8 127%s-128 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_127_int8_ssa(-128); got != 127 {
-               fmt.Printf("mod_int8 127%s-128 = %d, wanted 127\n", `%`, got)
+       if got := xor_int8_127_ssa(-128); got != -1 {
+               fmt.Printf("xor_int8 -128%s127 = %d, wanted -1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(-128); got != -1 {
-               fmt.Printf("mod_int8 -128%s127 = %d, wanted -1\n", `%`, got)
+       if got := xor_127_int8_ssa(-127); got != -2 {
+               fmt.Printf("xor_int8 127%s-127 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_127_int8_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 127%s-127 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_127_ssa(-127); got != -2 {
+               fmt.Printf("xor_int8 -127%s127 = %d, wanted -2\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(-127); got != 0 {
-               fmt.Printf("mod_int8 -127%s127 = %d, wanted 0\n", `%`, got)
+       if got := xor_127_int8_ssa(-1); got != -128 {
+               fmt.Printf("xor_int8 127%s-1 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_127_int8_ssa(-1); got != 0 {
-               fmt.Printf("mod_int8 127%s-1 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_127_ssa(-1); got != -128 {
+               fmt.Printf("xor_int8 -1%s127 = %d, wanted -128\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(-1); got != -1 {
-               fmt.Printf("mod_int8 -1%s127 = %d, wanted -1\n", `%`, got)
+       if got := xor_127_int8_ssa(0); got != 127 {
+               fmt.Printf("xor_int8 127%s0 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(0); got != 0 {
-               fmt.Printf("mod_int8 0%s127 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_127_ssa(0); got != 127 {
+               fmt.Printf("xor_int8 0%s127 = %d, wanted 127\n", `^`, got)
                failed = true
        }
 
-       if got := mod_127_int8_ssa(1); got != 0 {
-               fmt.Printf("mod_int8 127%s1 = %d, wanted 0\n", `%`, got)
+       if got := xor_127_int8_ssa(1); got != 126 {
+               fmt.Printf("xor_int8 127%s1 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(1); got != 1 {
-               fmt.Printf("mod_int8 1%s127 = %d, wanted 1\n", `%`, got)
+       if got := xor_int8_127_ssa(1); got != 126 {
+               fmt.Printf("xor_int8 1%s127 = %d, wanted 126\n", `^`, got)
                failed = true
        }
 
-       if got := mod_127_int8_ssa(126); got != 1 {
-               fmt.Printf("mod_int8 127%s126 = %d, wanted 1\n", `%`, got)
+       if got := xor_127_int8_ssa(126); got != 1 {
+               fmt.Printf("xor_int8 127%s126 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(126); got != 126 {
-               fmt.Printf("mod_int8 126%s127 = %d, wanted 126\n", `%`, got)
+       if got := xor_int8_127_ssa(126); got != 1 {
+               fmt.Printf("xor_int8 126%s127 = %d, wanted 1\n", `^`, got)
                failed = true
        }
 
-       if got := mod_127_int8_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 127%s127 = %d, wanted 0\n", `%`, got)
+       if got := xor_127_int8_ssa(127); got != 0 {
+               fmt.Printf("xor_int8 127%s127 = %d, wanted 0\n", `^`, got)
                failed = true
        }
 
-       if got := mod_int8_127_ssa(127); got != 0 {
-               fmt.Printf("mod_int8 127%s127 = %d, wanted 0\n", `%`, got)
+       if got := xor_int8_127_ssa(127); got != 0 {
+               fmt.Printf("xor_int8 127%s127 = %d, wanted 0\n", `^`, got)
                failed = true
        }
        if failed {
index ac1c8d93e8d6820e750acfa50cb5b4f08a2c79c9..279c7bc7058bac8cc5d6c8a1ce2edd19562e3cec 100644 (file)
@@ -54,6 +54,9 @@ var ops = []op{
        {"lsh", "<<"},
        {"rsh", ">>"},
        {"mod", "%"},
+       {"and", "&"},
+       {"or", "|"},
+       {"xor", "^"},
 }
 
 // compute the result of i op j, cast as type t.
@@ -78,6 +81,12 @@ func ansU(i, j uint64, t, op string) string {
                ans = i << j
        case ">>":
                ans = i >> j
+       case "&":
+               ans = i & j
+       case "|":
+               ans = i | j
+       case "^":
+               ans = i ^ j
        }
        switch t {
        case "uint32":
@@ -112,6 +121,12 @@ func ansS(i, j int64, t, op string) string {
                ans = i << uint64(j)
        case ">>":
                ans = i >> uint64(j)
+       case "&":
+               ans = i & j
+       case "|":
+               ans = i | j
+       case "^":
+               ans = i ^ j
        }
        switch t {
        case "int32":
index a5e440336aea3cc47948aa39833156788647894f..c3baa5133fdcf1ac532c3fdfd7d281c999951d8c 100644 (file)
 // generic constant folding
 (ADDconst [c] x) && !isARMImmRot(uint32(c)) && isARMImmRot(uint32(-c)) -> (SUBconst [int64(int32(-c))] x)
 (SUBconst [c] x) && !isARMImmRot(uint32(c)) && isARMImmRot(uint32(-c)) -> (ADDconst [int64(int32(-c))] x)
-(ANDconst [c] x) && !isARMImmRot(uint32(c)) && isARMImmRot(^uint32(c)) -> (BICconst [int64(^uint32(c))] x)
-(BICconst [c] x) && !isARMImmRot(uint32(c)) && isARMImmRot(^uint32(c)) -> (ANDconst [int64(^uint32(c))] x)
+(ANDconst [c] x) && !isARMImmRot(uint32(c)) && isARMImmRot(^uint32(c)) -> (BICconst [int64(int32(^uint32(c)))] x)
+(BICconst [c] x) && !isARMImmRot(uint32(c)) && isARMImmRot(^uint32(c)) -> (ANDconst [int64(int32(^uint32(c)))] x)
 (ADDconst [c] (MOVWconst [d])) -> (MOVWconst [int64(int32(c+d))])
 (ADDconst [c] (ADDconst [d] x)) -> (ADDconst [int64(int32(c+d))] x)
 (ADDconst [c] (SUBconst [d] x)) -> (ADDconst [int64(int32(c-d))] x)
 (CMNshiftRAreg (MOVWconst [c]) x y) -> (CMNconst [c] (SRA <x.Type> x y))
 
 // constant folding in *shift ops
-(ADDshiftLL x (MOVWconst [c]) [d]) -> (ADDconst x [int64(uint32(c)<<uint64(d))])
-(ADDshiftRL x (MOVWconst [c]) [d]) -> (ADDconst x [int64(uint32(c)>>uint64(d))])
+(ADDshiftLL x (MOVWconst [c]) [d]) -> (ADDconst x [int64(int32(uint32(c)<<uint64(d)))])
+(ADDshiftRL x (MOVWconst [c]) [d]) -> (ADDconst x [int64(int32(uint32(c)>>uint64(d)))])
 (ADDshiftRA x (MOVWconst [c]) [d]) -> (ADDconst x [int64(int32(c)>>uint64(d))])
-(ADCshiftLL x (MOVWconst [c]) [d] flags) -> (ADCconst x [int64(uint32(c)<<uint64(d))] flags)
-(ADCshiftRL x (MOVWconst [c]) [d] flags) -> (ADCconst x [int64(uint32(c)>>uint64(d))] flags)
+(ADCshiftLL x (MOVWconst [c]) [d] flags) -> (ADCconst x [int64(int32(uint32(c)<<uint64(d)))] flags)
+(ADCshiftRL x (MOVWconst [c]) [d] flags) -> (ADCconst x [int64(int32(uint32(c)>>uint64(d)))] flags)
 (ADCshiftRA x (MOVWconst [c]) [d] flags) -> (ADCconst x [int64(int32(c)>>uint64(d))] flags)
-(ADDSshiftLL x (MOVWconst [c]) [d]) -> (ADDSconst x [int64(uint32(c)<<uint64(d))])
-(ADDSshiftRL x (MOVWconst [c]) [d]) -> (ADDSconst x [int64(uint32(c)>>uint64(d))])
+(ADDSshiftLL x (MOVWconst [c]) [d]) -> (ADDSconst x [int64(int32(uint32(c)<<uint64(d)))])
+(ADDSshiftRL x (MOVWconst [c]) [d]) -> (ADDSconst x [int64(int32(uint32(c)>>uint64(d)))])
 (ADDSshiftRA x (MOVWconst [c]) [d]) -> (ADDSconst x [int64(int32(c)>>uint64(d))])
-(SUBshiftLL x (MOVWconst [c]) [d]) -> (SUBconst x [int64(uint32(c)<<uint64(d))])
-(SUBshiftRL x (MOVWconst [c]) [d]) -> (SUBconst x [int64(uint32(c)>>uint64(d))])
+(SUBshiftLL x (MOVWconst [c]) [d]) -> (SUBconst x [int64(int32(uint32(c)<<uint64(d)))])
+(SUBshiftRL x (MOVWconst [c]) [d]) -> (SUBconst x [int64(int32(uint32(c)>>uint64(d)))])
 (SUBshiftRA x (MOVWconst [c]) [d]) -> (SUBconst x [int64(int32(c)>>uint64(d))])
-(SBCshiftLL x (MOVWconst [c]) [d] flags) -> (SBCconst x [int64(uint32(c)<<uint64(d))] flags)
-(SBCshiftRL x (MOVWconst [c]) [d] flags) -> (SBCconst x [int64(uint32(c)>>uint64(d))] flags)
+(SBCshiftLL x (MOVWconst [c]) [d] flags) -> (SBCconst x [int64(int32(uint32(c)<<uint64(d)))] flags)
+(SBCshiftRL x (MOVWconst [c]) [d] flags) -> (SBCconst x [int64(int32(uint32(c)>>uint64(d)))] flags)
 (SBCshiftRA x (MOVWconst [c]) [d] flags) -> (SBCconst x [int64(int32(c)>>uint64(d))] flags)
-(SUBSshiftLL x (MOVWconst [c]) [d]) -> (SUBSconst x [int64(uint32(c)<<uint64(d))])
-(SUBSshiftRL x (MOVWconst [c]) [d]) -> (SUBSconst x [int64(uint32(c)>>uint64(d))])
+(SUBSshiftLL x (MOVWconst [c]) [d]) -> (SUBSconst x [int64(int32(uint32(c)<<uint64(d)))])
+(SUBSshiftRL x (MOVWconst [c]) [d]) -> (SUBSconst x [int64(int32(uint32(c)>>uint64(d)))])
 (SUBSshiftRA x (MOVWconst [c]) [d]) -> (SUBSconst x [int64(int32(c)>>uint64(d))])
-(RSBshiftLL x (MOVWconst [c]) [d]) -> (RSBconst x [int64(uint32(c)<<uint64(d))])
-(RSBshiftRL x (MOVWconst [c]) [d]) -> (RSBconst x [int64(uint32(c)>>uint64(d))])
+(RSBshiftLL x (MOVWconst [c]) [d]) -> (RSBconst x [int64(int32(uint32(c)<<uint64(d)))])
+(RSBshiftRL x (MOVWconst [c]) [d]) -> (RSBconst x [int64(int32(uint32(c)>>uint64(d)))])
 (RSBshiftRA x (MOVWconst [c]) [d]) -> (RSBconst x [int64(int32(c)>>uint64(d))])
-(RSCshiftLL x (MOVWconst [c]) [d] flags) -> (RSCconst x [int64(uint32(c)<<uint64(d))] flags)
-(RSCshiftRL x (MOVWconst [c]) [d] flags) -> (RSCconst x [int64(uint32(c)>>uint64(d))] flags)
+(RSCshiftLL x (MOVWconst [c]) [d] flags) -> (RSCconst x [int64(int32(uint32(c)<<uint64(d)))] flags)
+(RSCshiftRL x (MOVWconst [c]) [d] flags) -> (RSCconst x [int64(int32(uint32(c)>>uint64(d)))] flags)
 (RSCshiftRA x (MOVWconst [c]) [d] flags) -> (RSCconst x [int64(int32(c)>>uint64(d))] flags)
-(RSBSshiftLL x (MOVWconst [c]) [d]) -> (RSBSconst x [int64(uint32(c)<<uint64(d))])
-(RSBSshiftRL x (MOVWconst [c]) [d]) -> (RSBSconst x [int64(uint32(c)>>uint64(d))])
+(RSBSshiftLL x (MOVWconst [c]) [d]) -> (RSBSconst x [int64(int32(uint32(c)<<uint64(d)))])
+(RSBSshiftRL x (MOVWconst [c]) [d]) -> (RSBSconst x [int64(int32(uint32(c)>>uint64(d)))])
 (RSBSshiftRA x (MOVWconst [c]) [d]) -> (RSBSconst x [int64(int32(c)>>uint64(d))])
-(ANDshiftLL x (MOVWconst [c]) [d]) -> (ANDconst x [int64(uint32(c)<<uint64(d))])
-(ANDshiftRL x (MOVWconst [c]) [d]) -> (ANDconst x [int64(uint32(c)>>uint64(d))])
+(ANDshiftLL x (MOVWconst [c]) [d]) -> (ANDconst x [int64(int32(uint32(c)<<uint64(d)))])
+(ANDshiftRL x (MOVWconst [c]) [d]) -> (ANDconst x [int64(int32(uint32(c)>>uint64(d)))])
 (ANDshiftRA x (MOVWconst [c]) [d]) -> (ANDconst x [int64(int32(c)>>uint64(d))])
-(ORshiftLL x (MOVWconst [c]) [d]) -> (ORconst x [int64(uint32(c)<<uint64(d))])
-(ORshiftRL x (MOVWconst [c]) [d]) -> (ORconst x [int64(uint32(c)>>uint64(d))])
+(ORshiftLL x (MOVWconst [c]) [d]) -> (ORconst x [int64(int32(uint32(c)<<uint64(d)))])
+(ORshiftRL x (MOVWconst [c]) [d]) -> (ORconst x [int64(int32(uint32(c)>>uint64(d)))])
 (ORshiftRA x (MOVWconst [c]) [d]) -> (ORconst x [int64(int32(c)>>uint64(d))])
-(XORshiftLL x (MOVWconst [c]) [d]) -> (XORconst x [int64(uint32(c)<<uint64(d))])
-(XORshiftRL x (MOVWconst [c]) [d]) -> (XORconst x [int64(uint32(c)>>uint64(d))])
+(XORshiftLL x (MOVWconst [c]) [d]) -> (XORconst x [int64(int32(uint32(c)<<uint64(d)))])
+(XORshiftRL x (MOVWconst [c]) [d]) -> (XORconst x [int64(int32(uint32(c)>>uint64(d)))])
 (XORshiftRA x (MOVWconst [c]) [d]) -> (XORconst x [int64(int32(c)>>uint64(d))])
-(XORshiftRR x (MOVWconst [c]) [d]) -> (XORconst x [int64(uint32(c)>>uint64(d)|uint32(c)<<uint64(32-d))])
-(BICshiftLL x (MOVWconst [c]) [d]) -> (BICconst x [int64(uint32(c)<<uint64(d))])
-(BICshiftRL x (MOVWconst [c]) [d]) -> (BICconst x [int64(uint32(c)>>uint64(d))])
+(XORshiftRR x (MOVWconst [c]) [d]) -> (XORconst x [int64(int32(uint32(c)>>uint64(d)|uint32(c)<<uint64(32-d)))])
+(BICshiftLL x (MOVWconst [c]) [d]) -> (BICconst x [int64(int32(uint32(c)<<uint64(d)))])
+(BICshiftRL x (MOVWconst [c]) [d]) -> (BICconst x [int64(int32(uint32(c)>>uint64(d)))])
 (BICshiftRA x (MOVWconst [c]) [d]) -> (BICconst x [int64(int32(c)>>uint64(d))])
 (MVNshiftLL (MOVWconst [c]) [d]) -> (MOVWconst [^int64(uint32(c)<<uint64(d))])
 (MVNshiftRL (MOVWconst [c]) [d]) -> (MOVWconst [^int64(uint32(c)>>uint64(d))])
 (MVNshiftRA (MOVWconst [c]) [d]) -> (MOVWconst [^int64(int32(c)>>uint64(d))])
-(CMPshiftLL x (MOVWconst [c]) [d]) -> (CMPconst x [int64(uint32(c)<<uint64(d))])
-(CMPshiftRL x (MOVWconst [c]) [d]) -> (CMPconst x [int64(uint32(c)>>uint64(d))])
+(CMPshiftLL x (MOVWconst [c]) [d]) -> (CMPconst x [int64(int32(uint32(c)<<uint64(d)))])
+(CMPshiftRL x (MOVWconst [c]) [d]) -> (CMPconst x [int64(int32(uint32(c)>>uint64(d)))])
 (CMPshiftRA x (MOVWconst [c]) [d]) -> (CMPconst x [int64(int32(c)>>uint64(d))])
-(TSTshiftLL x (MOVWconst [c]) [d]) -> (TSTconst x [int64(uint32(c)<<uint64(d))])
-(TSTshiftRL x (MOVWconst [c]) [d]) -> (TSTconst x [int64(uint32(c)>>uint64(d))])
+(TSTshiftLL x (MOVWconst [c]) [d]) -> (TSTconst x [int64(int32(uint32(c)<<uint64(d)))])
+(TSTshiftRL x (MOVWconst [c]) [d]) -> (TSTconst x [int64(int32(uint32(c)>>uint64(d)))])
 (TSTshiftRA x (MOVWconst [c]) [d]) -> (TSTconst x [int64(int32(c)>>uint64(d))])
-(TEQshiftLL x (MOVWconst [c]) [d]) -> (TEQconst x [int64(uint32(c)<<uint64(d))])
-(TEQshiftRL x (MOVWconst [c]) [d]) -> (TEQconst x [int64(uint32(c)>>uint64(d))])
+(TEQshiftLL x (MOVWconst [c]) [d]) -> (TEQconst x [int64(int32(uint32(c)<<uint64(d)))])
+(TEQshiftRL x (MOVWconst [c]) [d]) -> (TEQconst x [int64(int32(uint32(c)>>uint64(d)))])
 (TEQshiftRA x (MOVWconst [c]) [d]) -> (TEQconst x [int64(int32(c)>>uint64(d))])
-(CMNshiftLL x (MOVWconst [c]) [d]) -> (CMNconst x [int64(uint32(c)<<uint64(d))])
-(CMNshiftRL x (MOVWconst [c]) [d]) -> (CMNconst x [int64(uint32(c)>>uint64(d))])
+(CMNshiftLL x (MOVWconst [c]) [d]) -> (CMNconst x [int64(int32(uint32(c)<<uint64(d)))])
+(CMNshiftRL x (MOVWconst [c]) [d]) -> (CMNconst x [int64(int32(uint32(c)>>uint64(d)))])
 (CMNshiftRA x (MOVWconst [c]) [d]) -> (CMNconst x [int64(int32(c)>>uint64(d))])
 
 (ADDshiftLLreg x y (MOVWconst [c])) -> (ADDshiftLL x y [c])
index fa22ff2502af4ad1aaedd230e392c45f290c4bad..058ae72dde11a68f60a94d614fa6545cdd46f063 100644 (file)
@@ -1459,7 +1459,7 @@ func rewriteValueARM_OpARMADCshiftLL_0(v *Value) bool {
        }
        // match: (ADCshiftLL x (MOVWconst [c]) [d] flags)
        // cond:
-       // result: (ADCconst x [int64(uint32(c)<<uint64(d))] flags)
+       // result: (ADCconst x [int64(int32(uint32(c)<<uint64(d)))] flags)
        for {
                d := v.AuxInt
                _ = v.Args[2]
@@ -1471,7 +1471,7 @@ func rewriteValueARM_OpARMADCshiftLL_0(v *Value) bool {
                c := v_1.AuxInt
                flags := v.Args[2]
                v.reset(OpARMADCconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                v.AddArg(flags)
                return true
@@ -1645,7 +1645,7 @@ func rewriteValueARM_OpARMADCshiftRL_0(v *Value) bool {
        }
        // match: (ADCshiftRL x (MOVWconst [c]) [d] flags)
        // cond:
-       // result: (ADCconst x [int64(uint32(c)>>uint64(d))] flags)
+       // result: (ADCconst x [int64(int32(uint32(c)>>uint64(d)))] flags)
        for {
                d := v.AuxInt
                _ = v.Args[2]
@@ -1657,7 +1657,7 @@ func rewriteValueARM_OpARMADCshiftRL_0(v *Value) bool {
                c := v_1.AuxInt
                flags := v.Args[2]
                v.reset(OpARMADCconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                v.AddArg(flags)
                return true
@@ -2568,7 +2568,7 @@ func rewriteValueARM_OpARMADDSshiftLL_0(v *Value) bool {
        }
        // match: (ADDSshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ADDSconst x [int64(uint32(c)<<uint64(d))])
+       // result: (ADDSconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -2579,7 +2579,7 @@ func rewriteValueARM_OpARMADDSshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMADDSconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -2738,7 +2738,7 @@ func rewriteValueARM_OpARMADDSshiftRL_0(v *Value) bool {
        }
        // match: (ADDSshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ADDSconst x [int64(uint32(c)>>uint64(d))])
+       // result: (ADDSconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -2749,7 +2749,7 @@ func rewriteValueARM_OpARMADDSshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMADDSconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -2933,7 +2933,7 @@ func rewriteValueARM_OpARMADDshiftLL_0(v *Value) bool {
        }
        // match: (ADDshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ADDconst x [int64(uint32(c)<<uint64(d))])
+       // result: (ADDconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -2944,7 +2944,7 @@ func rewriteValueARM_OpARMADDshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMADDconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -3125,7 +3125,7 @@ func rewriteValueARM_OpARMADDshiftRL_0(v *Value) bool {
        }
        // match: (ADDshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ADDconst x [int64(uint32(c)>>uint64(d))])
+       // result: (ADDconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -3136,7 +3136,7 @@ func rewriteValueARM_OpARMADDshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMADDconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -3652,7 +3652,7 @@ func rewriteValueARM_OpARMANDconst_0(v *Value) bool {
        }
        // match: (ANDconst [c] x)
        // cond: !isARMImmRot(uint32(c)) && isARMImmRot(^uint32(c))
-       // result: (BICconst [int64(^uint32(c))] x)
+       // result: (BICconst [int64(int32(^uint32(c)))] x)
        for {
                c := v.AuxInt
                x := v.Args[0]
@@ -3660,7 +3660,7 @@ func rewriteValueARM_OpARMANDconst_0(v *Value) bool {
                        break
                }
                v.reset(OpARMBICconst)
-               v.AuxInt = int64(^uint32(c))
+               v.AuxInt = int64(int32(^uint32(c)))
                v.AddArg(x)
                return true
        }
@@ -3721,7 +3721,7 @@ func rewriteValueARM_OpARMANDshiftLL_0(v *Value) bool {
        }
        // match: (ANDshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ANDconst x [int64(uint32(c)<<uint64(d))])
+       // result: (ANDconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -3732,7 +3732,7 @@ func rewriteValueARM_OpARMANDshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMANDconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -3937,7 +3937,7 @@ func rewriteValueARM_OpARMANDshiftRL_0(v *Value) bool {
        }
        // match: (ANDshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ANDconst x [int64(uint32(c)>>uint64(d))])
+       // result: (ANDconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -3948,7 +3948,7 @@ func rewriteValueARM_OpARMANDshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMANDconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -4225,7 +4225,7 @@ func rewriteValueARM_OpARMBICconst_0(v *Value) bool {
        }
        // match: (BICconst [c] x)
        // cond: !isARMImmRot(uint32(c)) && isARMImmRot(^uint32(c))
-       // result: (ANDconst [int64(^uint32(c))] x)
+       // result: (ANDconst [int64(int32(^uint32(c)))] x)
        for {
                c := v.AuxInt
                x := v.Args[0]
@@ -4233,7 +4233,7 @@ func rewriteValueARM_OpARMBICconst_0(v *Value) bool {
                        break
                }
                v.reset(OpARMANDconst)
-               v.AuxInt = int64(^uint32(c))
+               v.AuxInt = int64(int32(^uint32(c)))
                v.AddArg(x)
                return true
        }
@@ -4272,7 +4272,7 @@ func rewriteValueARM_OpARMBICconst_0(v *Value) bool {
 func rewriteValueARM_OpARMBICshiftLL_0(v *Value) bool {
        // match: (BICshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (BICconst x [int64(uint32(c)<<uint64(d))])
+       // result: (BICconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -4283,7 +4283,7 @@ func rewriteValueARM_OpARMBICshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMBICconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -4398,7 +4398,7 @@ func rewriteValueARM_OpARMBICshiftRAreg_0(v *Value) bool {
 func rewriteValueARM_OpARMBICshiftRL_0(v *Value) bool {
        // match: (BICshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (BICconst x [int64(uint32(c)>>uint64(d))])
+       // result: (BICconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -4409,7 +4409,7 @@ func rewriteValueARM_OpARMBICshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMBICconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -4864,7 +4864,7 @@ func rewriteValueARM_OpARMCMNshiftLL_0(v *Value) bool {
        }
        // match: (CMNshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (CMNconst x [int64(uint32(c)<<uint64(d))])
+       // result: (CMNconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -4875,7 +4875,7 @@ func rewriteValueARM_OpARMCMNshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMCMNconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -5034,7 +5034,7 @@ func rewriteValueARM_OpARMCMNshiftRL_0(v *Value) bool {
        }
        // match: (CMNshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (CMNconst x [int64(uint32(c)>>uint64(d))])
+       // result: (CMNconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -5045,7 +5045,7 @@ func rewriteValueARM_OpARMCMNshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMCMNconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -5789,7 +5789,7 @@ func rewriteValueARM_OpARMCMPshiftLL_0(v *Value) bool {
        }
        // match: (CMPshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (CMPconst x [int64(uint32(c)<<uint64(d))])
+       // result: (CMPconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -5800,7 +5800,7 @@ func rewriteValueARM_OpARMCMPshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMCMPconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -5967,7 +5967,7 @@ func rewriteValueARM_OpARMCMPshiftRL_0(v *Value) bool {
        }
        // match: (CMPshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (CMPconst x [int64(uint32(c)>>uint64(d))])
+       // result: (CMPconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -5978,7 +5978,7 @@ func rewriteValueARM_OpARMCMPshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMCMPconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -11870,7 +11870,7 @@ func rewriteValueARM_OpARMORshiftLL_0(v *Value) bool {
        }
        // match: (ORshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ORconst x [int64(uint32(c)<<uint64(d))])
+       // result: (ORconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -11881,7 +11881,7 @@ func rewriteValueARM_OpARMORshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMORconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -12108,7 +12108,7 @@ func rewriteValueARM_OpARMORshiftRL_0(v *Value) bool {
        }
        // match: (ORshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (ORconst x [int64(uint32(c)>>uint64(d))])
+       // result: (ORconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -12119,7 +12119,7 @@ func rewriteValueARM_OpARMORshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMORconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -12533,7 +12533,7 @@ func rewriteValueARM_OpARMRSBSshiftLL_0(v *Value) bool {
        }
        // match: (RSBSshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (RSBSconst x [int64(uint32(c)<<uint64(d))])
+       // result: (RSBSconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -12544,7 +12544,7 @@ func rewriteValueARM_OpARMRSBSshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMRSBSconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -12703,7 +12703,7 @@ func rewriteValueARM_OpARMRSBSshiftRL_0(v *Value) bool {
        }
        // match: (RSBSshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (RSBSconst x [int64(uint32(c)>>uint64(d))])
+       // result: (RSBSconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -12714,7 +12714,7 @@ func rewriteValueARM_OpARMRSBSshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMRSBSconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -12853,7 +12853,7 @@ func rewriteValueARM_OpARMRSBshiftLL_0(v *Value) bool {
        }
        // match: (RSBshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (RSBconst x [int64(uint32(c)<<uint64(d))])
+       // result: (RSBconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -12864,7 +12864,7 @@ func rewriteValueARM_OpARMRSBshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMRSBconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -13067,7 +13067,7 @@ func rewriteValueARM_OpARMRSBshiftRL_0(v *Value) bool {
        }
        // match: (RSBshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (RSBconst x [int64(uint32(c)>>uint64(d))])
+       // result: (RSBconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -13078,7 +13078,7 @@ func rewriteValueARM_OpARMRSBshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMRSBconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -13217,7 +13217,7 @@ func rewriteValueARM_OpARMRSCshiftLL_0(v *Value) bool {
        }
        // match: (RSCshiftLL x (MOVWconst [c]) [d] flags)
        // cond:
-       // result: (RSCconst x [int64(uint32(c)<<uint64(d))] flags)
+       // result: (RSCconst x [int64(int32(uint32(c)<<uint64(d)))] flags)
        for {
                d := v.AuxInt
                _ = v.Args[2]
@@ -13229,7 +13229,7 @@ func rewriteValueARM_OpARMRSCshiftLL_0(v *Value) bool {
                c := v_1.AuxInt
                flags := v.Args[2]
                v.reset(OpARMRSCconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                v.AddArg(flags)
                return true
@@ -13403,7 +13403,7 @@ func rewriteValueARM_OpARMRSCshiftRL_0(v *Value) bool {
        }
        // match: (RSCshiftRL x (MOVWconst [c]) [d] flags)
        // cond:
-       // result: (RSCconst x [int64(uint32(c)>>uint64(d))] flags)
+       // result: (RSCconst x [int64(int32(uint32(c)>>uint64(d)))] flags)
        for {
                d := v.AuxInt
                _ = v.Args[2]
@@ -13415,7 +13415,7 @@ func rewriteValueARM_OpARMRSCshiftRL_0(v *Value) bool {
                c := v_1.AuxInt
                flags := v.Args[2]
                v.reset(OpARMRSCconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                v.AddArg(flags)
                return true
@@ -13825,7 +13825,7 @@ func rewriteValueARM_OpARMSBCshiftLL_0(v *Value) bool {
        }
        // match: (SBCshiftLL x (MOVWconst [c]) [d] flags)
        // cond:
-       // result: (SBCconst x [int64(uint32(c)<<uint64(d))] flags)
+       // result: (SBCconst x [int64(int32(uint32(c)<<uint64(d)))] flags)
        for {
                d := v.AuxInt
                _ = v.Args[2]
@@ -13837,7 +13837,7 @@ func rewriteValueARM_OpARMSBCshiftLL_0(v *Value) bool {
                c := v_1.AuxInt
                flags := v.Args[2]
                v.reset(OpARMSBCconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                v.AddArg(flags)
                return true
@@ -14011,7 +14011,7 @@ func rewriteValueARM_OpARMSBCshiftRL_0(v *Value) bool {
        }
        // match: (SBCshiftRL x (MOVWconst [c]) [d] flags)
        // cond:
-       // result: (SBCconst x [int64(uint32(c)>>uint64(d))] flags)
+       // result: (SBCconst x [int64(int32(uint32(c)>>uint64(d)))] flags)
        for {
                d := v.AuxInt
                _ = v.Args[2]
@@ -14023,7 +14023,7 @@ func rewriteValueARM_OpARMSBCshiftRL_0(v *Value) bool {
                c := v_1.AuxInt
                flags := v.Args[2]
                v.reset(OpARMSBCconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                v.AddArg(flags)
                return true
@@ -14961,7 +14961,7 @@ func rewriteValueARM_OpARMSUBSshiftLL_0(v *Value) bool {
        }
        // match: (SUBSshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (SUBSconst x [int64(uint32(c)<<uint64(d))])
+       // result: (SUBSconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -14972,7 +14972,7 @@ func rewriteValueARM_OpARMSUBSshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMSUBSconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -15131,7 +15131,7 @@ func rewriteValueARM_OpARMSUBSshiftRL_0(v *Value) bool {
        }
        // match: (SUBSshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (SUBSconst x [int64(uint32(c)>>uint64(d))])
+       // result: (SUBSconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -15142,7 +15142,7 @@ func rewriteValueARM_OpARMSUBSshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMSUBSconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -15326,7 +15326,7 @@ func rewriteValueARM_OpARMSUBshiftLL_0(v *Value) bool {
        }
        // match: (SUBshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (SUBconst x [int64(uint32(c)<<uint64(d))])
+       // result: (SUBconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -15337,7 +15337,7 @@ func rewriteValueARM_OpARMSUBshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMSUBconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -15540,7 +15540,7 @@ func rewriteValueARM_OpARMSUBshiftRL_0(v *Value) bool {
        }
        // match: (SUBshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (SUBconst x [int64(uint32(c)>>uint64(d))])
+       // result: (SUBconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -15551,7 +15551,7 @@ func rewriteValueARM_OpARMSUBshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMSUBconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -15958,7 +15958,7 @@ func rewriteValueARM_OpARMTEQshiftLL_0(v *Value) bool {
        }
        // match: (TEQshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (TEQconst x [int64(uint32(c)<<uint64(d))])
+       // result: (TEQconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -15969,7 +15969,7 @@ func rewriteValueARM_OpARMTEQshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMTEQconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -16128,7 +16128,7 @@ func rewriteValueARM_OpARMTEQshiftRL_0(v *Value) bool {
        }
        // match: (TEQshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (TEQconst x [int64(uint32(c)>>uint64(d))])
+       // result: (TEQconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -16139,7 +16139,7 @@ func rewriteValueARM_OpARMTEQshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMTEQconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -16524,7 +16524,7 @@ func rewriteValueARM_OpARMTSTshiftLL_0(v *Value) bool {
        }
        // match: (TSTshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (TSTconst x [int64(uint32(c)<<uint64(d))])
+       // result: (TSTconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -16535,7 +16535,7 @@ func rewriteValueARM_OpARMTSTshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMTSTconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -16694,7 +16694,7 @@ func rewriteValueARM_OpARMTSTshiftRL_0(v *Value) bool {
        }
        // match: (TSTshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (TSTconst x [int64(uint32(c)>>uint64(d))])
+       // result: (TSTconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -16705,7 +16705,7 @@ func rewriteValueARM_OpARMTSTshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMTSTconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -17134,7 +17134,7 @@ func rewriteValueARM_OpARMXORshiftLL_0(v *Value) bool {
        }
        // match: (XORshiftLL x (MOVWconst [c]) [d])
        // cond:
-       // result: (XORconst x [int64(uint32(c)<<uint64(d))])
+       // result: (XORconst x [int64(int32(uint32(c)<<uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -17145,7 +17145,7 @@ func rewriteValueARM_OpARMXORshiftLL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMXORconst)
-               v.AuxInt = int64(uint32(c) << uint64(d))
+               v.AuxInt = int64(int32(uint32(c) << uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -17370,7 +17370,7 @@ func rewriteValueARM_OpARMXORshiftRL_0(v *Value) bool {
        }
        // match: (XORshiftRL x (MOVWconst [c]) [d])
        // cond:
-       // result: (XORconst x [int64(uint32(c)>>uint64(d))])
+       // result: (XORconst x [int64(int32(uint32(c)>>uint64(d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -17381,7 +17381,7 @@ func rewriteValueARM_OpARMXORshiftRL_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMXORconst)
-               v.AuxInt = int64(uint32(c) >> uint64(d))
+               v.AuxInt = int64(int32(uint32(c) >> uint64(d)))
                v.AddArg(x)
                return true
        }
@@ -17499,7 +17499,7 @@ func rewriteValueARM_OpARMXORshiftRR_0(v *Value) bool {
        }
        // match: (XORshiftRR x (MOVWconst [c]) [d])
        // cond:
-       // result: (XORconst x [int64(uint32(c)>>uint64(d)|uint32(c)<<uint64(32-d))])
+       // result: (XORconst x [int64(int32(uint32(c)>>uint64(d)|uint32(c)<<uint64(32-d)))])
        for {
                d := v.AuxInt
                _ = v.Args[1]
@@ -17510,7 +17510,7 @@ func rewriteValueARM_OpARMXORshiftRR_0(v *Value) bool {
                }
                c := v_1.AuxInt
                v.reset(OpARMXORconst)
-               v.AuxInt = int64(uint32(c)>>uint64(d) | uint32(c)<<uint64(32-d))
+               v.AuxInt = int64(int32(uint32(c)>>uint64(d) | uint32(c)<<uint64(32-d)))
                v.AddArg(x)
                return true
        }