Home | History | Annotate | Download | only in testdata
      1 // run
      2 // Code generated by gen/arithBoundaryGen.go. DO NOT EDIT.
      3 
      4 package main
      5 
      6 import "fmt"
      7 
      8 type utd64 struct {
      9 	a, b                    uint64
     10 	add, sub, mul, div, mod uint64
     11 }
     12 type itd64 struct {
     13 	a, b                    int64
     14 	add, sub, mul, div, mod int64
     15 }
     16 type utd32 struct {
     17 	a, b                    uint32
     18 	add, sub, mul, div, mod uint32
     19 }
     20 type itd32 struct {
     21 	a, b                    int32
     22 	add, sub, mul, div, mod int32
     23 }
     24 type utd16 struct {
     25 	a, b                    uint16
     26 	add, sub, mul, div, mod uint16
     27 }
     28 type itd16 struct {
     29 	a, b                    int16
     30 	add, sub, mul, div, mod int16
     31 }
     32 type utd8 struct {
     33 	a, b                    uint8
     34 	add, sub, mul, div, mod uint8
     35 }
     36 type itd8 struct {
     37 	a, b                    int8
     38 	add, sub, mul, div, mod int8
     39 }
     40 
     41 //go:noinline
     42 func add_uint64_ssa(a, b uint64) uint64 {
     43 	return a + b
     44 }
     45 
     46 //go:noinline
     47 func sub_uint64_ssa(a, b uint64) uint64 {
     48 	return a - b
     49 }
     50 
     51 //go:noinline
     52 func div_uint64_ssa(a, b uint64) uint64 {
     53 	return a / b
     54 }
     55 
     56 //go:noinline
     57 func mod_uint64_ssa(a, b uint64) uint64 {
     58 	return a % b
     59 }
     60 
     61 //go:noinline
     62 func mul_uint64_ssa(a, b uint64) uint64 {
     63 	return a * b
     64 }
     65 
     66 //go:noinline
     67 func add_int64_ssa(a, b int64) int64 {
     68 	return a + b
     69 }
     70 
     71 //go:noinline
     72 func sub_int64_ssa(a, b int64) int64 {
     73 	return a - b
     74 }
     75 
     76 //go:noinline
     77 func div_int64_ssa(a, b int64) int64 {
     78 	return a / b
     79 }
     80 
     81 //go:noinline
     82 func mod_int64_ssa(a, b int64) int64 {
     83 	return a % b
     84 }
     85 
     86 //go:noinline
     87 func mul_int64_ssa(a, b int64) int64 {
     88 	return a * b
     89 }
     90 
     91 //go:noinline
     92 func add_uint32_ssa(a, b uint32) uint32 {
     93 	return a + b
     94 }
     95 
     96 //go:noinline
     97 func sub_uint32_ssa(a, b uint32) uint32 {
     98 	return a - b
     99 }
    100 
    101 //go:noinline
    102 func div_uint32_ssa(a, b uint32) uint32 {
    103 	return a / b
    104 }
    105 
    106 //go:noinline
    107 func mod_uint32_ssa(a, b uint32) uint32 {
    108 	return a % b
    109 }
    110 
    111 //go:noinline
    112 func mul_uint32_ssa(a, b uint32) uint32 {
    113 	return a * b
    114 }
    115 
    116 //go:noinline
    117 func add_int32_ssa(a, b int32) int32 {
    118 	return a + b
    119 }
    120 
    121 //go:noinline
    122 func sub_int32_ssa(a, b int32) int32 {
    123 	return a - b
    124 }
    125 
    126 //go:noinline
    127 func div_int32_ssa(a, b int32) int32 {
    128 	return a / b
    129 }
    130 
    131 //go:noinline
    132 func mod_int32_ssa(a, b int32) int32 {
    133 	return a % b
    134 }
    135 
    136 //go:noinline
    137 func mul_int32_ssa(a, b int32) int32 {
    138 	return a * b
    139 }
    140 
    141 //go:noinline
    142 func add_uint16_ssa(a, b uint16) uint16 {
    143 	return a + b
    144 }
    145 
    146 //go:noinline
    147 func sub_uint16_ssa(a, b uint16) uint16 {
    148 	return a - b
    149 }
    150 
    151 //go:noinline
    152 func div_uint16_ssa(a, b uint16) uint16 {
    153 	return a / b
    154 }
    155 
    156 //go:noinline
    157 func mod_uint16_ssa(a, b uint16) uint16 {
    158 	return a % b
    159 }
    160 
    161 //go:noinline
    162 func mul_uint16_ssa(a, b uint16) uint16 {
    163 	return a * b
    164 }
    165 
    166 //go:noinline
    167 func add_int16_ssa(a, b int16) int16 {
    168 	return a + b
    169 }
    170 
    171 //go:noinline
    172 func sub_int16_ssa(a, b int16) int16 {
    173 	return a - b
    174 }
    175 
    176 //go:noinline
    177 func div_int16_ssa(a, b int16) int16 {
    178 	return a / b
    179 }
    180 
    181 //go:noinline
    182 func mod_int16_ssa(a, b int16) int16 {
    183 	return a % b
    184 }
    185 
    186 //go:noinline
    187 func mul_int16_ssa(a, b int16) int16 {
    188 	return a * b
    189 }
    190 
    191 //go:noinline
    192 func add_uint8_ssa(a, b uint8) uint8 {
    193 	return a + b
    194 }
    195 
    196 //go:noinline
    197 func sub_uint8_ssa(a, b uint8) uint8 {
    198 	return a - b
    199 }
    200 
    201 //go:noinline
    202 func div_uint8_ssa(a, b uint8) uint8 {
    203 	return a / b
    204 }
    205 
    206 //go:noinline
    207 func mod_uint8_ssa(a, b uint8) uint8 {
    208 	return a % b
    209 }
    210 
    211 //go:noinline
    212 func mul_uint8_ssa(a, b uint8) uint8 {
    213 	return a * b
    214 }
    215 
    216 //go:noinline
    217 func add_int8_ssa(a, b int8) int8 {
    218 	return a + b
    219 }
    220 
    221 //go:noinline
    222 func sub_int8_ssa(a, b int8) int8 {
    223 	return a - b
    224 }
    225 
    226 //go:noinline
    227 func div_int8_ssa(a, b int8) int8 {
    228 	return a / b
    229 }
    230 
    231 //go:noinline
    232 func mod_int8_ssa(a, b int8) int8 {
    233 	return a % b
    234 }
    235 
    236 //go:noinline
    237 func mul_int8_ssa(a, b int8) int8 {
    238 	return a * b
    239 }
    240 
    241 var uint64_data []utd64 = []utd64{utd64{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    242 	utd64{a: 0, b: 1, add: 1, sub: 18446744073709551615, mul: 0, div: 0, mod: 0},
    243 	utd64{a: 0, b: 4294967296, add: 4294967296, sub: 18446744069414584320, mul: 0, div: 0, mod: 0},
    244 	utd64{a: 0, b: 18446744073709551615, add: 18446744073709551615, sub: 1, mul: 0, div: 0, mod: 0},
    245 	utd64{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    246 	utd64{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    247 	utd64{a: 1, b: 4294967296, add: 4294967297, sub: 18446744069414584321, mul: 4294967296, div: 0, mod: 1},
    248 	utd64{a: 1, b: 18446744073709551615, add: 0, sub: 2, mul: 18446744073709551615, div: 0, mod: 1},
    249 	utd64{a: 4294967296, b: 0, add: 4294967296, sub: 4294967296, mul: 0},
    250 	utd64{a: 4294967296, b: 1, add: 4294967297, sub: 4294967295, mul: 4294967296, div: 4294967296, mod: 0},
    251 	utd64{a: 4294967296, b: 4294967296, add: 8589934592, sub: 0, mul: 0, div: 1, mod: 0},
    252 	utd64{a: 4294967296, b: 18446744073709551615, add: 4294967295, sub: 4294967297, mul: 18446744069414584320, div: 0, mod: 4294967296},
    253 	utd64{a: 18446744073709551615, b: 0, add: 18446744073709551615, sub: 18446744073709551615, mul: 0},
    254 	utd64{a: 18446744073709551615, b: 1, add: 0, sub: 18446744073709551614, mul: 18446744073709551615, div: 18446744073709551615, mod: 0},
    255 	utd64{a: 18446744073709551615, b: 4294967296, add: 4294967295, sub: 18446744069414584319, mul: 18446744069414584320, div: 4294967295, mod: 4294967295},
    256 	utd64{a: 18446744073709551615, b: 18446744073709551615, add: 18446744073709551614, sub: 0, mul: 1, div: 1, mod: 0},
    257 }
    258 var int64_data []itd64 = []itd64{itd64{a: -9223372036854775808, b: -9223372036854775808, add: 0, sub: 0, mul: 0, div: 1, mod: 0},
    259 	itd64{a: -9223372036854775808, b: -9223372036854775807, add: 1, sub: -1, mul: -9223372036854775808, div: 1, mod: -1},
    260 	itd64{a: -9223372036854775808, b: -4294967296, add: 9223372032559808512, sub: -9223372032559808512, mul: 0, div: 2147483648, mod: 0},
    261 	itd64{a: -9223372036854775808, b: -1, add: 9223372036854775807, sub: -9223372036854775807, mul: -9223372036854775808, div: -9223372036854775808, mod: 0},
    262 	itd64{a: -9223372036854775808, b: 0, add: -9223372036854775808, sub: -9223372036854775808, mul: 0},
    263 	itd64{a: -9223372036854775808, b: 1, add: -9223372036854775807, sub: 9223372036854775807, mul: -9223372036854775808, div: -9223372036854775808, mod: 0},
    264 	itd64{a: -9223372036854775808, b: 4294967296, add: -9223372032559808512, sub: 9223372032559808512, mul: 0, div: -2147483648, mod: 0},
    265 	itd64{a: -9223372036854775808, b: 9223372036854775806, add: -2, sub: 2, mul: 0, div: -1, mod: -2},
    266 	itd64{a: -9223372036854775808, b: 9223372036854775807, add: -1, sub: 1, mul: -9223372036854775808, div: -1, mod: -1},
    267 	itd64{a: -9223372036854775807, b: -9223372036854775808, add: 1, sub: 1, mul: -9223372036854775808, div: 0, mod: -9223372036854775807},
    268 	itd64{a: -9223372036854775807, b: -9223372036854775807, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    269 	itd64{a: -9223372036854775807, b: -4294967296, add: 9223372032559808513, sub: -9223372032559808511, mul: -4294967296, div: 2147483647, mod: -4294967295},
    270 	itd64{a: -9223372036854775807, b: -1, add: -9223372036854775808, sub: -9223372036854775806, mul: 9223372036854775807, div: 9223372036854775807, mod: 0},
    271 	itd64{a: -9223372036854775807, b: 0, add: -9223372036854775807, sub: -9223372036854775807, mul: 0},
    272 	itd64{a: -9223372036854775807, b: 1, add: -9223372036854775806, sub: -9223372036854775808, mul: -9223372036854775807, div: -9223372036854775807, mod: 0},
    273 	itd64{a: -9223372036854775807, b: 4294967296, add: -9223372032559808511, sub: 9223372032559808513, mul: 4294967296, div: -2147483647, mod: -4294967295},
    274 	itd64{a: -9223372036854775807, b: 9223372036854775806, add: -1, sub: 3, mul: 9223372036854775806, div: -1, mod: -1},
    275 	itd64{a: -9223372036854775807, b: 9223372036854775807, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    276 	itd64{a: -4294967296, b: -9223372036854775808, add: 9223372032559808512, sub: 9223372032559808512, mul: 0, div: 0, mod: -4294967296},
    277 	itd64{a: -4294967296, b: -9223372036854775807, add: 9223372032559808513, sub: 9223372032559808511, mul: -4294967296, div: 0, mod: -4294967296},
    278 	itd64{a: -4294967296, b: -4294967296, add: -8589934592, sub: 0, mul: 0, div: 1, mod: 0},
    279 	itd64{a: -4294967296, b: -1, add: -4294967297, sub: -4294967295, mul: 4294967296, div: 4294967296, mod: 0},
    280 	itd64{a: -4294967296, b: 0, add: -4294967296, sub: -4294967296, mul: 0},
    281 	itd64{a: -4294967296, b: 1, add: -4294967295, sub: -4294967297, mul: -4294967296, div: -4294967296, mod: 0},
    282 	itd64{a: -4294967296, b: 4294967296, add: 0, sub: -8589934592, mul: 0, div: -1, mod: 0},
    283 	itd64{a: -4294967296, b: 9223372036854775806, add: 9223372032559808510, sub: 9223372032559808514, mul: 8589934592, div: 0, mod: -4294967296},
    284 	itd64{a: -4294967296, b: 9223372036854775807, add: 9223372032559808511, sub: 9223372032559808513, mul: 4294967296, div: 0, mod: -4294967296},
    285 	itd64{a: -1, b: -9223372036854775808, add: 9223372036854775807, sub: 9223372036854775807, mul: -9223372036854775808, div: 0, mod: -1},
    286 	itd64{a: -1, b: -9223372036854775807, add: -9223372036854775808, sub: 9223372036854775806, mul: 9223372036854775807, div: 0, mod: -1},
    287 	itd64{a: -1, b: -4294967296, add: -4294967297, sub: 4294967295, mul: 4294967296, div: 0, mod: -1},
    288 	itd64{a: -1, b: -1, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    289 	itd64{a: -1, b: 0, add: -1, sub: -1, mul: 0},
    290 	itd64{a: -1, b: 1, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    291 	itd64{a: -1, b: 4294967296, add: 4294967295, sub: -4294967297, mul: -4294967296, div: 0, mod: -1},
    292 	itd64{a: -1, b: 9223372036854775806, add: 9223372036854775805, sub: -9223372036854775807, mul: -9223372036854775806, div: 0, mod: -1},
    293 	itd64{a: -1, b: 9223372036854775807, add: 9223372036854775806, sub: -9223372036854775808, mul: -9223372036854775807, div: 0, mod: -1},
    294 	itd64{a: 0, b: -9223372036854775808, add: -9223372036854775808, sub: -9223372036854775808, mul: 0, div: 0, mod: 0},
    295 	itd64{a: 0, b: -9223372036854775807, add: -9223372036854775807, sub: 9223372036854775807, mul: 0, div: 0, mod: 0},
    296 	itd64{a: 0, b: -4294967296, add: -4294967296, sub: 4294967296, mul: 0, div: 0, mod: 0},
    297 	itd64{a: 0, b: -1, add: -1, sub: 1, mul: 0, div: 0, mod: 0},
    298 	itd64{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    299 	itd64{a: 0, b: 1, add: 1, sub: -1, mul: 0, div: 0, mod: 0},
    300 	itd64{a: 0, b: 4294967296, add: 4294967296, sub: -4294967296, mul: 0, div: 0, mod: 0},
    301 	itd64{a: 0, b: 9223372036854775806, add: 9223372036854775806, sub: -9223372036854775806, mul: 0, div: 0, mod: 0},
    302 	itd64{a: 0, b: 9223372036854775807, add: 9223372036854775807, sub: -9223372036854775807, mul: 0, div: 0, mod: 0},
    303 	itd64{a: 1, b: -9223372036854775808, add: -9223372036854775807, sub: -9223372036854775807, mul: -9223372036854775808, div: 0, mod: 1},
    304 	itd64{a: 1, b: -9223372036854775807, add: -9223372036854775806, sub: -9223372036854775808, mul: -9223372036854775807, div: 0, mod: 1},
    305 	itd64{a: 1, b: -4294967296, add: -4294967295, sub: 4294967297, mul: -4294967296, div: 0, mod: 1},
    306 	itd64{a: 1, b: -1, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    307 	itd64{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    308 	itd64{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    309 	itd64{a: 1, b: 4294967296, add: 4294967297, sub: -4294967295, mul: 4294967296, div: 0, mod: 1},
    310 	itd64{a: 1, b: 9223372036854775806, add: 9223372036854775807, sub: -9223372036854775805, mul: 9223372036854775806, div: 0, mod: 1},
    311 	itd64{a: 1, b: 9223372036854775807, add: -9223372036854775808, sub: -9223372036854775806, mul: 9223372036854775807, div: 0, mod: 1},
    312 	itd64{a: 4294967296, b: -9223372036854775808, add: -9223372032559808512, sub: -9223372032559808512, mul: 0, div: 0, mod: 4294967296},
    313 	itd64{a: 4294967296, b: -9223372036854775807, add: -9223372032559808511, sub: -9223372032559808513, mul: 4294967296, div: 0, mod: 4294967296},
    314 	itd64{a: 4294967296, b: -4294967296, add: 0, sub: 8589934592, mul: 0, div: -1, mod: 0},
    315 	itd64{a: 4294967296, b: -1, add: 4294967295, sub: 4294967297, mul: -4294967296, div: -4294967296, mod: 0},
    316 	itd64{a: 4294967296, b: 0, add: 4294967296, sub: 4294967296, mul: 0},
    317 	itd64{a: 4294967296, b: 1, add: 4294967297, sub: 4294967295, mul: 4294967296, div: 4294967296, mod: 0},
    318 	itd64{a: 4294967296, b: 4294967296, add: 8589934592, sub: 0, mul: 0, div: 1, mod: 0},
    319 	itd64{a: 4294967296, b: 9223372036854775806, add: -9223372032559808514, sub: -9223372032559808510, mul: -8589934592, div: 0, mod: 4294967296},
    320 	itd64{a: 4294967296, b: 9223372036854775807, add: -9223372032559808513, sub: -9223372032559808511, mul: -4294967296, div: 0, mod: 4294967296},
    321 	itd64{a: 9223372036854775806, b: -9223372036854775808, add: -2, sub: -2, mul: 0, div: 0, mod: 9223372036854775806},
    322 	itd64{a: 9223372036854775806, b: -9223372036854775807, add: -1, sub: -3, mul: 9223372036854775806, div: 0, mod: 9223372036854775806},
    323 	itd64{a: 9223372036854775806, b: -4294967296, add: 9223372032559808510, sub: -9223372032559808514, mul: 8589934592, div: -2147483647, mod: 4294967294},
    324 	itd64{a: 9223372036854775806, b: -1, add: 9223372036854775805, sub: 9223372036854775807, mul: -9223372036854775806, div: -9223372036854775806, mod: 0},
    325 	itd64{a: 9223372036854775806, b: 0, add: 9223372036854775806, sub: 9223372036854775806, mul: 0},
    326 	itd64{a: 9223372036854775806, b: 1, add: 9223372036854775807, sub: 9223372036854775805, mul: 9223372036854775806, div: 9223372036854775806, mod: 0},
    327 	itd64{a: 9223372036854775806, b: 4294967296, add: -9223372032559808514, sub: 9223372032559808510, mul: -8589934592, div: 2147483647, mod: 4294967294},
    328 	itd64{a: 9223372036854775806, b: 9223372036854775806, add: -4, sub: 0, mul: 4, div: 1, mod: 0},
    329 	itd64{a: 9223372036854775806, b: 9223372036854775807, add: -3, sub: -1, mul: -9223372036854775806, div: 0, mod: 9223372036854775806},
    330 	itd64{a: 9223372036854775807, b: -9223372036854775808, add: -1, sub: -1, mul: -9223372036854775808, div: 0, mod: 9223372036854775807},
    331 	itd64{a: 9223372036854775807, b: -9223372036854775807, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    332 	itd64{a: 9223372036854775807, b: -4294967296, add: 9223372032559808511, sub: -9223372032559808513, mul: 4294967296, div: -2147483647, mod: 4294967295},
    333 	itd64{a: 9223372036854775807, b: -1, add: 9223372036854775806, sub: -9223372036854775808, mul: -9223372036854775807, div: -9223372036854775807, mod: 0},
    334 	itd64{a: 9223372036854775807, b: 0, add: 9223372036854775807, sub: 9223372036854775807, mul: 0},
    335 	itd64{a: 9223372036854775807, b: 1, add: -9223372036854775808, sub: 9223372036854775806, mul: 9223372036854775807, div: 9223372036854775807, mod: 0},
    336 	itd64{a: 9223372036854775807, b: 4294967296, add: -9223372032559808513, sub: 9223372032559808511, mul: -4294967296, div: 2147483647, mod: 4294967295},
    337 	itd64{a: 9223372036854775807, b: 9223372036854775806, add: -3, sub: 1, mul: -9223372036854775806, div: 1, mod: 1},
    338 	itd64{a: 9223372036854775807, b: 9223372036854775807, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    339 }
    340 var uint32_data []utd32 = []utd32{utd32{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    341 	utd32{a: 0, b: 1, add: 1, sub: 4294967295, mul: 0, div: 0, mod: 0},
    342 	utd32{a: 0, b: 4294967295, add: 4294967295, sub: 1, mul: 0, div: 0, mod: 0},
    343 	utd32{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    344 	utd32{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    345 	utd32{a: 1, b: 4294967295, add: 0, sub: 2, mul: 4294967295, div: 0, mod: 1},
    346 	utd32{a: 4294967295, b: 0, add: 4294967295, sub: 4294967295, mul: 0},
    347 	utd32{a: 4294967295, b: 1, add: 0, sub: 4294967294, mul: 4294967295, div: 4294967295, mod: 0},
    348 	utd32{a: 4294967295, b: 4294967295, add: 4294967294, sub: 0, mul: 1, div: 1, mod: 0},
    349 }
    350 var int32_data []itd32 = []itd32{itd32{a: -2147483648, b: -2147483648, add: 0, sub: 0, mul: 0, div: 1, mod: 0},
    351 	itd32{a: -2147483648, b: -2147483647, add: 1, sub: -1, mul: -2147483648, div: 1, mod: -1},
    352 	itd32{a: -2147483648, b: -1, add: 2147483647, sub: -2147483647, mul: -2147483648, div: -2147483648, mod: 0},
    353 	itd32{a: -2147483648, b: 0, add: -2147483648, sub: -2147483648, mul: 0},
    354 	itd32{a: -2147483648, b: 1, add: -2147483647, sub: 2147483647, mul: -2147483648, div: -2147483648, mod: 0},
    355 	itd32{a: -2147483648, b: 2147483647, add: -1, sub: 1, mul: -2147483648, div: -1, mod: -1},
    356 	itd32{a: -2147483647, b: -2147483648, add: 1, sub: 1, mul: -2147483648, div: 0, mod: -2147483647},
    357 	itd32{a: -2147483647, b: -2147483647, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    358 	itd32{a: -2147483647, b: -1, add: -2147483648, sub: -2147483646, mul: 2147483647, div: 2147483647, mod: 0},
    359 	itd32{a: -2147483647, b: 0, add: -2147483647, sub: -2147483647, mul: 0},
    360 	itd32{a: -2147483647, b: 1, add: -2147483646, sub: -2147483648, mul: -2147483647, div: -2147483647, mod: 0},
    361 	itd32{a: -2147483647, b: 2147483647, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    362 	itd32{a: -1, b: -2147483648, add: 2147483647, sub: 2147483647, mul: -2147483648, div: 0, mod: -1},
    363 	itd32{a: -1, b: -2147483647, add: -2147483648, sub: 2147483646, mul: 2147483647, div: 0, mod: -1},
    364 	itd32{a: -1, b: -1, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    365 	itd32{a: -1, b: 0, add: -1, sub: -1, mul: 0},
    366 	itd32{a: -1, b: 1, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    367 	itd32{a: -1, b: 2147483647, add: 2147483646, sub: -2147483648, mul: -2147483647, div: 0, mod: -1},
    368 	itd32{a: 0, b: -2147483648, add: -2147483648, sub: -2147483648, mul: 0, div: 0, mod: 0},
    369 	itd32{a: 0, b: -2147483647, add: -2147483647, sub: 2147483647, mul: 0, div: 0, mod: 0},
    370 	itd32{a: 0, b: -1, add: -1, sub: 1, mul: 0, div: 0, mod: 0},
    371 	itd32{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    372 	itd32{a: 0, b: 1, add: 1, sub: -1, mul: 0, div: 0, mod: 0},
    373 	itd32{a: 0, b: 2147483647, add: 2147483647, sub: -2147483647, mul: 0, div: 0, mod: 0},
    374 	itd32{a: 1, b: -2147483648, add: -2147483647, sub: -2147483647, mul: -2147483648, div: 0, mod: 1},
    375 	itd32{a: 1, b: -2147483647, add: -2147483646, sub: -2147483648, mul: -2147483647, div: 0, mod: 1},
    376 	itd32{a: 1, b: -1, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    377 	itd32{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    378 	itd32{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    379 	itd32{a: 1, b: 2147483647, add: -2147483648, sub: -2147483646, mul: 2147483647, div: 0, mod: 1},
    380 	itd32{a: 2147483647, b: -2147483648, add: -1, sub: -1, mul: -2147483648, div: 0, mod: 2147483647},
    381 	itd32{a: 2147483647, b: -2147483647, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    382 	itd32{a: 2147483647, b: -1, add: 2147483646, sub: -2147483648, mul: -2147483647, div: -2147483647, mod: 0},
    383 	itd32{a: 2147483647, b: 0, add: 2147483647, sub: 2147483647, mul: 0},
    384 	itd32{a: 2147483647, b: 1, add: -2147483648, sub: 2147483646, mul: 2147483647, div: 2147483647, mod: 0},
    385 	itd32{a: 2147483647, b: 2147483647, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    386 }
    387 var uint16_data []utd16 = []utd16{utd16{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    388 	utd16{a: 0, b: 1, add: 1, sub: 65535, mul: 0, div: 0, mod: 0},
    389 	utd16{a: 0, b: 65535, add: 65535, sub: 1, mul: 0, div: 0, mod: 0},
    390 	utd16{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    391 	utd16{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    392 	utd16{a: 1, b: 65535, add: 0, sub: 2, mul: 65535, div: 0, mod: 1},
    393 	utd16{a: 65535, b: 0, add: 65535, sub: 65535, mul: 0},
    394 	utd16{a: 65535, b: 1, add: 0, sub: 65534, mul: 65535, div: 65535, mod: 0},
    395 	utd16{a: 65535, b: 65535, add: 65534, sub: 0, mul: 1, div: 1, mod: 0},
    396 }
    397 var int16_data []itd16 = []itd16{itd16{a: -32768, b: -32768, add: 0, sub: 0, mul: 0, div: 1, mod: 0},
    398 	itd16{a: -32768, b: -32767, add: 1, sub: -1, mul: -32768, div: 1, mod: -1},
    399 	itd16{a: -32768, b: -1, add: 32767, sub: -32767, mul: -32768, div: -32768, mod: 0},
    400 	itd16{a: -32768, b: 0, add: -32768, sub: -32768, mul: 0},
    401 	itd16{a: -32768, b: 1, add: -32767, sub: 32767, mul: -32768, div: -32768, mod: 0},
    402 	itd16{a: -32768, b: 32766, add: -2, sub: 2, mul: 0, div: -1, mod: -2},
    403 	itd16{a: -32768, b: 32767, add: -1, sub: 1, mul: -32768, div: -1, mod: -1},
    404 	itd16{a: -32767, b: -32768, add: 1, sub: 1, mul: -32768, div: 0, mod: -32767},
    405 	itd16{a: -32767, b: -32767, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    406 	itd16{a: -32767, b: -1, add: -32768, sub: -32766, mul: 32767, div: 32767, mod: 0},
    407 	itd16{a: -32767, b: 0, add: -32767, sub: -32767, mul: 0},
    408 	itd16{a: -32767, b: 1, add: -32766, sub: -32768, mul: -32767, div: -32767, mod: 0},
    409 	itd16{a: -32767, b: 32766, add: -1, sub: 3, mul: 32766, div: -1, mod: -1},
    410 	itd16{a: -32767, b: 32767, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    411 	itd16{a: -1, b: -32768, add: 32767, sub: 32767, mul: -32768, div: 0, mod: -1},
    412 	itd16{a: -1, b: -32767, add: -32768, sub: 32766, mul: 32767, div: 0, mod: -1},
    413 	itd16{a: -1, b: -1, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    414 	itd16{a: -1, b: 0, add: -1, sub: -1, mul: 0},
    415 	itd16{a: -1, b: 1, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    416 	itd16{a: -1, b: 32766, add: 32765, sub: -32767, mul: -32766, div: 0, mod: -1},
    417 	itd16{a: -1, b: 32767, add: 32766, sub: -32768, mul: -32767, div: 0, mod: -1},
    418 	itd16{a: 0, b: -32768, add: -32768, sub: -32768, mul: 0, div: 0, mod: 0},
    419 	itd16{a: 0, b: -32767, add: -32767, sub: 32767, mul: 0, div: 0, mod: 0},
    420 	itd16{a: 0, b: -1, add: -1, sub: 1, mul: 0, div: 0, mod: 0},
    421 	itd16{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    422 	itd16{a: 0, b: 1, add: 1, sub: -1, mul: 0, div: 0, mod: 0},
    423 	itd16{a: 0, b: 32766, add: 32766, sub: -32766, mul: 0, div: 0, mod: 0},
    424 	itd16{a: 0, b: 32767, add: 32767, sub: -32767, mul: 0, div: 0, mod: 0},
    425 	itd16{a: 1, b: -32768, add: -32767, sub: -32767, mul: -32768, div: 0, mod: 1},
    426 	itd16{a: 1, b: -32767, add: -32766, sub: -32768, mul: -32767, div: 0, mod: 1},
    427 	itd16{a: 1, b: -1, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    428 	itd16{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    429 	itd16{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    430 	itd16{a: 1, b: 32766, add: 32767, sub: -32765, mul: 32766, div: 0, mod: 1},
    431 	itd16{a: 1, b: 32767, add: -32768, sub: -32766, mul: 32767, div: 0, mod: 1},
    432 	itd16{a: 32766, b: -32768, add: -2, sub: -2, mul: 0, div: 0, mod: 32766},
    433 	itd16{a: 32766, b: -32767, add: -1, sub: -3, mul: 32766, div: 0, mod: 32766},
    434 	itd16{a: 32766, b: -1, add: 32765, sub: 32767, mul: -32766, div: -32766, mod: 0},
    435 	itd16{a: 32766, b: 0, add: 32766, sub: 32766, mul: 0},
    436 	itd16{a: 32766, b: 1, add: 32767, sub: 32765, mul: 32766, div: 32766, mod: 0},
    437 	itd16{a: 32766, b: 32766, add: -4, sub: 0, mul: 4, div: 1, mod: 0},
    438 	itd16{a: 32766, b: 32767, add: -3, sub: -1, mul: -32766, div: 0, mod: 32766},
    439 	itd16{a: 32767, b: -32768, add: -1, sub: -1, mul: -32768, div: 0, mod: 32767},
    440 	itd16{a: 32767, b: -32767, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    441 	itd16{a: 32767, b: -1, add: 32766, sub: -32768, mul: -32767, div: -32767, mod: 0},
    442 	itd16{a: 32767, b: 0, add: 32767, sub: 32767, mul: 0},
    443 	itd16{a: 32767, b: 1, add: -32768, sub: 32766, mul: 32767, div: 32767, mod: 0},
    444 	itd16{a: 32767, b: 32766, add: -3, sub: 1, mul: -32766, div: 1, mod: 1},
    445 	itd16{a: 32767, b: 32767, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    446 }
    447 var uint8_data []utd8 = []utd8{utd8{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    448 	utd8{a: 0, b: 1, add: 1, sub: 255, mul: 0, div: 0, mod: 0},
    449 	utd8{a: 0, b: 255, add: 255, sub: 1, mul: 0, div: 0, mod: 0},
    450 	utd8{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    451 	utd8{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    452 	utd8{a: 1, b: 255, add: 0, sub: 2, mul: 255, div: 0, mod: 1},
    453 	utd8{a: 255, b: 0, add: 255, sub: 255, mul: 0},
    454 	utd8{a: 255, b: 1, add: 0, sub: 254, mul: 255, div: 255, mod: 0},
    455 	utd8{a: 255, b: 255, add: 254, sub: 0, mul: 1, div: 1, mod: 0},
    456 }
    457 var int8_data []itd8 = []itd8{itd8{a: -128, b: -128, add: 0, sub: 0, mul: 0, div: 1, mod: 0},
    458 	itd8{a: -128, b: -127, add: 1, sub: -1, mul: -128, div: 1, mod: -1},
    459 	itd8{a: -128, b: -1, add: 127, sub: -127, mul: -128, div: -128, mod: 0},
    460 	itd8{a: -128, b: 0, add: -128, sub: -128, mul: 0},
    461 	itd8{a: -128, b: 1, add: -127, sub: 127, mul: -128, div: -128, mod: 0},
    462 	itd8{a: -128, b: 126, add: -2, sub: 2, mul: 0, div: -1, mod: -2},
    463 	itd8{a: -128, b: 127, add: -1, sub: 1, mul: -128, div: -1, mod: -1},
    464 	itd8{a: -127, b: -128, add: 1, sub: 1, mul: -128, div: 0, mod: -127},
    465 	itd8{a: -127, b: -127, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    466 	itd8{a: -127, b: -1, add: -128, sub: -126, mul: 127, div: 127, mod: 0},
    467 	itd8{a: -127, b: 0, add: -127, sub: -127, mul: 0},
    468 	itd8{a: -127, b: 1, add: -126, sub: -128, mul: -127, div: -127, mod: 0},
    469 	itd8{a: -127, b: 126, add: -1, sub: 3, mul: 126, div: -1, mod: -1},
    470 	itd8{a: -127, b: 127, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    471 	itd8{a: -1, b: -128, add: 127, sub: 127, mul: -128, div: 0, mod: -1},
    472 	itd8{a: -1, b: -127, add: -128, sub: 126, mul: 127, div: 0, mod: -1},
    473 	itd8{a: -1, b: -1, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    474 	itd8{a: -1, b: 0, add: -1, sub: -1, mul: 0},
    475 	itd8{a: -1, b: 1, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    476 	itd8{a: -1, b: 126, add: 125, sub: -127, mul: -126, div: 0, mod: -1},
    477 	itd8{a: -1, b: 127, add: 126, sub: -128, mul: -127, div: 0, mod: -1},
    478 	itd8{a: 0, b: -128, add: -128, sub: -128, mul: 0, div: 0, mod: 0},
    479 	itd8{a: 0, b: -127, add: -127, sub: 127, mul: 0, div: 0, mod: 0},
    480 	itd8{a: 0, b: -1, add: -1, sub: 1, mul: 0, div: 0, mod: 0},
    481 	itd8{a: 0, b: 0, add: 0, sub: 0, mul: 0},
    482 	itd8{a: 0, b: 1, add: 1, sub: -1, mul: 0, div: 0, mod: 0},
    483 	itd8{a: 0, b: 126, add: 126, sub: -126, mul: 0, div: 0, mod: 0},
    484 	itd8{a: 0, b: 127, add: 127, sub: -127, mul: 0, div: 0, mod: 0},
    485 	itd8{a: 1, b: -128, add: -127, sub: -127, mul: -128, div: 0, mod: 1},
    486 	itd8{a: 1, b: -127, add: -126, sub: -128, mul: -127, div: 0, mod: 1},
    487 	itd8{a: 1, b: -1, add: 0, sub: 2, mul: -1, div: -1, mod: 0},
    488 	itd8{a: 1, b: 0, add: 1, sub: 1, mul: 0},
    489 	itd8{a: 1, b: 1, add: 2, sub: 0, mul: 1, div: 1, mod: 0},
    490 	itd8{a: 1, b: 126, add: 127, sub: -125, mul: 126, div: 0, mod: 1},
    491 	itd8{a: 1, b: 127, add: -128, sub: -126, mul: 127, div: 0, mod: 1},
    492 	itd8{a: 126, b: -128, add: -2, sub: -2, mul: 0, div: 0, mod: 126},
    493 	itd8{a: 126, b: -127, add: -1, sub: -3, mul: 126, div: 0, mod: 126},
    494 	itd8{a: 126, b: -1, add: 125, sub: 127, mul: -126, div: -126, mod: 0},
    495 	itd8{a: 126, b: 0, add: 126, sub: 126, mul: 0},
    496 	itd8{a: 126, b: 1, add: 127, sub: 125, mul: 126, div: 126, mod: 0},
    497 	itd8{a: 126, b: 126, add: -4, sub: 0, mul: 4, div: 1, mod: 0},
    498 	itd8{a: 126, b: 127, add: -3, sub: -1, mul: -126, div: 0, mod: 126},
    499 	itd8{a: 127, b: -128, add: -1, sub: -1, mul: -128, div: 0, mod: 127},
    500 	itd8{a: 127, b: -127, add: 0, sub: -2, mul: -1, div: -1, mod: 0},
    501 	itd8{a: 127, b: -1, add: 126, sub: -128, mul: -127, div: -127, mod: 0},
    502 	itd8{a: 127, b: 0, add: 127, sub: 127, mul: 0},
    503 	itd8{a: 127, b: 1, add: -128, sub: 126, mul: 127, div: 127, mod: 0},
    504 	itd8{a: 127, b: 126, add: -3, sub: 1, mul: -126, div: 1, mod: 1},
    505 	itd8{a: 127, b: 127, add: -2, sub: 0, mul: 1, div: 1, mod: 0},
    506 }
    507 var failed bool
    508 
    509 func main() {
    510 
    511 	for _, v := range uint64_data {
    512 		if got := add_uint64_ssa(v.a, v.b); got != v.add {
    513 			fmt.Printf("add_uint64 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    514 			failed = true
    515 		}
    516 		if got := sub_uint64_ssa(v.a, v.b); got != v.sub {
    517 			fmt.Printf("sub_uint64 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    518 			failed = true
    519 		}
    520 		if v.b != 0 {
    521 			if got := div_uint64_ssa(v.a, v.b); got != v.div {
    522 				fmt.Printf("div_uint64 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    523 				failed = true
    524 			}
    525 
    526 		}
    527 		if v.b != 0 {
    528 			if got := mod_uint64_ssa(v.a, v.b); got != v.mod {
    529 				fmt.Printf("mod_uint64 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    530 				failed = true
    531 			}
    532 
    533 		}
    534 		if got := mul_uint64_ssa(v.a, v.b); got != v.mul {
    535 			fmt.Printf("mul_uint64 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    536 			failed = true
    537 		}
    538 	}
    539 	for _, v := range int64_data {
    540 		if got := add_int64_ssa(v.a, v.b); got != v.add {
    541 			fmt.Printf("add_int64 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    542 			failed = true
    543 		}
    544 		if got := sub_int64_ssa(v.a, v.b); got != v.sub {
    545 			fmt.Printf("sub_int64 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    546 			failed = true
    547 		}
    548 		if v.b != 0 {
    549 			if got := div_int64_ssa(v.a, v.b); got != v.div {
    550 				fmt.Printf("div_int64 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    551 				failed = true
    552 			}
    553 
    554 		}
    555 		if v.b != 0 {
    556 			if got := mod_int64_ssa(v.a, v.b); got != v.mod {
    557 				fmt.Printf("mod_int64 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    558 				failed = true
    559 			}
    560 
    561 		}
    562 		if got := mul_int64_ssa(v.a, v.b); got != v.mul {
    563 			fmt.Printf("mul_int64 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    564 			failed = true
    565 		}
    566 	}
    567 	for _, v := range uint32_data {
    568 		if got := add_uint32_ssa(v.a, v.b); got != v.add {
    569 			fmt.Printf("add_uint32 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    570 			failed = true
    571 		}
    572 		if got := sub_uint32_ssa(v.a, v.b); got != v.sub {
    573 			fmt.Printf("sub_uint32 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    574 			failed = true
    575 		}
    576 		if v.b != 0 {
    577 			if got := div_uint32_ssa(v.a, v.b); got != v.div {
    578 				fmt.Printf("div_uint32 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    579 				failed = true
    580 			}
    581 
    582 		}
    583 		if v.b != 0 {
    584 			if got := mod_uint32_ssa(v.a, v.b); got != v.mod {
    585 				fmt.Printf("mod_uint32 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    586 				failed = true
    587 			}
    588 
    589 		}
    590 		if got := mul_uint32_ssa(v.a, v.b); got != v.mul {
    591 			fmt.Printf("mul_uint32 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    592 			failed = true
    593 		}
    594 	}
    595 	for _, v := range int32_data {
    596 		if got := add_int32_ssa(v.a, v.b); got != v.add {
    597 			fmt.Printf("add_int32 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    598 			failed = true
    599 		}
    600 		if got := sub_int32_ssa(v.a, v.b); got != v.sub {
    601 			fmt.Printf("sub_int32 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    602 			failed = true
    603 		}
    604 		if v.b != 0 {
    605 			if got := div_int32_ssa(v.a, v.b); got != v.div {
    606 				fmt.Printf("div_int32 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    607 				failed = true
    608 			}
    609 
    610 		}
    611 		if v.b != 0 {
    612 			if got := mod_int32_ssa(v.a, v.b); got != v.mod {
    613 				fmt.Printf("mod_int32 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    614 				failed = true
    615 			}
    616 
    617 		}
    618 		if got := mul_int32_ssa(v.a, v.b); got != v.mul {
    619 			fmt.Printf("mul_int32 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    620 			failed = true
    621 		}
    622 	}
    623 	for _, v := range uint16_data {
    624 		if got := add_uint16_ssa(v.a, v.b); got != v.add {
    625 			fmt.Printf("add_uint16 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    626 			failed = true
    627 		}
    628 		if got := sub_uint16_ssa(v.a, v.b); got != v.sub {
    629 			fmt.Printf("sub_uint16 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    630 			failed = true
    631 		}
    632 		if v.b != 0 {
    633 			if got := div_uint16_ssa(v.a, v.b); got != v.div {
    634 				fmt.Printf("div_uint16 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    635 				failed = true
    636 			}
    637 
    638 		}
    639 		if v.b != 0 {
    640 			if got := mod_uint16_ssa(v.a, v.b); got != v.mod {
    641 				fmt.Printf("mod_uint16 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    642 				failed = true
    643 			}
    644 
    645 		}
    646 		if got := mul_uint16_ssa(v.a, v.b); got != v.mul {
    647 			fmt.Printf("mul_uint16 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    648 			failed = true
    649 		}
    650 	}
    651 	for _, v := range int16_data {
    652 		if got := add_int16_ssa(v.a, v.b); got != v.add {
    653 			fmt.Printf("add_int16 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    654 			failed = true
    655 		}
    656 		if got := sub_int16_ssa(v.a, v.b); got != v.sub {
    657 			fmt.Printf("sub_int16 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    658 			failed = true
    659 		}
    660 		if v.b != 0 {
    661 			if got := div_int16_ssa(v.a, v.b); got != v.div {
    662 				fmt.Printf("div_int16 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    663 				failed = true
    664 			}
    665 
    666 		}
    667 		if v.b != 0 {
    668 			if got := mod_int16_ssa(v.a, v.b); got != v.mod {
    669 				fmt.Printf("mod_int16 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    670 				failed = true
    671 			}
    672 
    673 		}
    674 		if got := mul_int16_ssa(v.a, v.b); got != v.mul {
    675 			fmt.Printf("mul_int16 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    676 			failed = true
    677 		}
    678 	}
    679 	for _, v := range uint8_data {
    680 		if got := add_uint8_ssa(v.a, v.b); got != v.add {
    681 			fmt.Printf("add_uint8 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    682 			failed = true
    683 		}
    684 		if got := sub_uint8_ssa(v.a, v.b); got != v.sub {
    685 			fmt.Printf("sub_uint8 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    686 			failed = true
    687 		}
    688 		if v.b != 0 {
    689 			if got := div_uint8_ssa(v.a, v.b); got != v.div {
    690 				fmt.Printf("div_uint8 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    691 				failed = true
    692 			}
    693 
    694 		}
    695 		if v.b != 0 {
    696 			if got := mod_uint8_ssa(v.a, v.b); got != v.mod {
    697 				fmt.Printf("mod_uint8 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    698 				failed = true
    699 			}
    700 
    701 		}
    702 		if got := mul_uint8_ssa(v.a, v.b); got != v.mul {
    703 			fmt.Printf("mul_uint8 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    704 			failed = true
    705 		}
    706 	}
    707 	for _, v := range int8_data {
    708 		if got := add_int8_ssa(v.a, v.b); got != v.add {
    709 			fmt.Printf("add_int8 %d+%d = %d, wanted %d\n", v.a, v.b, got, v.add)
    710 			failed = true
    711 		}
    712 		if got := sub_int8_ssa(v.a, v.b); got != v.sub {
    713 			fmt.Printf("sub_int8 %d-%d = %d, wanted %d\n", v.a, v.b, got, v.sub)
    714 			failed = true
    715 		}
    716 		if v.b != 0 {
    717 			if got := div_int8_ssa(v.a, v.b); got != v.div {
    718 				fmt.Printf("div_int8 %d/%d = %d, wanted %d\n", v.a, v.b, got, v.div)
    719 				failed = true
    720 			}
    721 
    722 		}
    723 		if v.b != 0 {
    724 			if got := mod_int8_ssa(v.a, v.b); got != v.mod {
    725 				fmt.Printf("mod_int8 %d%%%d = %d, wanted %d\n", v.a, v.b, got, v.mod)
    726 				failed = true
    727 			}
    728 
    729 		}
    730 		if got := mul_int8_ssa(v.a, v.b); got != v.mul {
    731 			fmt.Printf("mul_int8 %d*%d = %d, wanted %d\n", v.a, v.b, got, v.mul)
    732 			failed = true
    733 		}
    734 	}
    735 	if failed {
    736 		panic("tests failed")
    737 	}
    738 }
    739