Home | History | Annotate | Download | only in testdata
      1 // run
      2 // Code generated by gen/cmpConstGen.go. DO NOT EDIT.
      3 
      4 package main
      5 
      6 import (
      7 	"fmt"
      8 	"reflect"
      9 	"runtime"
     10 )
     11 
     12 // results show the expected result for the elements left of, equal to and right of the index.
     13 type result struct{ l, e, r bool }
     14 
     15 var (
     16 	eq = result{l: false, e: true, r: false}
     17 	ne = result{l: true, e: false, r: true}
     18 	lt = result{l: true, e: false, r: false}
     19 	le = result{l: true, e: true, r: false}
     20 	gt = result{l: false, e: false, r: true}
     21 	ge = result{l: false, e: true, r: true}
     22 )
     23 
     24 // uint64 tests
     25 var uint64_vals = []uint64{
     26 	0,
     27 	1,
     28 	126,
     29 	127,
     30 	128,
     31 	254,
     32 	255,
     33 	256,
     34 	32766,
     35 	32767,
     36 	32768,
     37 	65534,
     38 	65535,
     39 	65536,
     40 	2147483646,
     41 	2147483647,
     42 	2147483648,
     43 	4278190080,
     44 	4294967294,
     45 	4294967295,
     46 	4294967296,
     47 	1095216660480,
     48 	9223372036854775806,
     49 	9223372036854775807,
     50 	9223372036854775808,
     51 	18374686479671623680,
     52 	18446744073709551614,
     53 	18446744073709551615,
     54 }
     55 
     56 func lt_0_uint64(x uint64) bool                    { return x < 0 }
     57 func le_0_uint64(x uint64) bool                    { return x <= 0 }
     58 func gt_0_uint64(x uint64) bool                    { return x > 0 }
     59 func ge_0_uint64(x uint64) bool                    { return x >= 0 }
     60 func eq_0_uint64(x uint64) bool                    { return x == 0 }
     61 func ne_0_uint64(x uint64) bool                    { return x != 0 }
     62 func lt_1_uint64(x uint64) bool                    { return x < 1 }
     63 func le_1_uint64(x uint64) bool                    { return x <= 1 }
     64 func gt_1_uint64(x uint64) bool                    { return x > 1 }
     65 func ge_1_uint64(x uint64) bool                    { return x >= 1 }
     66 func eq_1_uint64(x uint64) bool                    { return x == 1 }
     67 func ne_1_uint64(x uint64) bool                    { return x != 1 }
     68 func lt_126_uint64(x uint64) bool                  { return x < 126 }
     69 func le_126_uint64(x uint64) bool                  { return x <= 126 }
     70 func gt_126_uint64(x uint64) bool                  { return x > 126 }
     71 func ge_126_uint64(x uint64) bool                  { return x >= 126 }
     72 func eq_126_uint64(x uint64) bool                  { return x == 126 }
     73 func ne_126_uint64(x uint64) bool                  { return x != 126 }
     74 func lt_127_uint64(x uint64) bool                  { return x < 127 }
     75 func le_127_uint64(x uint64) bool                  { return x <= 127 }
     76 func gt_127_uint64(x uint64) bool                  { return x > 127 }
     77 func ge_127_uint64(x uint64) bool                  { return x >= 127 }
     78 func eq_127_uint64(x uint64) bool                  { return x == 127 }
     79 func ne_127_uint64(x uint64) bool                  { return x != 127 }
     80 func lt_128_uint64(x uint64) bool                  { return x < 128 }
     81 func le_128_uint64(x uint64) bool                  { return x <= 128 }
     82 func gt_128_uint64(x uint64) bool                  { return x > 128 }
     83 func ge_128_uint64(x uint64) bool                  { return x >= 128 }
     84 func eq_128_uint64(x uint64) bool                  { return x == 128 }
     85 func ne_128_uint64(x uint64) bool                  { return x != 128 }
     86 func lt_254_uint64(x uint64) bool                  { return x < 254 }
     87 func le_254_uint64(x uint64) bool                  { return x <= 254 }
     88 func gt_254_uint64(x uint64) bool                  { return x > 254 }
     89 func ge_254_uint64(x uint64) bool                  { return x >= 254 }
     90 func eq_254_uint64(x uint64) bool                  { return x == 254 }
     91 func ne_254_uint64(x uint64) bool                  { return x != 254 }
     92 func lt_255_uint64(x uint64) bool                  { return x < 255 }
     93 func le_255_uint64(x uint64) bool                  { return x <= 255 }
     94 func gt_255_uint64(x uint64) bool                  { return x > 255 }
     95 func ge_255_uint64(x uint64) bool                  { return x >= 255 }
     96 func eq_255_uint64(x uint64) bool                  { return x == 255 }
     97 func ne_255_uint64(x uint64) bool                  { return x != 255 }
     98 func lt_256_uint64(x uint64) bool                  { return x < 256 }
     99 func le_256_uint64(x uint64) bool                  { return x <= 256 }
    100 func gt_256_uint64(x uint64) bool                  { return x > 256 }
    101 func ge_256_uint64(x uint64) bool                  { return x >= 256 }
    102 func eq_256_uint64(x uint64) bool                  { return x == 256 }
    103 func ne_256_uint64(x uint64) bool                  { return x != 256 }
    104 func lt_32766_uint64(x uint64) bool                { return x < 32766 }
    105 func le_32766_uint64(x uint64) bool                { return x <= 32766 }
    106 func gt_32766_uint64(x uint64) bool                { return x > 32766 }
    107 func ge_32766_uint64(x uint64) bool                { return x >= 32766 }
    108 func eq_32766_uint64(x uint64) bool                { return x == 32766 }
    109 func ne_32766_uint64(x uint64) bool                { return x != 32766 }
    110 func lt_32767_uint64(x uint64) bool                { return x < 32767 }
    111 func le_32767_uint64(x uint64) bool                { return x <= 32767 }
    112 func gt_32767_uint64(x uint64) bool                { return x > 32767 }
    113 func ge_32767_uint64(x uint64) bool                { return x >= 32767 }
    114 func eq_32767_uint64(x uint64) bool                { return x == 32767 }
    115 func ne_32767_uint64(x uint64) bool                { return x != 32767 }
    116 func lt_32768_uint64(x uint64) bool                { return x < 32768 }
    117 func le_32768_uint64(x uint64) bool                { return x <= 32768 }
    118 func gt_32768_uint64(x uint64) bool                { return x > 32768 }
    119 func ge_32768_uint64(x uint64) bool                { return x >= 32768 }
    120 func eq_32768_uint64(x uint64) bool                { return x == 32768 }
    121 func ne_32768_uint64(x uint64) bool                { return x != 32768 }
    122 func lt_65534_uint64(x uint64) bool                { return x < 65534 }
    123 func le_65534_uint64(x uint64) bool                { return x <= 65534 }
    124 func gt_65534_uint64(x uint64) bool                { return x > 65534 }
    125 func ge_65534_uint64(x uint64) bool                { return x >= 65534 }
    126 func eq_65534_uint64(x uint64) bool                { return x == 65534 }
    127 func ne_65534_uint64(x uint64) bool                { return x != 65534 }
    128 func lt_65535_uint64(x uint64) bool                { return x < 65535 }
    129 func le_65535_uint64(x uint64) bool                { return x <= 65535 }
    130 func gt_65535_uint64(x uint64) bool                { return x > 65535 }
    131 func ge_65535_uint64(x uint64) bool                { return x >= 65535 }
    132 func eq_65535_uint64(x uint64) bool                { return x == 65535 }
    133 func ne_65535_uint64(x uint64) bool                { return x != 65535 }
    134 func lt_65536_uint64(x uint64) bool                { return x < 65536 }
    135 func le_65536_uint64(x uint64) bool                { return x <= 65536 }
    136 func gt_65536_uint64(x uint64) bool                { return x > 65536 }
    137 func ge_65536_uint64(x uint64) bool                { return x >= 65536 }
    138 func eq_65536_uint64(x uint64) bool                { return x == 65536 }
    139 func ne_65536_uint64(x uint64) bool                { return x != 65536 }
    140 func lt_2147483646_uint64(x uint64) bool           { return x < 2147483646 }
    141 func le_2147483646_uint64(x uint64) bool           { return x <= 2147483646 }
    142 func gt_2147483646_uint64(x uint64) bool           { return x > 2147483646 }
    143 func ge_2147483646_uint64(x uint64) bool           { return x >= 2147483646 }
    144 func eq_2147483646_uint64(x uint64) bool           { return x == 2147483646 }
    145 func ne_2147483646_uint64(x uint64) bool           { return x != 2147483646 }
    146 func lt_2147483647_uint64(x uint64) bool           { return x < 2147483647 }
    147 func le_2147483647_uint64(x uint64) bool           { return x <= 2147483647 }
    148 func gt_2147483647_uint64(x uint64) bool           { return x > 2147483647 }
    149 func ge_2147483647_uint64(x uint64) bool           { return x >= 2147483647 }
    150 func eq_2147483647_uint64(x uint64) bool           { return x == 2147483647 }
    151 func ne_2147483647_uint64(x uint64) bool           { return x != 2147483647 }
    152 func lt_2147483648_uint64(x uint64) bool           { return x < 2147483648 }
    153 func le_2147483648_uint64(x uint64) bool           { return x <= 2147483648 }
    154 func gt_2147483648_uint64(x uint64) bool           { return x > 2147483648 }
    155 func ge_2147483648_uint64(x uint64) bool           { return x >= 2147483648 }
    156 func eq_2147483648_uint64(x uint64) bool           { return x == 2147483648 }
    157 func ne_2147483648_uint64(x uint64) bool           { return x != 2147483648 }
    158 func lt_4278190080_uint64(x uint64) bool           { return x < 4278190080 }
    159 func le_4278190080_uint64(x uint64) bool           { return x <= 4278190080 }
    160 func gt_4278190080_uint64(x uint64) bool           { return x > 4278190080 }
    161 func ge_4278190080_uint64(x uint64) bool           { return x >= 4278190080 }
    162 func eq_4278190080_uint64(x uint64) bool           { return x == 4278190080 }
    163 func ne_4278190080_uint64(x uint64) bool           { return x != 4278190080 }
    164 func lt_4294967294_uint64(x uint64) bool           { return x < 4294967294 }
    165 func le_4294967294_uint64(x uint64) bool           { return x <= 4294967294 }
    166 func gt_4294967294_uint64(x uint64) bool           { return x > 4294967294 }
    167 func ge_4294967294_uint64(x uint64) bool           { return x >= 4294967294 }
    168 func eq_4294967294_uint64(x uint64) bool           { return x == 4294967294 }
    169 func ne_4294967294_uint64(x uint64) bool           { return x != 4294967294 }
    170 func lt_4294967295_uint64(x uint64) bool           { return x < 4294967295 }
    171 func le_4294967295_uint64(x uint64) bool           { return x <= 4294967295 }
    172 func gt_4294967295_uint64(x uint64) bool           { return x > 4294967295 }
    173 func ge_4294967295_uint64(x uint64) bool           { return x >= 4294967295 }
    174 func eq_4294967295_uint64(x uint64) bool           { return x == 4294967295 }
    175 func ne_4294967295_uint64(x uint64) bool           { return x != 4294967295 }
    176 func lt_4294967296_uint64(x uint64) bool           { return x < 4294967296 }
    177 func le_4294967296_uint64(x uint64) bool           { return x <= 4294967296 }
    178 func gt_4294967296_uint64(x uint64) bool           { return x > 4294967296 }
    179 func ge_4294967296_uint64(x uint64) bool           { return x >= 4294967296 }
    180 func eq_4294967296_uint64(x uint64) bool           { return x == 4294967296 }
    181 func ne_4294967296_uint64(x uint64) bool           { return x != 4294967296 }
    182 func lt_1095216660480_uint64(x uint64) bool        { return x < 1095216660480 }
    183 func le_1095216660480_uint64(x uint64) bool        { return x <= 1095216660480 }
    184 func gt_1095216660480_uint64(x uint64) bool        { return x > 1095216660480 }
    185 func ge_1095216660480_uint64(x uint64) bool        { return x >= 1095216660480 }
    186 func eq_1095216660480_uint64(x uint64) bool        { return x == 1095216660480 }
    187 func ne_1095216660480_uint64(x uint64) bool        { return x != 1095216660480 }
    188 func lt_9223372036854775806_uint64(x uint64) bool  { return x < 9223372036854775806 }
    189 func le_9223372036854775806_uint64(x uint64) bool  { return x <= 9223372036854775806 }
    190 func gt_9223372036854775806_uint64(x uint64) bool  { return x > 9223372036854775806 }
    191 func ge_9223372036854775806_uint64(x uint64) bool  { return x >= 9223372036854775806 }
    192 func eq_9223372036854775806_uint64(x uint64) bool  { return x == 9223372036854775806 }
    193 func ne_9223372036854775806_uint64(x uint64) bool  { return x != 9223372036854775806 }
    194 func lt_9223372036854775807_uint64(x uint64) bool  { return x < 9223372036854775807 }
    195 func le_9223372036854775807_uint64(x uint64) bool  { return x <= 9223372036854775807 }
    196 func gt_9223372036854775807_uint64(x uint64) bool  { return x > 9223372036854775807 }
    197 func ge_9223372036854775807_uint64(x uint64) bool  { return x >= 9223372036854775807 }
    198 func eq_9223372036854775807_uint64(x uint64) bool  { return x == 9223372036854775807 }
    199 func ne_9223372036854775807_uint64(x uint64) bool  { return x != 9223372036854775807 }
    200 func lt_9223372036854775808_uint64(x uint64) bool  { return x < 9223372036854775808 }
    201 func le_9223372036854775808_uint64(x uint64) bool  { return x <= 9223372036854775808 }
    202 func gt_9223372036854775808_uint64(x uint64) bool  { return x > 9223372036854775808 }
    203 func ge_9223372036854775808_uint64(x uint64) bool  { return x >= 9223372036854775808 }
    204 func eq_9223372036854775808_uint64(x uint64) bool  { return x == 9223372036854775808 }
    205 func ne_9223372036854775808_uint64(x uint64) bool  { return x != 9223372036854775808 }
    206 func lt_18374686479671623680_uint64(x uint64) bool { return x < 18374686479671623680 }
    207 func le_18374686479671623680_uint64(x uint64) bool { return x <= 18374686479671623680 }
    208 func gt_18374686479671623680_uint64(x uint64) bool { return x > 18374686479671623680 }
    209 func ge_18374686479671623680_uint64(x uint64) bool { return x >= 18374686479671623680 }
    210 func eq_18374686479671623680_uint64(x uint64) bool { return x == 18374686479671623680 }
    211 func ne_18374686479671623680_uint64(x uint64) bool { return x != 18374686479671623680 }
    212 func lt_18446744073709551614_uint64(x uint64) bool { return x < 18446744073709551614 }
    213 func le_18446744073709551614_uint64(x uint64) bool { return x <= 18446744073709551614 }
    214 func gt_18446744073709551614_uint64(x uint64) bool { return x > 18446744073709551614 }
    215 func ge_18446744073709551614_uint64(x uint64) bool { return x >= 18446744073709551614 }
    216 func eq_18446744073709551614_uint64(x uint64) bool { return x == 18446744073709551614 }
    217 func ne_18446744073709551614_uint64(x uint64) bool { return x != 18446744073709551614 }
    218 func lt_18446744073709551615_uint64(x uint64) bool { return x < 18446744073709551615 }
    219 func le_18446744073709551615_uint64(x uint64) bool { return x <= 18446744073709551615 }
    220 func gt_18446744073709551615_uint64(x uint64) bool { return x > 18446744073709551615 }
    221 func ge_18446744073709551615_uint64(x uint64) bool { return x >= 18446744073709551615 }
    222 func eq_18446744073709551615_uint64(x uint64) bool { return x == 18446744073709551615 }
    223 func ne_18446744073709551615_uint64(x uint64) bool { return x != 18446744073709551615 }
    224 
    225 var uint64_tests = []struct {
    226 	idx int    // index of the constant used
    227 	exp result // expected results
    228 	fn  func(uint64) bool
    229 }{
    230 	{idx: 0, exp: lt, fn: lt_0_uint64},
    231 	{idx: 0, exp: le, fn: le_0_uint64},
    232 	{idx: 0, exp: gt, fn: gt_0_uint64},
    233 	{idx: 0, exp: ge, fn: ge_0_uint64},
    234 	{idx: 0, exp: eq, fn: eq_0_uint64},
    235 	{idx: 0, exp: ne, fn: ne_0_uint64},
    236 	{idx: 1, exp: lt, fn: lt_1_uint64},
    237 	{idx: 1, exp: le, fn: le_1_uint64},
    238 	{idx: 1, exp: gt, fn: gt_1_uint64},
    239 	{idx: 1, exp: ge, fn: ge_1_uint64},
    240 	{idx: 1, exp: eq, fn: eq_1_uint64},
    241 	{idx: 1, exp: ne, fn: ne_1_uint64},
    242 	{idx: 2, exp: lt, fn: lt_126_uint64},
    243 	{idx: 2, exp: le, fn: le_126_uint64},
    244 	{idx: 2, exp: gt, fn: gt_126_uint64},
    245 	{idx: 2, exp: ge, fn: ge_126_uint64},
    246 	{idx: 2, exp: eq, fn: eq_126_uint64},
    247 	{idx: 2, exp: ne, fn: ne_126_uint64},
    248 	{idx: 3, exp: lt, fn: lt_127_uint64},
    249 	{idx: 3, exp: le, fn: le_127_uint64},
    250 	{idx: 3, exp: gt, fn: gt_127_uint64},
    251 	{idx: 3, exp: ge, fn: ge_127_uint64},
    252 	{idx: 3, exp: eq, fn: eq_127_uint64},
    253 	{idx: 3, exp: ne, fn: ne_127_uint64},
    254 	{idx: 4, exp: lt, fn: lt_128_uint64},
    255 	{idx: 4, exp: le, fn: le_128_uint64},
    256 	{idx: 4, exp: gt, fn: gt_128_uint64},
    257 	{idx: 4, exp: ge, fn: ge_128_uint64},
    258 	{idx: 4, exp: eq, fn: eq_128_uint64},
    259 	{idx: 4, exp: ne, fn: ne_128_uint64},
    260 	{idx: 5, exp: lt, fn: lt_254_uint64},
    261 	{idx: 5, exp: le, fn: le_254_uint64},
    262 	{idx: 5, exp: gt, fn: gt_254_uint64},
    263 	{idx: 5, exp: ge, fn: ge_254_uint64},
    264 	{idx: 5, exp: eq, fn: eq_254_uint64},
    265 	{idx: 5, exp: ne, fn: ne_254_uint64},
    266 	{idx: 6, exp: lt, fn: lt_255_uint64},
    267 	{idx: 6, exp: le, fn: le_255_uint64},
    268 	{idx: 6, exp: gt, fn: gt_255_uint64},
    269 	{idx: 6, exp: ge, fn: ge_255_uint64},
    270 	{idx: 6, exp: eq, fn: eq_255_uint64},
    271 	{idx: 6, exp: ne, fn: ne_255_uint64},
    272 	{idx: 7, exp: lt, fn: lt_256_uint64},
    273 	{idx: 7, exp: le, fn: le_256_uint64},
    274 	{idx: 7, exp: gt, fn: gt_256_uint64},
    275 	{idx: 7, exp: ge, fn: ge_256_uint64},
    276 	{idx: 7, exp: eq, fn: eq_256_uint64},
    277 	{idx: 7, exp: ne, fn: ne_256_uint64},
    278 	{idx: 8, exp: lt, fn: lt_32766_uint64},
    279 	{idx: 8, exp: le, fn: le_32766_uint64},
    280 	{idx: 8, exp: gt, fn: gt_32766_uint64},
    281 	{idx: 8, exp: ge, fn: ge_32766_uint64},
    282 	{idx: 8, exp: eq, fn: eq_32766_uint64},
    283 	{idx: 8, exp: ne, fn: ne_32766_uint64},
    284 	{idx: 9, exp: lt, fn: lt_32767_uint64},
    285 	{idx: 9, exp: le, fn: le_32767_uint64},
    286 	{idx: 9, exp: gt, fn: gt_32767_uint64},
    287 	{idx: 9, exp: ge, fn: ge_32767_uint64},
    288 	{idx: 9, exp: eq, fn: eq_32767_uint64},
    289 	{idx: 9, exp: ne, fn: ne_32767_uint64},
    290 	{idx: 10, exp: lt, fn: lt_32768_uint64},
    291 	{idx: 10, exp: le, fn: le_32768_uint64},
    292 	{idx: 10, exp: gt, fn: gt_32768_uint64},
    293 	{idx: 10, exp: ge, fn: ge_32768_uint64},
    294 	{idx: 10, exp: eq, fn: eq_32768_uint64},
    295 	{idx: 10, exp: ne, fn: ne_32768_uint64},
    296 	{idx: 11, exp: lt, fn: lt_65534_uint64},
    297 	{idx: 11, exp: le, fn: le_65534_uint64},
    298 	{idx: 11, exp: gt, fn: gt_65534_uint64},
    299 	{idx: 11, exp: ge, fn: ge_65534_uint64},
    300 	{idx: 11, exp: eq, fn: eq_65534_uint64},
    301 	{idx: 11, exp: ne, fn: ne_65534_uint64},
    302 	{idx: 12, exp: lt, fn: lt_65535_uint64},
    303 	{idx: 12, exp: le, fn: le_65535_uint64},
    304 	{idx: 12, exp: gt, fn: gt_65535_uint64},
    305 	{idx: 12, exp: ge, fn: ge_65535_uint64},
    306 	{idx: 12, exp: eq, fn: eq_65535_uint64},
    307 	{idx: 12, exp: ne, fn: ne_65535_uint64},
    308 	{idx: 13, exp: lt, fn: lt_65536_uint64},
    309 	{idx: 13, exp: le, fn: le_65536_uint64},
    310 	{idx: 13, exp: gt, fn: gt_65536_uint64},
    311 	{idx: 13, exp: ge, fn: ge_65536_uint64},
    312 	{idx: 13, exp: eq, fn: eq_65536_uint64},
    313 	{idx: 13, exp: ne, fn: ne_65536_uint64},
    314 	{idx: 14, exp: lt, fn: lt_2147483646_uint64},
    315 	{idx: 14, exp: le, fn: le_2147483646_uint64},
    316 	{idx: 14, exp: gt, fn: gt_2147483646_uint64},
    317 	{idx: 14, exp: ge, fn: ge_2147483646_uint64},
    318 	{idx: 14, exp: eq, fn: eq_2147483646_uint64},
    319 	{idx: 14, exp: ne, fn: ne_2147483646_uint64},
    320 	{idx: 15, exp: lt, fn: lt_2147483647_uint64},
    321 	{idx: 15, exp: le, fn: le_2147483647_uint64},
    322 	{idx: 15, exp: gt, fn: gt_2147483647_uint64},
    323 	{idx: 15, exp: ge, fn: ge_2147483647_uint64},
    324 	{idx: 15, exp: eq, fn: eq_2147483647_uint64},
    325 	{idx: 15, exp: ne, fn: ne_2147483647_uint64},
    326 	{idx: 16, exp: lt, fn: lt_2147483648_uint64},
    327 	{idx: 16, exp: le, fn: le_2147483648_uint64},
    328 	{idx: 16, exp: gt, fn: gt_2147483648_uint64},
    329 	{idx: 16, exp: ge, fn: ge_2147483648_uint64},
    330 	{idx: 16, exp: eq, fn: eq_2147483648_uint64},
    331 	{idx: 16, exp: ne, fn: ne_2147483648_uint64},
    332 	{idx: 17, exp: lt, fn: lt_4278190080_uint64},
    333 	{idx: 17, exp: le, fn: le_4278190080_uint64},
    334 	{idx: 17, exp: gt, fn: gt_4278190080_uint64},
    335 	{idx: 17, exp: ge, fn: ge_4278190080_uint64},
    336 	{idx: 17, exp: eq, fn: eq_4278190080_uint64},
    337 	{idx: 17, exp: ne, fn: ne_4278190080_uint64},
    338 	{idx: 18, exp: lt, fn: lt_4294967294_uint64},
    339 	{idx: 18, exp: le, fn: le_4294967294_uint64},
    340 	{idx: 18, exp: gt, fn: gt_4294967294_uint64},
    341 	{idx: 18, exp: ge, fn: ge_4294967294_uint64},
    342 	{idx: 18, exp: eq, fn: eq_4294967294_uint64},
    343 	{idx: 18, exp: ne, fn: ne_4294967294_uint64},
    344 	{idx: 19, exp: lt, fn: lt_4294967295_uint64},
    345 	{idx: 19, exp: le, fn: le_4294967295_uint64},
    346 	{idx: 19, exp: gt, fn: gt_4294967295_uint64},
    347 	{idx: 19, exp: ge, fn: ge_4294967295_uint64},
    348 	{idx: 19, exp: eq, fn: eq_4294967295_uint64},
    349 	{idx: 19, exp: ne, fn: ne_4294967295_uint64},
    350 	{idx: 20, exp: lt, fn: lt_4294967296_uint64},
    351 	{idx: 20, exp: le, fn: le_4294967296_uint64},
    352 	{idx: 20, exp: gt, fn: gt_4294967296_uint64},
    353 	{idx: 20, exp: ge, fn: ge_4294967296_uint64},
    354 	{idx: 20, exp: eq, fn: eq_4294967296_uint64},
    355 	{idx: 20, exp: ne, fn: ne_4294967296_uint64},
    356 	{idx: 21, exp: lt, fn: lt_1095216660480_uint64},
    357 	{idx: 21, exp: le, fn: le_1095216660480_uint64},
    358 	{idx: 21, exp: gt, fn: gt_1095216660480_uint64},
    359 	{idx: 21, exp: ge, fn: ge_1095216660480_uint64},
    360 	{idx: 21, exp: eq, fn: eq_1095216660480_uint64},
    361 	{idx: 21, exp: ne, fn: ne_1095216660480_uint64},
    362 	{idx: 22, exp: lt, fn: lt_9223372036854775806_uint64},
    363 	{idx: 22, exp: le, fn: le_9223372036854775806_uint64},
    364 	{idx: 22, exp: gt, fn: gt_9223372036854775806_uint64},
    365 	{idx: 22, exp: ge, fn: ge_9223372036854775806_uint64},
    366 	{idx: 22, exp: eq, fn: eq_9223372036854775806_uint64},
    367 	{idx: 22, exp: ne, fn: ne_9223372036854775806_uint64},
    368 	{idx: 23, exp: lt, fn: lt_9223372036854775807_uint64},
    369 	{idx: 23, exp: le, fn: le_9223372036854775807_uint64},
    370 	{idx: 23, exp: gt, fn: gt_9223372036854775807_uint64},
    371 	{idx: 23, exp: ge, fn: ge_9223372036854775807_uint64},
    372 	{idx: 23, exp: eq, fn: eq_9223372036854775807_uint64},
    373 	{idx: 23, exp: ne, fn: ne_9223372036854775807_uint64},
    374 	{idx: 24, exp: lt, fn: lt_9223372036854775808_uint64},
    375 	{idx: 24, exp: le, fn: le_9223372036854775808_uint64},
    376 	{idx: 24, exp: gt, fn: gt_9223372036854775808_uint64},
    377 	{idx: 24, exp: ge, fn: ge_9223372036854775808_uint64},
    378 	{idx: 24, exp: eq, fn: eq_9223372036854775808_uint64},
    379 	{idx: 24, exp: ne, fn: ne_9223372036854775808_uint64},
    380 	{idx: 25, exp: lt, fn: lt_18374686479671623680_uint64},
    381 	{idx: 25, exp: le, fn: le_18374686479671623680_uint64},
    382 	{idx: 25, exp: gt, fn: gt_18374686479671623680_uint64},
    383 	{idx: 25, exp: ge, fn: ge_18374686479671623680_uint64},
    384 	{idx: 25, exp: eq, fn: eq_18374686479671623680_uint64},
    385 	{idx: 25, exp: ne, fn: ne_18374686479671623680_uint64},
    386 	{idx: 26, exp: lt, fn: lt_18446744073709551614_uint64},
    387 	{idx: 26, exp: le, fn: le_18446744073709551614_uint64},
    388 	{idx: 26, exp: gt, fn: gt_18446744073709551614_uint64},
    389 	{idx: 26, exp: ge, fn: ge_18446744073709551614_uint64},
    390 	{idx: 26, exp: eq, fn: eq_18446744073709551614_uint64},
    391 	{idx: 26, exp: ne, fn: ne_18446744073709551614_uint64},
    392 	{idx: 27, exp: lt, fn: lt_18446744073709551615_uint64},
    393 	{idx: 27, exp: le, fn: le_18446744073709551615_uint64},
    394 	{idx: 27, exp: gt, fn: gt_18446744073709551615_uint64},
    395 	{idx: 27, exp: ge, fn: ge_18446744073709551615_uint64},
    396 	{idx: 27, exp: eq, fn: eq_18446744073709551615_uint64},
    397 	{idx: 27, exp: ne, fn: ne_18446744073709551615_uint64},
    398 }
    399 
    400 // uint32 tests
    401 var uint32_vals = []uint32{
    402 	0,
    403 	1,
    404 	126,
    405 	127,
    406 	128,
    407 	254,
    408 	255,
    409 	256,
    410 	32766,
    411 	32767,
    412 	32768,
    413 	65534,
    414 	65535,
    415 	65536,
    416 	2147483646,
    417 	2147483647,
    418 	2147483648,
    419 	4278190080,
    420 	4294967294,
    421 	4294967295,
    422 }
    423 
    424 func lt_0_uint32(x uint32) bool          { return x < 0 }
    425 func le_0_uint32(x uint32) bool          { return x <= 0 }
    426 func gt_0_uint32(x uint32) bool          { return x > 0 }
    427 func ge_0_uint32(x uint32) bool          { return x >= 0 }
    428 func eq_0_uint32(x uint32) bool          { return x == 0 }
    429 func ne_0_uint32(x uint32) bool          { return x != 0 }
    430 func lt_1_uint32(x uint32) bool          { return x < 1 }
    431 func le_1_uint32(x uint32) bool          { return x <= 1 }
    432 func gt_1_uint32(x uint32) bool          { return x > 1 }
    433 func ge_1_uint32(x uint32) bool          { return x >= 1 }
    434 func eq_1_uint32(x uint32) bool          { return x == 1 }
    435 func ne_1_uint32(x uint32) bool          { return x != 1 }
    436 func lt_126_uint32(x uint32) bool        { return x < 126 }
    437 func le_126_uint32(x uint32) bool        { return x <= 126 }
    438 func gt_126_uint32(x uint32) bool        { return x > 126 }
    439 func ge_126_uint32(x uint32) bool        { return x >= 126 }
    440 func eq_126_uint32(x uint32) bool        { return x == 126 }
    441 func ne_126_uint32(x uint32) bool        { return x != 126 }
    442 func lt_127_uint32(x uint32) bool        { return x < 127 }
    443 func le_127_uint32(x uint32) bool        { return x <= 127 }
    444 func gt_127_uint32(x uint32) bool        { return x > 127 }
    445 func ge_127_uint32(x uint32) bool        { return x >= 127 }
    446 func eq_127_uint32(x uint32) bool        { return x == 127 }
    447 func ne_127_uint32(x uint32) bool        { return x != 127 }
    448 func lt_128_uint32(x uint32) bool        { return x < 128 }
    449 func le_128_uint32(x uint32) bool        { return x <= 128 }
    450 func gt_128_uint32(x uint32) bool        { return x > 128 }
    451 func ge_128_uint32(x uint32) bool        { return x >= 128 }
    452 func eq_128_uint32(x uint32) bool        { return x == 128 }
    453 func ne_128_uint32(x uint32) bool        { return x != 128 }
    454 func lt_254_uint32(x uint32) bool        { return x < 254 }
    455 func le_254_uint32(x uint32) bool        { return x <= 254 }
    456 func gt_254_uint32(x uint32) bool        { return x > 254 }
    457 func ge_254_uint32(x uint32) bool        { return x >= 254 }
    458 func eq_254_uint32(x uint32) bool        { return x == 254 }
    459 func ne_254_uint32(x uint32) bool        { return x != 254 }
    460 func lt_255_uint32(x uint32) bool        { return x < 255 }
    461 func le_255_uint32(x uint32) bool        { return x <= 255 }
    462 func gt_255_uint32(x uint32) bool        { return x > 255 }
    463 func ge_255_uint32(x uint32) bool        { return x >= 255 }
    464 func eq_255_uint32(x uint32) bool        { return x == 255 }
    465 func ne_255_uint32(x uint32) bool        { return x != 255 }
    466 func lt_256_uint32(x uint32) bool        { return x < 256 }
    467 func le_256_uint32(x uint32) bool        { return x <= 256 }
    468 func gt_256_uint32(x uint32) bool        { return x > 256 }
    469 func ge_256_uint32(x uint32) bool        { return x >= 256 }
    470 func eq_256_uint32(x uint32) bool        { return x == 256 }
    471 func ne_256_uint32(x uint32) bool        { return x != 256 }
    472 func lt_32766_uint32(x uint32) bool      { return x < 32766 }
    473 func le_32766_uint32(x uint32) bool      { return x <= 32766 }
    474 func gt_32766_uint32(x uint32) bool      { return x > 32766 }
    475 func ge_32766_uint32(x uint32) bool      { return x >= 32766 }
    476 func eq_32766_uint32(x uint32) bool      { return x == 32766 }
    477 func ne_32766_uint32(x uint32) bool      { return x != 32766 }
    478 func lt_32767_uint32(x uint32) bool      { return x < 32767 }
    479 func le_32767_uint32(x uint32) bool      { return x <= 32767 }
    480 func gt_32767_uint32(x uint32) bool      { return x > 32767 }
    481 func ge_32767_uint32(x uint32) bool      { return x >= 32767 }
    482 func eq_32767_uint32(x uint32) bool      { return x == 32767 }
    483 func ne_32767_uint32(x uint32) bool      { return x != 32767 }
    484 func lt_32768_uint32(x uint32) bool      { return x < 32768 }
    485 func le_32768_uint32(x uint32) bool      { return x <= 32768 }
    486 func gt_32768_uint32(x uint32) bool      { return x > 32768 }
    487 func ge_32768_uint32(x uint32) bool      { return x >= 32768 }
    488 func eq_32768_uint32(x uint32) bool      { return x == 32768 }
    489 func ne_32768_uint32(x uint32) bool      { return x != 32768 }
    490 func lt_65534_uint32(x uint32) bool      { return x < 65534 }
    491 func le_65534_uint32(x uint32) bool      { return x <= 65534 }
    492 func gt_65534_uint32(x uint32) bool      { return x > 65534 }
    493 func ge_65534_uint32(x uint32) bool      { return x >= 65534 }
    494 func eq_65534_uint32(x uint32) bool      { return x == 65534 }
    495 func ne_65534_uint32(x uint32) bool      { return x != 65534 }
    496 func lt_65535_uint32(x uint32) bool      { return x < 65535 }
    497 func le_65535_uint32(x uint32) bool      { return x <= 65535 }
    498 func gt_65535_uint32(x uint32) bool      { return x > 65535 }
    499 func ge_65535_uint32(x uint32) bool      { return x >= 65535 }
    500 func eq_65535_uint32(x uint32) bool      { return x == 65535 }
    501 func ne_65535_uint32(x uint32) bool      { return x != 65535 }
    502 func lt_65536_uint32(x uint32) bool      { return x < 65536 }
    503 func le_65536_uint32(x uint32) bool      { return x <= 65536 }
    504 func gt_65536_uint32(x uint32) bool      { return x > 65536 }
    505 func ge_65536_uint32(x uint32) bool      { return x >= 65536 }
    506 func eq_65536_uint32(x uint32) bool      { return x == 65536 }
    507 func ne_65536_uint32(x uint32) bool      { return x != 65536 }
    508 func lt_2147483646_uint32(x uint32) bool { return x < 2147483646 }
    509 func le_2147483646_uint32(x uint32) bool { return x <= 2147483646 }
    510 func gt_2147483646_uint32(x uint32) bool { return x > 2147483646 }
    511 func ge_2147483646_uint32(x uint32) bool { return x >= 2147483646 }
    512 func eq_2147483646_uint32(x uint32) bool { return x == 2147483646 }
    513 func ne_2147483646_uint32(x uint32) bool { return x != 2147483646 }
    514 func lt_2147483647_uint32(x uint32) bool { return x < 2147483647 }
    515 func le_2147483647_uint32(x uint32) bool { return x <= 2147483647 }
    516 func gt_2147483647_uint32(x uint32) bool { return x > 2147483647 }
    517 func ge_2147483647_uint32(x uint32) bool { return x >= 2147483647 }
    518 func eq_2147483647_uint32(x uint32) bool { return x == 2147483647 }
    519 func ne_2147483647_uint32(x uint32) bool { return x != 2147483647 }
    520 func lt_2147483648_uint32(x uint32) bool { return x < 2147483648 }
    521 func le_2147483648_uint32(x uint32) bool { return x <= 2147483648 }
    522 func gt_2147483648_uint32(x uint32) bool { return x > 2147483648 }
    523 func ge_2147483648_uint32(x uint32) bool { return x >= 2147483648 }
    524 func eq_2147483648_uint32(x uint32) bool { return x == 2147483648 }
    525 func ne_2147483648_uint32(x uint32) bool { return x != 2147483648 }
    526 func lt_4278190080_uint32(x uint32) bool { return x < 4278190080 }
    527 func le_4278190080_uint32(x uint32) bool { return x <= 4278190080 }
    528 func gt_4278190080_uint32(x uint32) bool { return x > 4278190080 }
    529 func ge_4278190080_uint32(x uint32) bool { return x >= 4278190080 }
    530 func eq_4278190080_uint32(x uint32) bool { return x == 4278190080 }
    531 func ne_4278190080_uint32(x uint32) bool { return x != 4278190080 }
    532 func lt_4294967294_uint32(x uint32) bool { return x < 4294967294 }
    533 func le_4294967294_uint32(x uint32) bool { return x <= 4294967294 }
    534 func gt_4294967294_uint32(x uint32) bool { return x > 4294967294 }
    535 func ge_4294967294_uint32(x uint32) bool { return x >= 4294967294 }
    536 func eq_4294967294_uint32(x uint32) bool { return x == 4294967294 }
    537 func ne_4294967294_uint32(x uint32) bool { return x != 4294967294 }
    538 func lt_4294967295_uint32(x uint32) bool { return x < 4294967295 }
    539 func le_4294967295_uint32(x uint32) bool { return x <= 4294967295 }
    540 func gt_4294967295_uint32(x uint32) bool { return x > 4294967295 }
    541 func ge_4294967295_uint32(x uint32) bool { return x >= 4294967295 }
    542 func eq_4294967295_uint32(x uint32) bool { return x == 4294967295 }
    543 func ne_4294967295_uint32(x uint32) bool { return x != 4294967295 }
    544 
    545 var uint32_tests = []struct {
    546 	idx int    // index of the constant used
    547 	exp result // expected results
    548 	fn  func(uint32) bool
    549 }{
    550 	{idx: 0, exp: lt, fn: lt_0_uint32},
    551 	{idx: 0, exp: le, fn: le_0_uint32},
    552 	{idx: 0, exp: gt, fn: gt_0_uint32},
    553 	{idx: 0, exp: ge, fn: ge_0_uint32},
    554 	{idx: 0, exp: eq, fn: eq_0_uint32},
    555 	{idx: 0, exp: ne, fn: ne_0_uint32},
    556 	{idx: 1, exp: lt, fn: lt_1_uint32},
    557 	{idx: 1, exp: le, fn: le_1_uint32},
    558 	{idx: 1, exp: gt, fn: gt_1_uint32},
    559 	{idx: 1, exp: ge, fn: ge_1_uint32},
    560 	{idx: 1, exp: eq, fn: eq_1_uint32},
    561 	{idx: 1, exp: ne, fn: ne_1_uint32},
    562 	{idx: 2, exp: lt, fn: lt_126_uint32},
    563 	{idx: 2, exp: le, fn: le_126_uint32},
    564 	{idx: 2, exp: gt, fn: gt_126_uint32},
    565 	{idx: 2, exp: ge, fn: ge_126_uint32},
    566 	{idx: 2, exp: eq, fn: eq_126_uint32},
    567 	{idx: 2, exp: ne, fn: ne_126_uint32},
    568 	{idx: 3, exp: lt, fn: lt_127_uint32},
    569 	{idx: 3, exp: le, fn: le_127_uint32},
    570 	{idx: 3, exp: gt, fn: gt_127_uint32},
    571 	{idx: 3, exp: ge, fn: ge_127_uint32},
    572 	{idx: 3, exp: eq, fn: eq_127_uint32},
    573 	{idx: 3, exp: ne, fn: ne_127_uint32},
    574 	{idx: 4, exp: lt, fn: lt_128_uint32},
    575 	{idx: 4, exp: le, fn: le_128_uint32},
    576 	{idx: 4, exp: gt, fn: gt_128_uint32},
    577 	{idx: 4, exp: ge, fn: ge_128_uint32},
    578 	{idx: 4, exp: eq, fn: eq_128_uint32},
    579 	{idx: 4, exp: ne, fn: ne_128_uint32},
    580 	{idx: 5, exp: lt, fn: lt_254_uint32},
    581 	{idx: 5, exp: le, fn: le_254_uint32},
    582 	{idx: 5, exp: gt, fn: gt_254_uint32},
    583 	{idx: 5, exp: ge, fn: ge_254_uint32},
    584 	{idx: 5, exp: eq, fn: eq_254_uint32},
    585 	{idx: 5, exp: ne, fn: ne_254_uint32},
    586 	{idx: 6, exp: lt, fn: lt_255_uint32},
    587 	{idx: 6, exp: le, fn: le_255_uint32},
    588 	{idx: 6, exp: gt, fn: gt_255_uint32},
    589 	{idx: 6, exp: ge, fn: ge_255_uint32},
    590 	{idx: 6, exp: eq, fn: eq_255_uint32},
    591 	{idx: 6, exp: ne, fn: ne_255_uint32},
    592 	{idx: 7, exp: lt, fn: lt_256_uint32},
    593 	{idx: 7, exp: le, fn: le_256_uint32},
    594 	{idx: 7, exp: gt, fn: gt_256_uint32},
    595 	{idx: 7, exp: ge, fn: ge_256_uint32},
    596 	{idx: 7, exp: eq, fn: eq_256_uint32},
    597 	{idx: 7, exp: ne, fn: ne_256_uint32},
    598 	{idx: 8, exp: lt, fn: lt_32766_uint32},
    599 	{idx: 8, exp: le, fn: le_32766_uint32},
    600 	{idx: 8, exp: gt, fn: gt_32766_uint32},
    601 	{idx: 8, exp: ge, fn: ge_32766_uint32},
    602 	{idx: 8, exp: eq, fn: eq_32766_uint32},
    603 	{idx: 8, exp: ne, fn: ne_32766_uint32},
    604 	{idx: 9, exp: lt, fn: lt_32767_uint32},
    605 	{idx: 9, exp: le, fn: le_32767_uint32},
    606 	{idx: 9, exp: gt, fn: gt_32767_uint32},
    607 	{idx: 9, exp: ge, fn: ge_32767_uint32},
    608 	{idx: 9, exp: eq, fn: eq_32767_uint32},
    609 	{idx: 9, exp: ne, fn: ne_32767_uint32},
    610 	{idx: 10, exp: lt, fn: lt_32768_uint32},
    611 	{idx: 10, exp: le, fn: le_32768_uint32},
    612 	{idx: 10, exp: gt, fn: gt_32768_uint32},
    613 	{idx: 10, exp: ge, fn: ge_32768_uint32},
    614 	{idx: 10, exp: eq, fn: eq_32768_uint32},
    615 	{idx: 10, exp: ne, fn: ne_32768_uint32},
    616 	{idx: 11, exp: lt, fn: lt_65534_uint32},
    617 	{idx: 11, exp: le, fn: le_65534_uint32},
    618 	{idx: 11, exp: gt, fn: gt_65534_uint32},
    619 	{idx: 11, exp: ge, fn: ge_65534_uint32},
    620 	{idx: 11, exp: eq, fn: eq_65534_uint32},
    621 	{idx: 11, exp: ne, fn: ne_65534_uint32},
    622 	{idx: 12, exp: lt, fn: lt_65535_uint32},
    623 	{idx: 12, exp: le, fn: le_65535_uint32},
    624 	{idx: 12, exp: gt, fn: gt_65535_uint32},
    625 	{idx: 12, exp: ge, fn: ge_65535_uint32},
    626 	{idx: 12, exp: eq, fn: eq_65535_uint32},
    627 	{idx: 12, exp: ne, fn: ne_65535_uint32},
    628 	{idx: 13, exp: lt, fn: lt_65536_uint32},
    629 	{idx: 13, exp: le, fn: le_65536_uint32},
    630 	{idx: 13, exp: gt, fn: gt_65536_uint32},
    631 	{idx: 13, exp: ge, fn: ge_65536_uint32},
    632 	{idx: 13, exp: eq, fn: eq_65536_uint32},
    633 	{idx: 13, exp: ne, fn: ne_65536_uint32},
    634 	{idx: 14, exp: lt, fn: lt_2147483646_uint32},
    635 	{idx: 14, exp: le, fn: le_2147483646_uint32},
    636 	{idx: 14, exp: gt, fn: gt_2147483646_uint32},
    637 	{idx: 14, exp: ge, fn: ge_2147483646_uint32},
    638 	{idx: 14, exp: eq, fn: eq_2147483646_uint32},
    639 	{idx: 14, exp: ne, fn: ne_2147483646_uint32},
    640 	{idx: 15, exp: lt, fn: lt_2147483647_uint32},
    641 	{idx: 15, exp: le, fn: le_2147483647_uint32},
    642 	{idx: 15, exp: gt, fn: gt_2147483647_uint32},
    643 	{idx: 15, exp: ge, fn: ge_2147483647_uint32},
    644 	{idx: 15, exp: eq, fn: eq_2147483647_uint32},
    645 	{idx: 15, exp: ne, fn: ne_2147483647_uint32},
    646 	{idx: 16, exp: lt, fn: lt_2147483648_uint32},
    647 	{idx: 16, exp: le, fn: le_2147483648_uint32},
    648 	{idx: 16, exp: gt, fn: gt_2147483648_uint32},
    649 	{idx: 16, exp: ge, fn: ge_2147483648_uint32},
    650 	{idx: 16, exp: eq, fn: eq_2147483648_uint32},
    651 	{idx: 16, exp: ne, fn: ne_2147483648_uint32},
    652 	{idx: 17, exp: lt, fn: lt_4278190080_uint32},
    653 	{idx: 17, exp: le, fn: le_4278190080_uint32},
    654 	{idx: 17, exp: gt, fn: gt_4278190080_uint32},
    655 	{idx: 17, exp: ge, fn: ge_4278190080_uint32},
    656 	{idx: 17, exp: eq, fn: eq_4278190080_uint32},
    657 	{idx: 17, exp: ne, fn: ne_4278190080_uint32},
    658 	{idx: 18, exp: lt, fn: lt_4294967294_uint32},
    659 	{idx: 18, exp: le, fn: le_4294967294_uint32},
    660 	{idx: 18, exp: gt, fn: gt_4294967294_uint32},
    661 	{idx: 18, exp: ge, fn: ge_4294967294_uint32},
    662 	{idx: 18, exp: eq, fn: eq_4294967294_uint32},
    663 	{idx: 18, exp: ne, fn: ne_4294967294_uint32},
    664 	{idx: 19, exp: lt, fn: lt_4294967295_uint32},
    665 	{idx: 19, exp: le, fn: le_4294967295_uint32},
    666 	{idx: 19, exp: gt, fn: gt_4294967295_uint32},
    667 	{idx: 19, exp: ge, fn: ge_4294967295_uint32},
    668 	{idx: 19, exp: eq, fn: eq_4294967295_uint32},
    669 	{idx: 19, exp: ne, fn: ne_4294967295_uint32},
    670 }
    671 
    672 // uint16 tests
    673 var uint16_vals = []uint16{
    674 	0,
    675 	1,
    676 	126,
    677 	127,
    678 	128,
    679 	254,
    680 	255,
    681 	256,
    682 	32766,
    683 	32767,
    684 	32768,
    685 	65534,
    686 	65535,
    687 }
    688 
    689 func lt_0_uint16(x uint16) bool     { return x < 0 }
    690 func le_0_uint16(x uint16) bool     { return x <= 0 }
    691 func gt_0_uint16(x uint16) bool     { return x > 0 }
    692 func ge_0_uint16(x uint16) bool     { return x >= 0 }
    693 func eq_0_uint16(x uint16) bool     { return x == 0 }
    694 func ne_0_uint16(x uint16) bool     { return x != 0 }
    695 func lt_1_uint16(x uint16) bool     { return x < 1 }
    696 func le_1_uint16(x uint16) bool     { return x <= 1 }
    697 func gt_1_uint16(x uint16) bool     { return x > 1 }
    698 func ge_1_uint16(x uint16) bool     { return x >= 1 }
    699 func eq_1_uint16(x uint16) bool     { return x == 1 }
    700 func ne_1_uint16(x uint16) bool     { return x != 1 }
    701 func lt_126_uint16(x uint16) bool   { return x < 126 }
    702 func le_126_uint16(x uint16) bool   { return x <= 126 }
    703 func gt_126_uint16(x uint16) bool   { return x > 126 }
    704 func ge_126_uint16(x uint16) bool   { return x >= 126 }
    705 func eq_126_uint16(x uint16) bool   { return x == 126 }
    706 func ne_126_uint16(x uint16) bool   { return x != 126 }
    707 func lt_127_uint16(x uint16) bool   { return x < 127 }
    708 func le_127_uint16(x uint16) bool   { return x <= 127 }
    709 func gt_127_uint16(x uint16) bool   { return x > 127 }
    710 func ge_127_uint16(x uint16) bool   { return x >= 127 }
    711 func eq_127_uint16(x uint16) bool   { return x == 127 }
    712 func ne_127_uint16(x uint16) bool   { return x != 127 }
    713 func lt_128_uint16(x uint16) bool   { return x < 128 }
    714 func le_128_uint16(x uint16) bool   { return x <= 128 }
    715 func gt_128_uint16(x uint16) bool   { return x > 128 }
    716 func ge_128_uint16(x uint16) bool   { return x >= 128 }
    717 func eq_128_uint16(x uint16) bool   { return x == 128 }
    718 func ne_128_uint16(x uint16) bool   { return x != 128 }
    719 func lt_254_uint16(x uint16) bool   { return x < 254 }
    720 func le_254_uint16(x uint16) bool   { return x <= 254 }
    721 func gt_254_uint16(x uint16) bool   { return x > 254 }
    722 func ge_254_uint16(x uint16) bool   { return x >= 254 }
    723 func eq_254_uint16(x uint16) bool   { return x == 254 }
    724 func ne_254_uint16(x uint16) bool   { return x != 254 }
    725 func lt_255_uint16(x uint16) bool   { return x < 255 }
    726 func le_255_uint16(x uint16) bool   { return x <= 255 }
    727 func gt_255_uint16(x uint16) bool   { return x > 255 }
    728 func ge_255_uint16(x uint16) bool   { return x >= 255 }
    729 func eq_255_uint16(x uint16) bool   { return x == 255 }
    730 func ne_255_uint16(x uint16) bool   { return x != 255 }
    731 func lt_256_uint16(x uint16) bool   { return x < 256 }
    732 func le_256_uint16(x uint16) bool   { return x <= 256 }
    733 func gt_256_uint16(x uint16) bool   { return x > 256 }
    734 func ge_256_uint16(x uint16) bool   { return x >= 256 }
    735 func eq_256_uint16(x uint16) bool   { return x == 256 }
    736 func ne_256_uint16(x uint16) bool   { return x != 256 }
    737 func lt_32766_uint16(x uint16) bool { return x < 32766 }
    738 func le_32766_uint16(x uint16) bool { return x <= 32766 }
    739 func gt_32766_uint16(x uint16) bool { return x > 32766 }
    740 func ge_32766_uint16(x uint16) bool { return x >= 32766 }
    741 func eq_32766_uint16(x uint16) bool { return x == 32766 }
    742 func ne_32766_uint16(x uint16) bool { return x != 32766 }
    743 func lt_32767_uint16(x uint16) bool { return x < 32767 }
    744 func le_32767_uint16(x uint16) bool { return x <= 32767 }
    745 func gt_32767_uint16(x uint16) bool { return x > 32767 }
    746 func ge_32767_uint16(x uint16) bool { return x >= 32767 }
    747 func eq_32767_uint16(x uint16) bool { return x == 32767 }
    748 func ne_32767_uint16(x uint16) bool { return x != 32767 }
    749 func lt_32768_uint16(x uint16) bool { return x < 32768 }
    750 func le_32768_uint16(x uint16) bool { return x <= 32768 }
    751 func gt_32768_uint16(x uint16) bool { return x > 32768 }
    752 func ge_32768_uint16(x uint16) bool { return x >= 32768 }
    753 func eq_32768_uint16(x uint16) bool { return x == 32768 }
    754 func ne_32768_uint16(x uint16) bool { return x != 32768 }
    755 func lt_65534_uint16(x uint16) bool { return x < 65534 }
    756 func le_65534_uint16(x uint16) bool { return x <= 65534 }
    757 func gt_65534_uint16(x uint16) bool { return x > 65534 }
    758 func ge_65534_uint16(x uint16) bool { return x >= 65534 }
    759 func eq_65534_uint16(x uint16) bool { return x == 65534 }
    760 func ne_65534_uint16(x uint16) bool { return x != 65534 }
    761 func lt_65535_uint16(x uint16) bool { return x < 65535 }
    762 func le_65535_uint16(x uint16) bool { return x <= 65535 }
    763 func gt_65535_uint16(x uint16) bool { return x > 65535 }
    764 func ge_65535_uint16(x uint16) bool { return x >= 65535 }
    765 func eq_65535_uint16(x uint16) bool { return x == 65535 }
    766 func ne_65535_uint16(x uint16) bool { return x != 65535 }
    767 
    768 var uint16_tests = []struct {
    769 	idx int    // index of the constant used
    770 	exp result // expected results
    771 	fn  func(uint16) bool
    772 }{
    773 	{idx: 0, exp: lt, fn: lt_0_uint16},
    774 	{idx: 0, exp: le, fn: le_0_uint16},
    775 	{idx: 0, exp: gt, fn: gt_0_uint16},
    776 	{idx: 0, exp: ge, fn: ge_0_uint16},
    777 	{idx: 0, exp: eq, fn: eq_0_uint16},
    778 	{idx: 0, exp: ne, fn: ne_0_uint16},
    779 	{idx: 1, exp: lt, fn: lt_1_uint16},
    780 	{idx: 1, exp: le, fn: le_1_uint16},
    781 	{idx: 1, exp: gt, fn: gt_1_uint16},
    782 	{idx: 1, exp: ge, fn: ge_1_uint16},
    783 	{idx: 1, exp: eq, fn: eq_1_uint16},
    784 	{idx: 1, exp: ne, fn: ne_1_uint16},
    785 	{idx: 2, exp: lt, fn: lt_126_uint16},
    786 	{idx: 2, exp: le, fn: le_126_uint16},
    787 	{idx: 2, exp: gt, fn: gt_126_uint16},
    788 	{idx: 2, exp: ge, fn: ge_126_uint16},
    789 	{idx: 2, exp: eq, fn: eq_126_uint16},
    790 	{idx: 2, exp: ne, fn: ne_126_uint16},
    791 	{idx: 3, exp: lt, fn: lt_127_uint16},
    792 	{idx: 3, exp: le, fn: le_127_uint16},
    793 	{idx: 3, exp: gt, fn: gt_127_uint16},
    794 	{idx: 3, exp: ge, fn: ge_127_uint16},
    795 	{idx: 3, exp: eq, fn: eq_127_uint16},
    796 	{idx: 3, exp: ne, fn: ne_127_uint16},
    797 	{idx: 4, exp: lt, fn: lt_128_uint16},
    798 	{idx: 4, exp: le, fn: le_128_uint16},
    799 	{idx: 4, exp: gt, fn: gt_128_uint16},
    800 	{idx: 4, exp: ge, fn: ge_128_uint16},
    801 	{idx: 4, exp: eq, fn: eq_128_uint16},
    802 	{idx: 4, exp: ne, fn: ne_128_uint16},
    803 	{idx: 5, exp: lt, fn: lt_254_uint16},
    804 	{idx: 5, exp: le, fn: le_254_uint16},
    805 	{idx: 5, exp: gt, fn: gt_254_uint16},
    806 	{idx: 5, exp: ge, fn: ge_254_uint16},
    807 	{idx: 5, exp: eq, fn: eq_254_uint16},
    808 	{idx: 5, exp: ne, fn: ne_254_uint16},
    809 	{idx: 6, exp: lt, fn: lt_255_uint16},
    810 	{idx: 6, exp: le, fn: le_255_uint16},
    811 	{idx: 6, exp: gt, fn: gt_255_uint16},
    812 	{idx: 6, exp: ge, fn: ge_255_uint16},
    813 	{idx: 6, exp: eq, fn: eq_255_uint16},
    814 	{idx: 6, exp: ne, fn: ne_255_uint16},
    815 	{idx: 7, exp: lt, fn: lt_256_uint16},
    816 	{idx: 7, exp: le, fn: le_256_uint16},
    817 	{idx: 7, exp: gt, fn: gt_256_uint16},
    818 	{idx: 7, exp: ge, fn: ge_256_uint16},
    819 	{idx: 7, exp: eq, fn: eq_256_uint16},
    820 	{idx: 7, exp: ne, fn: ne_256_uint16},
    821 	{idx: 8, exp: lt, fn: lt_32766_uint16},
    822 	{idx: 8, exp: le, fn: le_32766_uint16},
    823 	{idx: 8, exp: gt, fn: gt_32766_uint16},
    824 	{idx: 8, exp: ge, fn: ge_32766_uint16},
    825 	{idx: 8, exp: eq, fn: eq_32766_uint16},
    826 	{idx: 8, exp: ne, fn: ne_32766_uint16},
    827 	{idx: 9, exp: lt, fn: lt_32767_uint16},
    828 	{idx: 9, exp: le, fn: le_32767_uint16},
    829 	{idx: 9, exp: gt, fn: gt_32767_uint16},
    830 	{idx: 9, exp: ge, fn: ge_32767_uint16},
    831 	{idx: 9, exp: eq, fn: eq_32767_uint16},
    832 	{idx: 9, exp: ne, fn: ne_32767_uint16},
    833 	{idx: 10, exp: lt, fn: lt_32768_uint16},
    834 	{idx: 10, exp: le, fn: le_32768_uint16},
    835 	{idx: 10, exp: gt, fn: gt_32768_uint16},
    836 	{idx: 10, exp: ge, fn: ge_32768_uint16},
    837 	{idx: 10, exp: eq, fn: eq_32768_uint16},
    838 	{idx: 10, exp: ne, fn: ne_32768_uint16},
    839 	{idx: 11, exp: lt, fn: lt_65534_uint16},
    840 	{idx: 11, exp: le, fn: le_65534_uint16},
    841 	{idx: 11, exp: gt, fn: gt_65534_uint16},
    842 	{idx: 11, exp: ge, fn: ge_65534_uint16},
    843 	{idx: 11, exp: eq, fn: eq_65534_uint16},
    844 	{idx: 11, exp: ne, fn: ne_65534_uint16},
    845 	{idx: 12, exp: lt, fn: lt_65535_uint16},
    846 	{idx: 12, exp: le, fn: le_65535_uint16},
    847 	{idx: 12, exp: gt, fn: gt_65535_uint16},
    848 	{idx: 12, exp: ge, fn: ge_65535_uint16},
    849 	{idx: 12, exp: eq, fn: eq_65535_uint16},
    850 	{idx: 12, exp: ne, fn: ne_65535_uint16},
    851 }
    852 
    853 // uint8 tests
    854 var uint8_vals = []uint8{
    855 	0,
    856 	1,
    857 	126,
    858 	127,
    859 	128,
    860 	254,
    861 	255,
    862 }
    863 
    864 func lt_0_uint8(x uint8) bool   { return x < 0 }
    865 func le_0_uint8(x uint8) bool   { return x <= 0 }
    866 func gt_0_uint8(x uint8) bool   { return x > 0 }
    867 func ge_0_uint8(x uint8) bool   { return x >= 0 }
    868 func eq_0_uint8(x uint8) bool   { return x == 0 }
    869 func ne_0_uint8(x uint8) bool   { return x != 0 }
    870 func lt_1_uint8(x uint8) bool   { return x < 1 }
    871 func le_1_uint8(x uint8) bool   { return x <= 1 }
    872 func gt_1_uint8(x uint8) bool   { return x > 1 }
    873 func ge_1_uint8(x uint8) bool   { return x >= 1 }
    874 func eq_1_uint8(x uint8) bool   { return x == 1 }
    875 func ne_1_uint8(x uint8) bool   { return x != 1 }
    876 func lt_126_uint8(x uint8) bool { return x < 126 }
    877 func le_126_uint8(x uint8) bool { return x <= 126 }
    878 func gt_126_uint8(x uint8) bool { return x > 126 }
    879 func ge_126_uint8(x uint8) bool { return x >= 126 }
    880 func eq_126_uint8(x uint8) bool { return x == 126 }
    881 func ne_126_uint8(x uint8) bool { return x != 126 }
    882 func lt_127_uint8(x uint8) bool { return x < 127 }
    883 func le_127_uint8(x uint8) bool { return x <= 127 }
    884 func gt_127_uint8(x uint8) bool { return x > 127 }
    885 func ge_127_uint8(x uint8) bool { return x >= 127 }
    886 func eq_127_uint8(x uint8) bool { return x == 127 }
    887 func ne_127_uint8(x uint8) bool { return x != 127 }
    888 func lt_128_uint8(x uint8) bool { return x < 128 }
    889 func le_128_uint8(x uint8) bool { return x <= 128 }
    890 func gt_128_uint8(x uint8) bool { return x > 128 }
    891 func ge_128_uint8(x uint8) bool { return x >= 128 }
    892 func eq_128_uint8(x uint8) bool { return x == 128 }
    893 func ne_128_uint8(x uint8) bool { return x != 128 }
    894 func lt_254_uint8(x uint8) bool { return x < 254 }
    895 func le_254_uint8(x uint8) bool { return x <= 254 }
    896 func gt_254_uint8(x uint8) bool { return x > 254 }
    897 func ge_254_uint8(x uint8) bool { return x >= 254 }
    898 func eq_254_uint8(x uint8) bool { return x == 254 }
    899 func ne_254_uint8(x uint8) bool { return x != 254 }
    900 func lt_255_uint8(x uint8) bool { return x < 255 }
    901 func le_255_uint8(x uint8) bool { return x <= 255 }
    902 func gt_255_uint8(x uint8) bool { return x > 255 }
    903 func ge_255_uint8(x uint8) bool { return x >= 255 }
    904 func eq_255_uint8(x uint8) bool { return x == 255 }
    905 func ne_255_uint8(x uint8) bool { return x != 255 }
    906 
    907 var uint8_tests = []struct {
    908 	idx int    // index of the constant used
    909 	exp result // expected results
    910 	fn  func(uint8) bool
    911 }{
    912 	{idx: 0, exp: lt, fn: lt_0_uint8},
    913 	{idx: 0, exp: le, fn: le_0_uint8},
    914 	{idx: 0, exp: gt, fn: gt_0_uint8},
    915 	{idx: 0, exp: ge, fn: ge_0_uint8},
    916 	{idx: 0, exp: eq, fn: eq_0_uint8},
    917 	{idx: 0, exp: ne, fn: ne_0_uint8},
    918 	{idx: 1, exp: lt, fn: lt_1_uint8},
    919 	{idx: 1, exp: le, fn: le_1_uint8},
    920 	{idx: 1, exp: gt, fn: gt_1_uint8},
    921 	{idx: 1, exp: ge, fn: ge_1_uint8},
    922 	{idx: 1, exp: eq, fn: eq_1_uint8},
    923 	{idx: 1, exp: ne, fn: ne_1_uint8},
    924 	{idx: 2, exp: lt, fn: lt_126_uint8},
    925 	{idx: 2, exp: le, fn: le_126_uint8},
    926 	{idx: 2, exp: gt, fn: gt_126_uint8},
    927 	{idx: 2, exp: ge, fn: ge_126_uint8},
    928 	{idx: 2, exp: eq, fn: eq_126_uint8},
    929 	{idx: 2, exp: ne, fn: ne_126_uint8},
    930 	{idx: 3, exp: lt, fn: lt_127_uint8},
    931 	{idx: 3, exp: le, fn: le_127_uint8},
    932 	{idx: 3, exp: gt, fn: gt_127_uint8},
    933 	{idx: 3, exp: ge, fn: ge_127_uint8},
    934 	{idx: 3, exp: eq, fn: eq_127_uint8},
    935 	{idx: 3, exp: ne, fn: ne_127_uint8},
    936 	{idx: 4, exp: lt, fn: lt_128_uint8},
    937 	{idx: 4, exp: le, fn: le_128_uint8},
    938 	{idx: 4, exp: gt, fn: gt_128_uint8},
    939 	{idx: 4, exp: ge, fn: ge_128_uint8},
    940 	{idx: 4, exp: eq, fn: eq_128_uint8},
    941 	{idx: 4, exp: ne, fn: ne_128_uint8},
    942 	{idx: 5, exp: lt, fn: lt_254_uint8},
    943 	{idx: 5, exp: le, fn: le_254_uint8},
    944 	{idx: 5, exp: gt, fn: gt_254_uint8},
    945 	{idx: 5, exp: ge, fn: ge_254_uint8},
    946 	{idx: 5, exp: eq, fn: eq_254_uint8},
    947 	{idx: 5, exp: ne, fn: ne_254_uint8},
    948 	{idx: 6, exp: lt, fn: lt_255_uint8},
    949 	{idx: 6, exp: le, fn: le_255_uint8},
    950 	{idx: 6, exp: gt, fn: gt_255_uint8},
    951 	{idx: 6, exp: ge, fn: ge_255_uint8},
    952 	{idx: 6, exp: eq, fn: eq_255_uint8},
    953 	{idx: 6, exp: ne, fn: ne_255_uint8},
    954 }
    955 
    956 // int64 tests
    957 var int64_vals = []int64{
    958 	-9223372036854775808,
    959 	-9223372036854775807,
    960 	-2147483649,
    961 	-2147483648,
    962 	-2147483647,
    963 	-32769,
    964 	-32768,
    965 	-32767,
    966 	-129,
    967 	-128,
    968 	-127,
    969 	-1,
    970 	0,
    971 	1,
    972 	126,
    973 	127,
    974 	128,
    975 	254,
    976 	255,
    977 	256,
    978 	32766,
    979 	32767,
    980 	32768,
    981 	65534,
    982 	65535,
    983 	65536,
    984 	2147483646,
    985 	2147483647,
    986 	2147483648,
    987 	4278190080,
    988 	4294967294,
    989 	4294967295,
    990 	4294967296,
    991 	1095216660480,
    992 	9223372036854775806,
    993 	9223372036854775807,
    994 }
    995 
    996 func lt_neg9223372036854775808_int64(x int64) bool { return x < -9223372036854775808 }
    997 func le_neg9223372036854775808_int64(x int64) bool { return x <= -9223372036854775808 }
    998 func gt_neg9223372036854775808_int64(x int64) bool { return x > -9223372036854775808 }
    999 func ge_neg9223372036854775808_int64(x int64) bool { return x >= -9223372036854775808 }
   1000 func eq_neg9223372036854775808_int64(x int64) bool { return x == -9223372036854775808 }
   1001 func ne_neg9223372036854775808_int64(x int64) bool { return x != -9223372036854775808 }
   1002 func lt_neg9223372036854775807_int64(x int64) bool { return x < -9223372036854775807 }
   1003 func le_neg9223372036854775807_int64(x int64) bool { return x <= -9223372036854775807 }
   1004 func gt_neg9223372036854775807_int64(x int64) bool { return x > -9223372036854775807 }
   1005 func ge_neg9223372036854775807_int64(x int64) bool { return x >= -9223372036854775807 }
   1006 func eq_neg9223372036854775807_int64(x int64) bool { return x == -9223372036854775807 }
   1007 func ne_neg9223372036854775807_int64(x int64) bool { return x != -9223372036854775807 }
   1008 func lt_neg2147483649_int64(x int64) bool          { return x < -2147483649 }
   1009 func le_neg2147483649_int64(x int64) bool          { return x <= -2147483649 }
   1010 func gt_neg2147483649_int64(x int64) bool          { return x > -2147483649 }
   1011 func ge_neg2147483649_int64(x int64) bool          { return x >= -2147483649 }
   1012 func eq_neg2147483649_int64(x int64) bool          { return x == -2147483649 }
   1013 func ne_neg2147483649_int64(x int64) bool          { return x != -2147483649 }
   1014 func lt_neg2147483648_int64(x int64) bool          { return x < -2147483648 }
   1015 func le_neg2147483648_int64(x int64) bool          { return x <= -2147483648 }
   1016 func gt_neg2147483648_int64(x int64) bool          { return x > -2147483648 }
   1017 func ge_neg2147483648_int64(x int64) bool          { return x >= -2147483648 }
   1018 func eq_neg2147483648_int64(x int64) bool          { return x == -2147483648 }
   1019 func ne_neg2147483648_int64(x int64) bool          { return x != -2147483648 }
   1020 func lt_neg2147483647_int64(x int64) bool          { return x < -2147483647 }
   1021 func le_neg2147483647_int64(x int64) bool          { return x <= -2147483647 }
   1022 func gt_neg2147483647_int64(x int64) bool          { return x > -2147483647 }
   1023 func ge_neg2147483647_int64(x int64) bool          { return x >= -2147483647 }
   1024 func eq_neg2147483647_int64(x int64) bool          { return x == -2147483647 }
   1025 func ne_neg2147483647_int64(x int64) bool          { return x != -2147483647 }
   1026 func lt_neg32769_int64(x int64) bool               { return x < -32769 }
   1027 func le_neg32769_int64(x int64) bool               { return x <= -32769 }
   1028 func gt_neg32769_int64(x int64) bool               { return x > -32769 }
   1029 func ge_neg32769_int64(x int64) bool               { return x >= -32769 }
   1030 func eq_neg32769_int64(x int64) bool               { return x == -32769 }
   1031 func ne_neg32769_int64(x int64) bool               { return x != -32769 }
   1032 func lt_neg32768_int64(x int64) bool               { return x < -32768 }
   1033 func le_neg32768_int64(x int64) bool               { return x <= -32768 }
   1034 func gt_neg32768_int64(x int64) bool               { return x > -32768 }
   1035 func ge_neg32768_int64(x int64) bool               { return x >= -32768 }
   1036 func eq_neg32768_int64(x int64) bool               { return x == -32768 }
   1037 func ne_neg32768_int64(x int64) bool               { return x != -32768 }
   1038 func lt_neg32767_int64(x int64) bool               { return x < -32767 }
   1039 func le_neg32767_int64(x int64) bool               { return x <= -32767 }
   1040 func gt_neg32767_int64(x int64) bool               { return x > -32767 }
   1041 func ge_neg32767_int64(x int64) bool               { return x >= -32767 }
   1042 func eq_neg32767_int64(x int64) bool               { return x == -32767 }
   1043 func ne_neg32767_int64(x int64) bool               { return x != -32767 }
   1044 func lt_neg129_int64(x int64) bool                 { return x < -129 }
   1045 func le_neg129_int64(x int64) bool                 { return x <= -129 }
   1046 func gt_neg129_int64(x int64) bool                 { return x > -129 }
   1047 func ge_neg129_int64(x int64) bool                 { return x >= -129 }
   1048 func eq_neg129_int64(x int64) bool                 { return x == -129 }
   1049 func ne_neg129_int64(x int64) bool                 { return x != -129 }
   1050 func lt_neg128_int64(x int64) bool                 { return x < -128 }
   1051 func le_neg128_int64(x int64) bool                 { return x <= -128 }
   1052 func gt_neg128_int64(x int64) bool                 { return x > -128 }
   1053 func ge_neg128_int64(x int64) bool                 { return x >= -128 }
   1054 func eq_neg128_int64(x int64) bool                 { return x == -128 }
   1055 func ne_neg128_int64(x int64) bool                 { return x != -128 }
   1056 func lt_neg127_int64(x int64) bool                 { return x < -127 }
   1057 func le_neg127_int64(x int64) bool                 { return x <= -127 }
   1058 func gt_neg127_int64(x int64) bool                 { return x > -127 }
   1059 func ge_neg127_int64(x int64) bool                 { return x >= -127 }
   1060 func eq_neg127_int64(x int64) bool                 { return x == -127 }
   1061 func ne_neg127_int64(x int64) bool                 { return x != -127 }
   1062 func lt_neg1_int64(x int64) bool                   { return x < -1 }
   1063 func le_neg1_int64(x int64) bool                   { return x <= -1 }
   1064 func gt_neg1_int64(x int64) bool                   { return x > -1 }
   1065 func ge_neg1_int64(x int64) bool                   { return x >= -1 }
   1066 func eq_neg1_int64(x int64) bool                   { return x == -1 }
   1067 func ne_neg1_int64(x int64) bool                   { return x != -1 }
   1068 func lt_0_int64(x int64) bool                      { return x < 0 }
   1069 func le_0_int64(x int64) bool                      { return x <= 0 }
   1070 func gt_0_int64(x int64) bool                      { return x > 0 }
   1071 func ge_0_int64(x int64) bool                      { return x >= 0 }
   1072 func eq_0_int64(x int64) bool                      { return x == 0 }
   1073 func ne_0_int64(x int64) bool                      { return x != 0 }
   1074 func lt_1_int64(x int64) bool                      { return x < 1 }
   1075 func le_1_int64(x int64) bool                      { return x <= 1 }
   1076 func gt_1_int64(x int64) bool                      { return x > 1 }
   1077 func ge_1_int64(x int64) bool                      { return x >= 1 }
   1078 func eq_1_int64(x int64) bool                      { return x == 1 }
   1079 func ne_1_int64(x int64) bool                      { return x != 1 }
   1080 func lt_126_int64(x int64) bool                    { return x < 126 }
   1081 func le_126_int64(x int64) bool                    { return x <= 126 }
   1082 func gt_126_int64(x int64) bool                    { return x > 126 }
   1083 func ge_126_int64(x int64) bool                    { return x >= 126 }
   1084 func eq_126_int64(x int64) bool                    { return x == 126 }
   1085 func ne_126_int64(x int64) bool                    { return x != 126 }
   1086 func lt_127_int64(x int64) bool                    { return x < 127 }
   1087 func le_127_int64(x int64) bool                    { return x <= 127 }
   1088 func gt_127_int64(x int64) bool                    { return x > 127 }
   1089 func ge_127_int64(x int64) bool                    { return x >= 127 }
   1090 func eq_127_int64(x int64) bool                    { return x == 127 }
   1091 func ne_127_int64(x int64) bool                    { return x != 127 }
   1092 func lt_128_int64(x int64) bool                    { return x < 128 }
   1093 func le_128_int64(x int64) bool                    { return x <= 128 }
   1094 func gt_128_int64(x int64) bool                    { return x > 128 }
   1095 func ge_128_int64(x int64) bool                    { return x >= 128 }
   1096 func eq_128_int64(x int64) bool                    { return x == 128 }
   1097 func ne_128_int64(x int64) bool                    { return x != 128 }
   1098 func lt_254_int64(x int64) bool                    { return x < 254 }
   1099 func le_254_int64(x int64) bool                    { return x <= 254 }
   1100 func gt_254_int64(x int64) bool                    { return x > 254 }
   1101 func ge_254_int64(x int64) bool                    { return x >= 254 }
   1102 func eq_254_int64(x int64) bool                    { return x == 254 }
   1103 func ne_254_int64(x int64) bool                    { return x != 254 }
   1104 func lt_255_int64(x int64) bool                    { return x < 255 }
   1105 func le_255_int64(x int64) bool                    { return x <= 255 }
   1106 func gt_255_int64(x int64) bool                    { return x > 255 }
   1107 func ge_255_int64(x int64) bool                    { return x >= 255 }
   1108 func eq_255_int64(x int64) bool                    { return x == 255 }
   1109 func ne_255_int64(x int64) bool                    { return x != 255 }
   1110 func lt_256_int64(x int64) bool                    { return x < 256 }
   1111 func le_256_int64(x int64) bool                    { return x <= 256 }
   1112 func gt_256_int64(x int64) bool                    { return x > 256 }
   1113 func ge_256_int64(x int64) bool                    { return x >= 256 }
   1114 func eq_256_int64(x int64) bool                    { return x == 256 }
   1115 func ne_256_int64(x int64) bool                    { return x != 256 }
   1116 func lt_32766_int64(x int64) bool                  { return x < 32766 }
   1117 func le_32766_int64(x int64) bool                  { return x <= 32766 }
   1118 func gt_32766_int64(x int64) bool                  { return x > 32766 }
   1119 func ge_32766_int64(x int64) bool                  { return x >= 32766 }
   1120 func eq_32766_int64(x int64) bool                  { return x == 32766 }
   1121 func ne_32766_int64(x int64) bool                  { return x != 32766 }
   1122 func lt_32767_int64(x int64) bool                  { return x < 32767 }
   1123 func le_32767_int64(x int64) bool                  { return x <= 32767 }
   1124 func gt_32767_int64(x int64) bool                  { return x > 32767 }
   1125 func ge_32767_int64(x int64) bool                  { return x >= 32767 }
   1126 func eq_32767_int64(x int64) bool                  { return x == 32767 }
   1127 func ne_32767_int64(x int64) bool                  { return x != 32767 }
   1128 func lt_32768_int64(x int64) bool                  { return x < 32768 }
   1129 func le_32768_int64(x int64) bool                  { return x <= 32768 }
   1130 func gt_32768_int64(x int64) bool                  { return x > 32768 }
   1131 func ge_32768_int64(x int64) bool                  { return x >= 32768 }
   1132 func eq_32768_int64(x int64) bool                  { return x == 32768 }
   1133 func ne_32768_int64(x int64) bool                  { return x != 32768 }
   1134 func lt_65534_int64(x int64) bool                  { return x < 65534 }
   1135 func le_65534_int64(x int64) bool                  { return x <= 65534 }
   1136 func gt_65534_int64(x int64) bool                  { return x > 65534 }
   1137 func ge_65534_int64(x int64) bool                  { return x >= 65534 }
   1138 func eq_65534_int64(x int64) bool                  { return x == 65534 }
   1139 func ne_65534_int64(x int64) bool                  { return x != 65534 }
   1140 func lt_65535_int64(x int64) bool                  { return x < 65535 }
   1141 func le_65535_int64(x int64) bool                  { return x <= 65535 }
   1142 func gt_65535_int64(x int64) bool                  { return x > 65535 }
   1143 func ge_65535_int64(x int64) bool                  { return x >= 65535 }
   1144 func eq_65535_int64(x int64) bool                  { return x == 65535 }
   1145 func ne_65535_int64(x int64) bool                  { return x != 65535 }
   1146 func lt_65536_int64(x int64) bool                  { return x < 65536 }
   1147 func le_65536_int64(x int64) bool                  { return x <= 65536 }
   1148 func gt_65536_int64(x int64) bool                  { return x > 65536 }
   1149 func ge_65536_int64(x int64) bool                  { return x >= 65536 }
   1150 func eq_65536_int64(x int64) bool                  { return x == 65536 }
   1151 func ne_65536_int64(x int64) bool                  { return x != 65536 }
   1152 func lt_2147483646_int64(x int64) bool             { return x < 2147483646 }
   1153 func le_2147483646_int64(x int64) bool             { return x <= 2147483646 }
   1154 func gt_2147483646_int64(x int64) bool             { return x > 2147483646 }
   1155 func ge_2147483646_int64(x int64) bool             { return x >= 2147483646 }
   1156 func eq_2147483646_int64(x int64) bool             { return x == 2147483646 }
   1157 func ne_2147483646_int64(x int64) bool             { return x != 2147483646 }
   1158 func lt_2147483647_int64(x int64) bool             { return x < 2147483647 }
   1159 func le_2147483647_int64(x int64) bool             { return x <= 2147483647 }
   1160 func gt_2147483647_int64(x int64) bool             { return x > 2147483647 }
   1161 func ge_2147483647_int64(x int64) bool             { return x >= 2147483647 }
   1162 func eq_2147483647_int64(x int64) bool             { return x == 2147483647 }
   1163 func ne_2147483647_int64(x int64) bool             { return x != 2147483647 }
   1164 func lt_2147483648_int64(x int64) bool             { return x < 2147483648 }
   1165 func le_2147483648_int64(x int64) bool             { return x <= 2147483648 }
   1166 func gt_2147483648_int64(x int64) bool             { return x > 2147483648 }
   1167 func ge_2147483648_int64(x int64) bool             { return x >= 2147483648 }
   1168 func eq_2147483648_int64(x int64) bool             { return x == 2147483648 }
   1169 func ne_2147483648_int64(x int64) bool             { return x != 2147483648 }
   1170 func lt_4278190080_int64(x int64) bool             { return x < 4278190080 }
   1171 func le_4278190080_int64(x int64) bool             { return x <= 4278190080 }
   1172 func gt_4278190080_int64(x int64) bool             { return x > 4278190080 }
   1173 func ge_4278190080_int64(x int64) bool             { return x >= 4278190080 }
   1174 func eq_4278190080_int64(x int64) bool             { return x == 4278190080 }
   1175 func ne_4278190080_int64(x int64) bool             { return x != 4278190080 }
   1176 func lt_4294967294_int64(x int64) bool             { return x < 4294967294 }
   1177 func le_4294967294_int64(x int64) bool             { return x <= 4294967294 }
   1178 func gt_4294967294_int64(x int64) bool             { return x > 4294967294 }
   1179 func ge_4294967294_int64(x int64) bool             { return x >= 4294967294 }
   1180 func eq_4294967294_int64(x int64) bool             { return x == 4294967294 }
   1181 func ne_4294967294_int64(x int64) bool             { return x != 4294967294 }
   1182 func lt_4294967295_int64(x int64) bool             { return x < 4294967295 }
   1183 func le_4294967295_int64(x int64) bool             { return x <= 4294967295 }
   1184 func gt_4294967295_int64(x int64) bool             { return x > 4294967295 }
   1185 func ge_4294967295_int64(x int64) bool             { return x >= 4294967295 }
   1186 func eq_4294967295_int64(x int64) bool             { return x == 4294967295 }
   1187 func ne_4294967295_int64(x int64) bool             { return x != 4294967295 }
   1188 func lt_4294967296_int64(x int64) bool             { return x < 4294967296 }
   1189 func le_4294967296_int64(x int64) bool             { return x <= 4294967296 }
   1190 func gt_4294967296_int64(x int64) bool             { return x > 4294967296 }
   1191 func ge_4294967296_int64(x int64) bool             { return x >= 4294967296 }
   1192 func eq_4294967296_int64(x int64) bool             { return x == 4294967296 }
   1193 func ne_4294967296_int64(x int64) bool             { return x != 4294967296 }
   1194 func lt_1095216660480_int64(x int64) bool          { return x < 1095216660480 }
   1195 func le_1095216660480_int64(x int64) bool          { return x <= 1095216660480 }
   1196 func gt_1095216660480_int64(x int64) bool          { return x > 1095216660480 }
   1197 func ge_1095216660480_int64(x int64) bool          { return x >= 1095216660480 }
   1198 func eq_1095216660480_int64(x int64) bool          { return x == 1095216660480 }
   1199 func ne_1095216660480_int64(x int64) bool          { return x != 1095216660480 }
   1200 func lt_9223372036854775806_int64(x int64) bool    { return x < 9223372036854775806 }
   1201 func le_9223372036854775806_int64(x int64) bool    { return x <= 9223372036854775806 }
   1202 func gt_9223372036854775806_int64(x int64) bool    { return x > 9223372036854775806 }
   1203 func ge_9223372036854775806_int64(x int64) bool    { return x >= 9223372036854775806 }
   1204 func eq_9223372036854775806_int64(x int64) bool    { return x == 9223372036854775806 }
   1205 func ne_9223372036854775806_int64(x int64) bool    { return x != 9223372036854775806 }
   1206 func lt_9223372036854775807_int64(x int64) bool    { return x < 9223372036854775807 }
   1207 func le_9223372036854775807_int64(x int64) bool    { return x <= 9223372036854775807 }
   1208 func gt_9223372036854775807_int64(x int64) bool    { return x > 9223372036854775807 }
   1209 func ge_9223372036854775807_int64(x int64) bool    { return x >= 9223372036854775807 }
   1210 func eq_9223372036854775807_int64(x int64) bool    { return x == 9223372036854775807 }
   1211 func ne_9223372036854775807_int64(x int64) bool    { return x != 9223372036854775807 }
   1212 
   1213 var int64_tests = []struct {
   1214 	idx int    // index of the constant used
   1215 	exp result // expected results
   1216 	fn  func(int64) bool
   1217 }{
   1218 	{idx: 0, exp: lt, fn: lt_neg9223372036854775808_int64},
   1219 	{idx: 0, exp: le, fn: le_neg9223372036854775808_int64},
   1220 	{idx: 0, exp: gt, fn: gt_neg9223372036854775808_int64},
   1221 	{idx: 0, exp: ge, fn: ge_neg9223372036854775808_int64},
   1222 	{idx: 0, exp: eq, fn: eq_neg9223372036854775808_int64},
   1223 	{idx: 0, exp: ne, fn: ne_neg9223372036854775808_int64},
   1224 	{idx: 1, exp: lt, fn: lt_neg9223372036854775807_int64},
   1225 	{idx: 1, exp: le, fn: le_neg9223372036854775807_int64},
   1226 	{idx: 1, exp: gt, fn: gt_neg9223372036854775807_int64},
   1227 	{idx: 1, exp: ge, fn: ge_neg9223372036854775807_int64},
   1228 	{idx: 1, exp: eq, fn: eq_neg9223372036854775807_int64},
   1229 	{idx: 1, exp: ne, fn: ne_neg9223372036854775807_int64},
   1230 	{idx: 2, exp: lt, fn: lt_neg2147483649_int64},
   1231 	{idx: 2, exp: le, fn: le_neg2147483649_int64},
   1232 	{idx: 2, exp: gt, fn: gt_neg2147483649_int64},
   1233 	{idx: 2, exp: ge, fn: ge_neg2147483649_int64},
   1234 	{idx: 2, exp: eq, fn: eq_neg2147483649_int64},
   1235 	{idx: 2, exp: ne, fn: ne_neg2147483649_int64},
   1236 	{idx: 3, exp: lt, fn: lt_neg2147483648_int64},
   1237 	{idx: 3, exp: le, fn: le_neg2147483648_int64},
   1238 	{idx: 3, exp: gt, fn: gt_neg2147483648_int64},
   1239 	{idx: 3, exp: ge, fn: ge_neg2147483648_int64},
   1240 	{idx: 3, exp: eq, fn: eq_neg2147483648_int64},
   1241 	{idx: 3, exp: ne, fn: ne_neg2147483648_int64},
   1242 	{idx: 4, exp: lt, fn: lt_neg2147483647_int64},
   1243 	{idx: 4, exp: le, fn: le_neg2147483647_int64},
   1244 	{idx: 4, exp: gt, fn: gt_neg2147483647_int64},
   1245 	{idx: 4, exp: ge, fn: ge_neg2147483647_int64},
   1246 	{idx: 4, exp: eq, fn: eq_neg2147483647_int64},
   1247 	{idx: 4, exp: ne, fn: ne_neg2147483647_int64},
   1248 	{idx: 5, exp: lt, fn: lt_neg32769_int64},
   1249 	{idx: 5, exp: le, fn: le_neg32769_int64},
   1250 	{idx: 5, exp: gt, fn: gt_neg32769_int64},
   1251 	{idx: 5, exp: ge, fn: ge_neg32769_int64},
   1252 	{idx: 5, exp: eq, fn: eq_neg32769_int64},
   1253 	{idx: 5, exp: ne, fn: ne_neg32769_int64},
   1254 	{idx: 6, exp: lt, fn: lt_neg32768_int64},
   1255 	{idx: 6, exp: le, fn: le_neg32768_int64},
   1256 	{idx: 6, exp: gt, fn: gt_neg32768_int64},
   1257 	{idx: 6, exp: ge, fn: ge_neg32768_int64},
   1258 	{idx: 6, exp: eq, fn: eq_neg32768_int64},
   1259 	{idx: 6, exp: ne, fn: ne_neg32768_int64},
   1260 	{idx: 7, exp: lt, fn: lt_neg32767_int64},
   1261 	{idx: 7, exp: le, fn: le_neg32767_int64},
   1262 	{idx: 7, exp: gt, fn: gt_neg32767_int64},
   1263 	{idx: 7, exp: ge, fn: ge_neg32767_int64},
   1264 	{idx: 7, exp: eq, fn: eq_neg32767_int64},
   1265 	{idx: 7, exp: ne, fn: ne_neg32767_int64},
   1266 	{idx: 8, exp: lt, fn: lt_neg129_int64},
   1267 	{idx: 8, exp: le, fn: le_neg129_int64},
   1268 	{idx: 8, exp: gt, fn: gt_neg129_int64},
   1269 	{idx: 8, exp: ge, fn: ge_neg129_int64},
   1270 	{idx: 8, exp: eq, fn: eq_neg129_int64},
   1271 	{idx: 8, exp: ne, fn: ne_neg129_int64},
   1272 	{idx: 9, exp: lt, fn: lt_neg128_int64},
   1273 	{idx: 9, exp: le, fn: le_neg128_int64},
   1274 	{idx: 9, exp: gt, fn: gt_neg128_int64},
   1275 	{idx: 9, exp: ge, fn: ge_neg128_int64},
   1276 	{idx: 9, exp: eq, fn: eq_neg128_int64},
   1277 	{idx: 9, exp: ne, fn: ne_neg128_int64},
   1278 	{idx: 10, exp: lt, fn: lt_neg127_int64},
   1279 	{idx: 10, exp: le, fn: le_neg127_int64},
   1280 	{idx: 10, exp: gt, fn: gt_neg127_int64},
   1281 	{idx: 10, exp: ge, fn: ge_neg127_int64},
   1282 	{idx: 10, exp: eq, fn: eq_neg127_int64},
   1283 	{idx: 10, exp: ne, fn: ne_neg127_int64},
   1284 	{idx: 11, exp: lt, fn: lt_neg1_int64},
   1285 	{idx: 11, exp: le, fn: le_neg1_int64},
   1286 	{idx: 11, exp: gt, fn: gt_neg1_int64},
   1287 	{idx: 11, exp: ge, fn: ge_neg1_int64},
   1288 	{idx: 11, exp: eq, fn: eq_neg1_int64},
   1289 	{idx: 11, exp: ne, fn: ne_neg1_int64},
   1290 	{idx: 12, exp: lt, fn: lt_0_int64},
   1291 	{idx: 12, exp: le, fn: le_0_int64},
   1292 	{idx: 12, exp: gt, fn: gt_0_int64},
   1293 	{idx: 12, exp: ge, fn: ge_0_int64},
   1294 	{idx: 12, exp: eq, fn: eq_0_int64},
   1295 	{idx: 12, exp: ne, fn: ne_0_int64},
   1296 	{idx: 13, exp: lt, fn: lt_1_int64},
   1297 	{idx: 13, exp: le, fn: le_1_int64},
   1298 	{idx: 13, exp: gt, fn: gt_1_int64},
   1299 	{idx: 13, exp: ge, fn: ge_1_int64},
   1300 	{idx: 13, exp: eq, fn: eq_1_int64},
   1301 	{idx: 13, exp: ne, fn: ne_1_int64},
   1302 	{idx: 14, exp: lt, fn: lt_126_int64},
   1303 	{idx: 14, exp: le, fn: le_126_int64},
   1304 	{idx: 14, exp: gt, fn: gt_126_int64},
   1305 	{idx: 14, exp: ge, fn: ge_126_int64},
   1306 	{idx: 14, exp: eq, fn: eq_126_int64},
   1307 	{idx: 14, exp: ne, fn: ne_126_int64},
   1308 	{idx: 15, exp: lt, fn: lt_127_int64},
   1309 	{idx: 15, exp: le, fn: le_127_int64},
   1310 	{idx: 15, exp: gt, fn: gt_127_int64},
   1311 	{idx: 15, exp: ge, fn: ge_127_int64},
   1312 	{idx: 15, exp: eq, fn: eq_127_int64},
   1313 	{idx: 15, exp: ne, fn: ne_127_int64},
   1314 	{idx: 16, exp: lt, fn: lt_128_int64},
   1315 	{idx: 16, exp: le, fn: le_128_int64},
   1316 	{idx: 16, exp: gt, fn: gt_128_int64},
   1317 	{idx: 16, exp: ge, fn: ge_128_int64},
   1318 	{idx: 16, exp: eq, fn: eq_128_int64},
   1319 	{idx: 16, exp: ne, fn: ne_128_int64},
   1320 	{idx: 17, exp: lt, fn: lt_254_int64},
   1321 	{idx: 17, exp: le, fn: le_254_int64},
   1322 	{idx: 17, exp: gt, fn: gt_254_int64},
   1323 	{idx: 17, exp: ge, fn: ge_254_int64},
   1324 	{idx: 17, exp: eq, fn: eq_254_int64},
   1325 	{idx: 17, exp: ne, fn: ne_254_int64},
   1326 	{idx: 18, exp: lt, fn: lt_255_int64},
   1327 	{idx: 18, exp: le, fn: le_255_int64},
   1328 	{idx: 18, exp: gt, fn: gt_255_int64},
   1329 	{idx: 18, exp: ge, fn: ge_255_int64},
   1330 	{idx: 18, exp: eq, fn: eq_255_int64},
   1331 	{idx: 18, exp: ne, fn: ne_255_int64},
   1332 	{idx: 19, exp: lt, fn: lt_256_int64},
   1333 	{idx: 19, exp: le, fn: le_256_int64},
   1334 	{idx: 19, exp: gt, fn: gt_256_int64},
   1335 	{idx: 19, exp: ge, fn: ge_256_int64},
   1336 	{idx: 19, exp: eq, fn: eq_256_int64},
   1337 	{idx: 19, exp: ne, fn: ne_256_int64},
   1338 	{idx: 20, exp: lt, fn: lt_32766_int64},
   1339 	{idx: 20, exp: le, fn: le_32766_int64},
   1340 	{idx: 20, exp: gt, fn: gt_32766_int64},
   1341 	{idx: 20, exp: ge, fn: ge_32766_int64},
   1342 	{idx: 20, exp: eq, fn: eq_32766_int64},
   1343 	{idx: 20, exp: ne, fn: ne_32766_int64},
   1344 	{idx: 21, exp: lt, fn: lt_32767_int64},
   1345 	{idx: 21, exp: le, fn: le_32767_int64},
   1346 	{idx: 21, exp: gt, fn: gt_32767_int64},
   1347 	{idx: 21, exp: ge, fn: ge_32767_int64},
   1348 	{idx: 21, exp: eq, fn: eq_32767_int64},
   1349 	{idx: 21, exp: ne, fn: ne_32767_int64},
   1350 	{idx: 22, exp: lt, fn: lt_32768_int64},
   1351 	{idx: 22, exp: le, fn: le_32768_int64},
   1352 	{idx: 22, exp: gt, fn: gt_32768_int64},
   1353 	{idx: 22, exp: ge, fn: ge_32768_int64},
   1354 	{idx: 22, exp: eq, fn: eq_32768_int64},
   1355 	{idx: 22, exp: ne, fn: ne_32768_int64},
   1356 	{idx: 23, exp: lt, fn: lt_65534_int64},
   1357 	{idx: 23, exp: le, fn: le_65534_int64},
   1358 	{idx: 23, exp: gt, fn: gt_65534_int64},
   1359 	{idx: 23, exp: ge, fn: ge_65534_int64},
   1360 	{idx: 23, exp: eq, fn: eq_65534_int64},
   1361 	{idx: 23, exp: ne, fn: ne_65534_int64},
   1362 	{idx: 24, exp: lt, fn: lt_65535_int64},
   1363 	{idx: 24, exp: le, fn: le_65535_int64},
   1364 	{idx: 24, exp: gt, fn: gt_65535_int64},
   1365 	{idx: 24, exp: ge, fn: ge_65535_int64},
   1366 	{idx: 24, exp: eq, fn: eq_65535_int64},
   1367 	{idx: 24, exp: ne, fn: ne_65535_int64},
   1368 	{idx: 25, exp: lt, fn: lt_65536_int64},
   1369 	{idx: 25, exp: le, fn: le_65536_int64},
   1370 	{idx: 25, exp: gt, fn: gt_65536_int64},
   1371 	{idx: 25, exp: ge, fn: ge_65536_int64},
   1372 	{idx: 25, exp: eq, fn: eq_65536_int64},
   1373 	{idx: 25, exp: ne, fn: ne_65536_int64},
   1374 	{idx: 26, exp: lt, fn: lt_2147483646_int64},
   1375 	{idx: 26, exp: le, fn: le_2147483646_int64},
   1376 	{idx: 26, exp: gt, fn: gt_2147483646_int64},
   1377 	{idx: 26, exp: ge, fn: ge_2147483646_int64},
   1378 	{idx: 26, exp: eq, fn: eq_2147483646_int64},
   1379 	{idx: 26, exp: ne, fn: ne_2147483646_int64},
   1380 	{idx: 27, exp: lt, fn: lt_2147483647_int64},
   1381 	{idx: 27, exp: le, fn: le_2147483647_int64},
   1382 	{idx: 27, exp: gt, fn: gt_2147483647_int64},
   1383 	{idx: 27, exp: ge, fn: ge_2147483647_int64},
   1384 	{idx: 27, exp: eq, fn: eq_2147483647_int64},
   1385 	{idx: 27, exp: ne, fn: ne_2147483647_int64},
   1386 	{idx: 28, exp: lt, fn: lt_2147483648_int64},
   1387 	{idx: 28, exp: le, fn: le_2147483648_int64},
   1388 	{idx: 28, exp: gt, fn: gt_2147483648_int64},
   1389 	{idx: 28, exp: ge, fn: ge_2147483648_int64},
   1390 	{idx: 28, exp: eq, fn: eq_2147483648_int64},
   1391 	{idx: 28, exp: ne, fn: ne_2147483648_int64},
   1392 	{idx: 29, exp: lt, fn: lt_4278190080_int64},
   1393 	{idx: 29, exp: le, fn: le_4278190080_int64},
   1394 	{idx: 29, exp: gt, fn: gt_4278190080_int64},
   1395 	{idx: 29, exp: ge, fn: ge_4278190080_int64},
   1396 	{idx: 29, exp: eq, fn: eq_4278190080_int64},
   1397 	{idx: 29, exp: ne, fn: ne_4278190080_int64},
   1398 	{idx: 30, exp: lt, fn: lt_4294967294_int64},
   1399 	{idx: 30, exp: le, fn: le_4294967294_int64},
   1400 	{idx: 30, exp: gt, fn: gt_4294967294_int64},
   1401 	{idx: 30, exp: ge, fn: ge_4294967294_int64},
   1402 	{idx: 30, exp: eq, fn: eq_4294967294_int64},
   1403 	{idx: 30, exp: ne, fn: ne_4294967294_int64},
   1404 	{idx: 31, exp: lt, fn: lt_4294967295_int64},
   1405 	{idx: 31, exp: le, fn: le_4294967295_int64},
   1406 	{idx: 31, exp: gt, fn: gt_4294967295_int64},
   1407 	{idx: 31, exp: ge, fn: ge_4294967295_int64},
   1408 	{idx: 31, exp: eq, fn: eq_4294967295_int64},
   1409 	{idx: 31, exp: ne, fn: ne_4294967295_int64},
   1410 	{idx: 32, exp: lt, fn: lt_4294967296_int64},
   1411 	{idx: 32, exp: le, fn: le_4294967296_int64},
   1412 	{idx: 32, exp: gt, fn: gt_4294967296_int64},
   1413 	{idx: 32, exp: ge, fn: ge_4294967296_int64},
   1414 	{idx: 32, exp: eq, fn: eq_4294967296_int64},
   1415 	{idx: 32, exp: ne, fn: ne_4294967296_int64},
   1416 	{idx: 33, exp: lt, fn: lt_1095216660480_int64},
   1417 	{idx: 33, exp: le, fn: le_1095216660480_int64},
   1418 	{idx: 33, exp: gt, fn: gt_1095216660480_int64},
   1419 	{idx: 33, exp: ge, fn: ge_1095216660480_int64},
   1420 	{idx: 33, exp: eq, fn: eq_1095216660480_int64},
   1421 	{idx: 33, exp: ne, fn: ne_1095216660480_int64},
   1422 	{idx: 34, exp: lt, fn: lt_9223372036854775806_int64},
   1423 	{idx: 34, exp: le, fn: le_9223372036854775806_int64},
   1424 	{idx: 34, exp: gt, fn: gt_9223372036854775806_int64},
   1425 	{idx: 34, exp: ge, fn: ge_9223372036854775806_int64},
   1426 	{idx: 34, exp: eq, fn: eq_9223372036854775806_int64},
   1427 	{idx: 34, exp: ne, fn: ne_9223372036854775806_int64},
   1428 	{idx: 35, exp: lt, fn: lt_9223372036854775807_int64},
   1429 	{idx: 35, exp: le, fn: le_9223372036854775807_int64},
   1430 	{idx: 35, exp: gt, fn: gt_9223372036854775807_int64},
   1431 	{idx: 35, exp: ge, fn: ge_9223372036854775807_int64},
   1432 	{idx: 35, exp: eq, fn: eq_9223372036854775807_int64},
   1433 	{idx: 35, exp: ne, fn: ne_9223372036854775807_int64},
   1434 }
   1435 
   1436 // int32 tests
   1437 var int32_vals = []int32{
   1438 	-2147483648,
   1439 	-2147483647,
   1440 	-32769,
   1441 	-32768,
   1442 	-32767,
   1443 	-129,
   1444 	-128,
   1445 	-127,
   1446 	-1,
   1447 	0,
   1448 	1,
   1449 	126,
   1450 	127,
   1451 	128,
   1452 	254,
   1453 	255,
   1454 	256,
   1455 	32766,
   1456 	32767,
   1457 	32768,
   1458 	65534,
   1459 	65535,
   1460 	65536,
   1461 	2147483646,
   1462 	2147483647,
   1463 }
   1464 
   1465 func lt_neg2147483648_int32(x int32) bool { return x < -2147483648 }
   1466 func le_neg2147483648_int32(x int32) bool { return x <= -2147483648 }
   1467 func gt_neg2147483648_int32(x int32) bool { return x > -2147483648 }
   1468 func ge_neg2147483648_int32(x int32) bool { return x >= -2147483648 }
   1469 func eq_neg2147483648_int32(x int32) bool { return x == -2147483648 }
   1470 func ne_neg2147483648_int32(x int32) bool { return x != -2147483648 }
   1471 func lt_neg2147483647_int32(x int32) bool { return x < -2147483647 }
   1472 func le_neg2147483647_int32(x int32) bool { return x <= -2147483647 }
   1473 func gt_neg2147483647_int32(x int32) bool { return x > -2147483647 }
   1474 func ge_neg2147483647_int32(x int32) bool { return x >= -2147483647 }
   1475 func eq_neg2147483647_int32(x int32) bool { return x == -2147483647 }
   1476 func ne_neg2147483647_int32(x int32) bool { return x != -2147483647 }
   1477 func lt_neg32769_int32(x int32) bool      { return x < -32769 }
   1478 func le_neg32769_int32(x int32) bool      { return x <= -32769 }
   1479 func gt_neg32769_int32(x int32) bool      { return x > -32769 }
   1480 func ge_neg32769_int32(x int32) bool      { return x >= -32769 }
   1481 func eq_neg32769_int32(x int32) bool      { return x == -32769 }
   1482 func ne_neg32769_int32(x int32) bool      { return x != -32769 }
   1483 func lt_neg32768_int32(x int32) bool      { return x < -32768 }
   1484 func le_neg32768_int32(x int32) bool      { return x <= -32768 }
   1485 func gt_neg32768_int32(x int32) bool      { return x > -32768 }
   1486 func ge_neg32768_int32(x int32) bool      { return x >= -32768 }
   1487 func eq_neg32768_int32(x int32) bool      { return x == -32768 }
   1488 func ne_neg32768_int32(x int32) bool      { return x != -32768 }
   1489 func lt_neg32767_int32(x int32) bool      { return x < -32767 }
   1490 func le_neg32767_int32(x int32) bool      { return x <= -32767 }
   1491 func gt_neg32767_int32(x int32) bool      { return x > -32767 }
   1492 func ge_neg32767_int32(x int32) bool      { return x >= -32767 }
   1493 func eq_neg32767_int32(x int32) bool      { return x == -32767 }
   1494 func ne_neg32767_int32(x int32) bool      { return x != -32767 }
   1495 func lt_neg129_int32(x int32) bool        { return x < -129 }
   1496 func le_neg129_int32(x int32) bool        { return x <= -129 }
   1497 func gt_neg129_int32(x int32) bool        { return x > -129 }
   1498 func ge_neg129_int32(x int32) bool        { return x >= -129 }
   1499 func eq_neg129_int32(x int32) bool        { return x == -129 }
   1500 func ne_neg129_int32(x int32) bool        { return x != -129 }
   1501 func lt_neg128_int32(x int32) bool        { return x < -128 }
   1502 func le_neg128_int32(x int32) bool        { return x <= -128 }
   1503 func gt_neg128_int32(x int32) bool        { return x > -128 }
   1504 func ge_neg128_int32(x int32) bool        { return x >= -128 }
   1505 func eq_neg128_int32(x int32) bool        { return x == -128 }
   1506 func ne_neg128_int32(x int32) bool        { return x != -128 }
   1507 func lt_neg127_int32(x int32) bool        { return x < -127 }
   1508 func le_neg127_int32(x int32) bool        { return x <= -127 }
   1509 func gt_neg127_int32(x int32) bool        { return x > -127 }
   1510 func ge_neg127_int32(x int32) bool        { return x >= -127 }
   1511 func eq_neg127_int32(x int32) bool        { return x == -127 }
   1512 func ne_neg127_int32(x int32) bool        { return x != -127 }
   1513 func lt_neg1_int32(x int32) bool          { return x < -1 }
   1514 func le_neg1_int32(x int32) bool          { return x <= -1 }
   1515 func gt_neg1_int32(x int32) bool          { return x > -1 }
   1516 func ge_neg1_int32(x int32) bool          { return x >= -1 }
   1517 func eq_neg1_int32(x int32) bool          { return x == -1 }
   1518 func ne_neg1_int32(x int32) bool          { return x != -1 }
   1519 func lt_0_int32(x int32) bool             { return x < 0 }
   1520 func le_0_int32(x int32) bool             { return x <= 0 }
   1521 func gt_0_int32(x int32) bool             { return x > 0 }
   1522 func ge_0_int32(x int32) bool             { return x >= 0 }
   1523 func eq_0_int32(x int32) bool             { return x == 0 }
   1524 func ne_0_int32(x int32) bool             { return x != 0 }
   1525 func lt_1_int32(x int32) bool             { return x < 1 }
   1526 func le_1_int32(x int32) bool             { return x <= 1 }
   1527 func gt_1_int32(x int32) bool             { return x > 1 }
   1528 func ge_1_int32(x int32) bool             { return x >= 1 }
   1529 func eq_1_int32(x int32) bool             { return x == 1 }
   1530 func ne_1_int32(x int32) bool             { return x != 1 }
   1531 func lt_126_int32(x int32) bool           { return x < 126 }
   1532 func le_126_int32(x int32) bool           { return x <= 126 }
   1533 func gt_126_int32(x int32) bool           { return x > 126 }
   1534 func ge_126_int32(x int32) bool           { return x >= 126 }
   1535 func eq_126_int32(x int32) bool           { return x == 126 }
   1536 func ne_126_int32(x int32) bool           { return x != 126 }
   1537 func lt_127_int32(x int32) bool           { return x < 127 }
   1538 func le_127_int32(x int32) bool           { return x <= 127 }
   1539 func gt_127_int32(x int32) bool           { return x > 127 }
   1540 func ge_127_int32(x int32) bool           { return x >= 127 }
   1541 func eq_127_int32(x int32) bool           { return x == 127 }
   1542 func ne_127_int32(x int32) bool           { return x != 127 }
   1543 func lt_128_int32(x int32) bool           { return x < 128 }
   1544 func le_128_int32(x int32) bool           { return x <= 128 }
   1545 func gt_128_int32(x int32) bool           { return x > 128 }
   1546 func ge_128_int32(x int32) bool           { return x >= 128 }
   1547 func eq_128_int32(x int32) bool           { return x == 128 }
   1548 func ne_128_int32(x int32) bool           { return x != 128 }
   1549 func lt_254_int32(x int32) bool           { return x < 254 }
   1550 func le_254_int32(x int32) bool           { return x <= 254 }
   1551 func gt_254_int32(x int32) bool           { return x > 254 }
   1552 func ge_254_int32(x int32) bool           { return x >= 254 }
   1553 func eq_254_int32(x int32) bool           { return x == 254 }
   1554 func ne_254_int32(x int32) bool           { return x != 254 }
   1555 func lt_255_int32(x int32) bool           { return x < 255 }
   1556 func le_255_int32(x int32) bool           { return x <= 255 }
   1557 func gt_255_int32(x int32) bool           { return x > 255 }
   1558 func ge_255_int32(x int32) bool           { return x >= 255 }
   1559 func eq_255_int32(x int32) bool           { return x == 255 }
   1560 func ne_255_int32(x int32) bool           { return x != 255 }
   1561 func lt_256_int32(x int32) bool           { return x < 256 }
   1562 func le_256_int32(x int32) bool           { return x <= 256 }
   1563 func gt_256_int32(x int32) bool           { return x > 256 }
   1564 func ge_256_int32(x int32) bool           { return x >= 256 }
   1565 func eq_256_int32(x int32) bool           { return x == 256 }
   1566 func ne_256_int32(x int32) bool           { return x != 256 }
   1567 func lt_32766_int32(x int32) bool         { return x < 32766 }
   1568 func le_32766_int32(x int32) bool         { return x <= 32766 }
   1569 func gt_32766_int32(x int32) bool         { return x > 32766 }
   1570 func ge_32766_int32(x int32) bool         { return x >= 32766 }
   1571 func eq_32766_int32(x int32) bool         { return x == 32766 }
   1572 func ne_32766_int32(x int32) bool         { return x != 32766 }
   1573 func lt_32767_int32(x int32) bool         { return x < 32767 }
   1574 func le_32767_int32(x int32) bool         { return x <= 32767 }
   1575 func gt_32767_int32(x int32) bool         { return x > 32767 }
   1576 func ge_32767_int32(x int32) bool         { return x >= 32767 }
   1577 func eq_32767_int32(x int32) bool         { return x == 32767 }
   1578 func ne_32767_int32(x int32) bool         { return x != 32767 }
   1579 func lt_32768_int32(x int32) bool         { return x < 32768 }
   1580 func le_32768_int32(x int32) bool         { return x <= 32768 }
   1581 func gt_32768_int32(x int32) bool         { return x > 32768 }
   1582 func ge_32768_int32(x int32) bool         { return x >= 32768 }
   1583 func eq_32768_int32(x int32) bool         { return x == 32768 }
   1584 func ne_32768_int32(x int32) bool         { return x != 32768 }
   1585 func lt_65534_int32(x int32) bool         { return x < 65534 }
   1586 func le_65534_int32(x int32) bool         { return x <= 65534 }
   1587 func gt_65534_int32(x int32) bool         { return x > 65534 }
   1588 func ge_65534_int32(x int32) bool         { return x >= 65534 }
   1589 func eq_65534_int32(x int32) bool         { return x == 65534 }
   1590 func ne_65534_int32(x int32) bool         { return x != 65534 }
   1591 func lt_65535_int32(x int32) bool         { return x < 65535 }
   1592 func le_65535_int32(x int32) bool         { return x <= 65535 }
   1593 func gt_65535_int32(x int32) bool         { return x > 65535 }
   1594 func ge_65535_int32(x int32) bool         { return x >= 65535 }
   1595 func eq_65535_int32(x int32) bool         { return x == 65535 }
   1596 func ne_65535_int32(x int32) bool         { return x != 65535 }
   1597 func lt_65536_int32(x int32) bool         { return x < 65536 }
   1598 func le_65536_int32(x int32) bool         { return x <= 65536 }
   1599 func gt_65536_int32(x int32) bool         { return x > 65536 }
   1600 func ge_65536_int32(x int32) bool         { return x >= 65536 }
   1601 func eq_65536_int32(x int32) bool         { return x == 65536 }
   1602 func ne_65536_int32(x int32) bool         { return x != 65536 }
   1603 func lt_2147483646_int32(x int32) bool    { return x < 2147483646 }
   1604 func le_2147483646_int32(x int32) bool    { return x <= 2147483646 }
   1605 func gt_2147483646_int32(x int32) bool    { return x > 2147483646 }
   1606 func ge_2147483646_int32(x int32) bool    { return x >= 2147483646 }
   1607 func eq_2147483646_int32(x int32) bool    { return x == 2147483646 }
   1608 func ne_2147483646_int32(x int32) bool    { return x != 2147483646 }
   1609 func lt_2147483647_int32(x int32) bool    { return x < 2147483647 }
   1610 func le_2147483647_int32(x int32) bool    { return x <= 2147483647 }
   1611 func gt_2147483647_int32(x int32) bool    { return x > 2147483647 }
   1612 func ge_2147483647_int32(x int32) bool    { return x >= 2147483647 }
   1613 func eq_2147483647_int32(x int32) bool    { return x == 2147483647 }
   1614 func ne_2147483647_int32(x int32) bool    { return x != 2147483647 }
   1615 
   1616 var int32_tests = []struct {
   1617 	idx int    // index of the constant used
   1618 	exp result // expected results
   1619 	fn  func(int32) bool
   1620 }{
   1621 	{idx: 0, exp: lt, fn: lt_neg2147483648_int32},
   1622 	{idx: 0, exp: le, fn: le_neg2147483648_int32},
   1623 	{idx: 0, exp: gt, fn: gt_neg2147483648_int32},
   1624 	{idx: 0, exp: ge, fn: ge_neg2147483648_int32},
   1625 	{idx: 0, exp: eq, fn: eq_neg2147483648_int32},
   1626 	{idx: 0, exp: ne, fn: ne_neg2147483648_int32},
   1627 	{idx: 1, exp: lt, fn: lt_neg2147483647_int32},
   1628 	{idx: 1, exp: le, fn: le_neg2147483647_int32},
   1629 	{idx: 1, exp: gt, fn: gt_neg2147483647_int32},
   1630 	{idx: 1, exp: ge, fn: ge_neg2147483647_int32},
   1631 	{idx: 1, exp: eq, fn: eq_neg2147483647_int32},
   1632 	{idx: 1, exp: ne, fn: ne_neg2147483647_int32},
   1633 	{idx: 2, exp: lt, fn: lt_neg32769_int32},
   1634 	{idx: 2, exp: le, fn: le_neg32769_int32},
   1635 	{idx: 2, exp: gt, fn: gt_neg32769_int32},
   1636 	{idx: 2, exp: ge, fn: ge_neg32769_int32},
   1637 	{idx: 2, exp: eq, fn: eq_neg32769_int32},
   1638 	{idx: 2, exp: ne, fn: ne_neg32769_int32},
   1639 	{idx: 3, exp: lt, fn: lt_neg32768_int32},
   1640 	{idx: 3, exp: le, fn: le_neg32768_int32},
   1641 	{idx: 3, exp: gt, fn: gt_neg32768_int32},
   1642 	{idx: 3, exp: ge, fn: ge_neg32768_int32},
   1643 	{idx: 3, exp: eq, fn: eq_neg32768_int32},
   1644 	{idx: 3, exp: ne, fn: ne_neg32768_int32},
   1645 	{idx: 4, exp: lt, fn: lt_neg32767_int32},
   1646 	{idx: 4, exp: le, fn: le_neg32767_int32},
   1647 	{idx: 4, exp: gt, fn: gt_neg32767_int32},
   1648 	{idx: 4, exp: ge, fn: ge_neg32767_int32},
   1649 	{idx: 4, exp: eq, fn: eq_neg32767_int32},
   1650 	{idx: 4, exp: ne, fn: ne_neg32767_int32},
   1651 	{idx: 5, exp: lt, fn: lt_neg129_int32},
   1652 	{idx: 5, exp: le, fn: le_neg129_int32},
   1653 	{idx: 5, exp: gt, fn: gt_neg129_int32},
   1654 	{idx: 5, exp: ge, fn: ge_neg129_int32},
   1655 	{idx: 5, exp: eq, fn: eq_neg129_int32},
   1656 	{idx: 5, exp: ne, fn: ne_neg129_int32},
   1657 	{idx: 6, exp: lt, fn: lt_neg128_int32},
   1658 	{idx: 6, exp: le, fn: le_neg128_int32},
   1659 	{idx: 6, exp: gt, fn: gt_neg128_int32},
   1660 	{idx: 6, exp: ge, fn: ge_neg128_int32},
   1661 	{idx: 6, exp: eq, fn: eq_neg128_int32},
   1662 	{idx: 6, exp: ne, fn: ne_neg128_int32},
   1663 	{idx: 7, exp: lt, fn: lt_neg127_int32},
   1664 	{idx: 7, exp: le, fn: le_neg127_int32},
   1665 	{idx: 7, exp: gt, fn: gt_neg127_int32},
   1666 	{idx: 7, exp: ge, fn: ge_neg127_int32},
   1667 	{idx: 7, exp: eq, fn: eq_neg127_int32},
   1668 	{idx: 7, exp: ne, fn: ne_neg127_int32},
   1669 	{idx: 8, exp: lt, fn: lt_neg1_int32},
   1670 	{idx: 8, exp: le, fn: le_neg1_int32},
   1671 	{idx: 8, exp: gt, fn: gt_neg1_int32},
   1672 	{idx: 8, exp: ge, fn: ge_neg1_int32},
   1673 	{idx: 8, exp: eq, fn: eq_neg1_int32},
   1674 	{idx: 8, exp: ne, fn: ne_neg1_int32},
   1675 	{idx: 9, exp: lt, fn: lt_0_int32},
   1676 	{idx: 9, exp: le, fn: le_0_int32},
   1677 	{idx: 9, exp: gt, fn: gt_0_int32},
   1678 	{idx: 9, exp: ge, fn: ge_0_int32},
   1679 	{idx: 9, exp: eq, fn: eq_0_int32},
   1680 	{idx: 9, exp: ne, fn: ne_0_int32},
   1681 	{idx: 10, exp: lt, fn: lt_1_int32},
   1682 	{idx: 10, exp: le, fn: le_1_int32},
   1683 	{idx: 10, exp: gt, fn: gt_1_int32},
   1684 	{idx: 10, exp: ge, fn: ge_1_int32},
   1685 	{idx: 10, exp: eq, fn: eq_1_int32},
   1686 	{idx: 10, exp: ne, fn: ne_1_int32},
   1687 	{idx: 11, exp: lt, fn: lt_126_int32},
   1688 	{idx: 11, exp: le, fn: le_126_int32},
   1689 	{idx: 11, exp: gt, fn: gt_126_int32},
   1690 	{idx: 11, exp: ge, fn: ge_126_int32},
   1691 	{idx: 11, exp: eq, fn: eq_126_int32},
   1692 	{idx: 11, exp: ne, fn: ne_126_int32},
   1693 	{idx: 12, exp: lt, fn: lt_127_int32},
   1694 	{idx: 12, exp: le, fn: le_127_int32},
   1695 	{idx: 12, exp: gt, fn: gt_127_int32},
   1696 	{idx: 12, exp: ge, fn: ge_127_int32},
   1697 	{idx: 12, exp: eq, fn: eq_127_int32},
   1698 	{idx: 12, exp: ne, fn: ne_127_int32},
   1699 	{idx: 13, exp: lt, fn: lt_128_int32},
   1700 	{idx: 13, exp: le, fn: le_128_int32},
   1701 	{idx: 13, exp: gt, fn: gt_128_int32},
   1702 	{idx: 13, exp: ge, fn: ge_128_int32},
   1703 	{idx: 13, exp: eq, fn: eq_128_int32},
   1704 	{idx: 13, exp: ne, fn: ne_128_int32},
   1705 	{idx: 14, exp: lt, fn: lt_254_int32},
   1706 	{idx: 14, exp: le, fn: le_254_int32},
   1707 	{idx: 14, exp: gt, fn: gt_254_int32},
   1708 	{idx: 14, exp: ge, fn: ge_254_int32},
   1709 	{idx: 14, exp: eq, fn: eq_254_int32},
   1710 	{idx: 14, exp: ne, fn: ne_254_int32},
   1711 	{idx: 15, exp: lt, fn: lt_255_int32},
   1712 	{idx: 15, exp: le, fn: le_255_int32},
   1713 	{idx: 15, exp: gt, fn: gt_255_int32},
   1714 	{idx: 15, exp: ge, fn: ge_255_int32},
   1715 	{idx: 15, exp: eq, fn: eq_255_int32},
   1716 	{idx: 15, exp: ne, fn: ne_255_int32},
   1717 	{idx: 16, exp: lt, fn: lt_256_int32},
   1718 	{idx: 16, exp: le, fn: le_256_int32},
   1719 	{idx: 16, exp: gt, fn: gt_256_int32},
   1720 	{idx: 16, exp: ge, fn: ge_256_int32},
   1721 	{idx: 16, exp: eq, fn: eq_256_int32},
   1722 	{idx: 16, exp: ne, fn: ne_256_int32},
   1723 	{idx: 17, exp: lt, fn: lt_32766_int32},
   1724 	{idx: 17, exp: le, fn: le_32766_int32},
   1725 	{idx: 17, exp: gt, fn: gt_32766_int32},
   1726 	{idx: 17, exp: ge, fn: ge_32766_int32},
   1727 	{idx: 17, exp: eq, fn: eq_32766_int32},
   1728 	{idx: 17, exp: ne, fn: ne_32766_int32},
   1729 	{idx: 18, exp: lt, fn: lt_32767_int32},
   1730 	{idx: 18, exp: le, fn: le_32767_int32},
   1731 	{idx: 18, exp: gt, fn: gt_32767_int32},
   1732 	{idx: 18, exp: ge, fn: ge_32767_int32},
   1733 	{idx: 18, exp: eq, fn: eq_32767_int32},
   1734 	{idx: 18, exp: ne, fn: ne_32767_int32},
   1735 	{idx: 19, exp: lt, fn: lt_32768_int32},
   1736 	{idx: 19, exp: le, fn: le_32768_int32},
   1737 	{idx: 19, exp: gt, fn: gt_32768_int32},
   1738 	{idx: 19, exp: ge, fn: ge_32768_int32},
   1739 	{idx: 19, exp: eq, fn: eq_32768_int32},
   1740 	{idx: 19, exp: ne, fn: ne_32768_int32},
   1741 	{idx: 20, exp: lt, fn: lt_65534_int32},
   1742 	{idx: 20, exp: le, fn: le_65534_int32},
   1743 	{idx: 20, exp: gt, fn: gt_65534_int32},
   1744 	{idx: 20, exp: ge, fn: ge_65534_int32},
   1745 	{idx: 20, exp: eq, fn: eq_65534_int32},
   1746 	{idx: 20, exp: ne, fn: ne_65534_int32},
   1747 	{idx: 21, exp: lt, fn: lt_65535_int32},
   1748 	{idx: 21, exp: le, fn: le_65535_int32},
   1749 	{idx: 21, exp: gt, fn: gt_65535_int32},
   1750 	{idx: 21, exp: ge, fn: ge_65535_int32},
   1751 	{idx: 21, exp: eq, fn: eq_65535_int32},
   1752 	{idx: 21, exp: ne, fn: ne_65535_int32},
   1753 	{idx: 22, exp: lt, fn: lt_65536_int32},
   1754 	{idx: 22, exp: le, fn: le_65536_int32},
   1755 	{idx: 22, exp: gt, fn: gt_65536_int32},
   1756 	{idx: 22, exp: ge, fn: ge_65536_int32},
   1757 	{idx: 22, exp: eq, fn: eq_65536_int32},
   1758 	{idx: 22, exp: ne, fn: ne_65536_int32},
   1759 	{idx: 23, exp: lt, fn: lt_2147483646_int32},
   1760 	{idx: 23, exp: le, fn: le_2147483646_int32},
   1761 	{idx: 23, exp: gt, fn: gt_2147483646_int32},
   1762 	{idx: 23, exp: ge, fn: ge_2147483646_int32},
   1763 	{idx: 23, exp: eq, fn: eq_2147483646_int32},
   1764 	{idx: 23, exp: ne, fn: ne_2147483646_int32},
   1765 	{idx: 24, exp: lt, fn: lt_2147483647_int32},
   1766 	{idx: 24, exp: le, fn: le_2147483647_int32},
   1767 	{idx: 24, exp: gt, fn: gt_2147483647_int32},
   1768 	{idx: 24, exp: ge, fn: ge_2147483647_int32},
   1769 	{idx: 24, exp: eq, fn: eq_2147483647_int32},
   1770 	{idx: 24, exp: ne, fn: ne_2147483647_int32},
   1771 }
   1772 
   1773 // int16 tests
   1774 var int16_vals = []int16{
   1775 	-32768,
   1776 	-32767,
   1777 	-129,
   1778 	-128,
   1779 	-127,
   1780 	-1,
   1781 	0,
   1782 	1,
   1783 	126,
   1784 	127,
   1785 	128,
   1786 	254,
   1787 	255,
   1788 	256,
   1789 	32766,
   1790 	32767,
   1791 }
   1792 
   1793 func lt_neg32768_int16(x int16) bool { return x < -32768 }
   1794 func le_neg32768_int16(x int16) bool { return x <= -32768 }
   1795 func gt_neg32768_int16(x int16) bool { return x > -32768 }
   1796 func ge_neg32768_int16(x int16) bool { return x >= -32768 }
   1797 func eq_neg32768_int16(x int16) bool { return x == -32768 }
   1798 func ne_neg32768_int16(x int16) bool { return x != -32768 }
   1799 func lt_neg32767_int16(x int16) bool { return x < -32767 }
   1800 func le_neg32767_int16(x int16) bool { return x <= -32767 }
   1801 func gt_neg32767_int16(x int16) bool { return x > -32767 }
   1802 func ge_neg32767_int16(x int16) bool { return x >= -32767 }
   1803 func eq_neg32767_int16(x int16) bool { return x == -32767 }
   1804 func ne_neg32767_int16(x int16) bool { return x != -32767 }
   1805 func lt_neg129_int16(x int16) bool   { return x < -129 }
   1806 func le_neg129_int16(x int16) bool   { return x <= -129 }
   1807 func gt_neg129_int16(x int16) bool   { return x > -129 }
   1808 func ge_neg129_int16(x int16) bool   { return x >= -129 }
   1809 func eq_neg129_int16(x int16) bool   { return x == -129 }
   1810 func ne_neg129_int16(x int16) bool   { return x != -129 }
   1811 func lt_neg128_int16(x int16) bool   { return x < -128 }
   1812 func le_neg128_int16(x int16) bool   { return x <= -128 }
   1813 func gt_neg128_int16(x int16) bool   { return x > -128 }
   1814 func ge_neg128_int16(x int16) bool   { return x >= -128 }
   1815 func eq_neg128_int16(x int16) bool   { return x == -128 }
   1816 func ne_neg128_int16(x int16) bool   { return x != -128 }
   1817 func lt_neg127_int16(x int16) bool   { return x < -127 }
   1818 func le_neg127_int16(x int16) bool   { return x <= -127 }
   1819 func gt_neg127_int16(x int16) bool   { return x > -127 }
   1820 func ge_neg127_int16(x int16) bool   { return x >= -127 }
   1821 func eq_neg127_int16(x int16) bool   { return x == -127 }
   1822 func ne_neg127_int16(x int16) bool   { return x != -127 }
   1823 func lt_neg1_int16(x int16) bool     { return x < -1 }
   1824 func le_neg1_int16(x int16) bool     { return x <= -1 }
   1825 func gt_neg1_int16(x int16) bool     { return x > -1 }
   1826 func ge_neg1_int16(x int16) bool     { return x >= -1 }
   1827 func eq_neg1_int16(x int16) bool     { return x == -1 }
   1828 func ne_neg1_int16(x int16) bool     { return x != -1 }
   1829 func lt_0_int16(x int16) bool        { return x < 0 }
   1830 func le_0_int16(x int16) bool        { return x <= 0 }
   1831 func gt_0_int16(x int16) bool        { return x > 0 }
   1832 func ge_0_int16(x int16) bool        { return x >= 0 }
   1833 func eq_0_int16(x int16) bool        { return x == 0 }
   1834 func ne_0_int16(x int16) bool        { return x != 0 }
   1835 func lt_1_int16(x int16) bool        { return x < 1 }
   1836 func le_1_int16(x int16) bool        { return x <= 1 }
   1837 func gt_1_int16(x int16) bool        { return x > 1 }
   1838 func ge_1_int16(x int16) bool        { return x >= 1 }
   1839 func eq_1_int16(x int16) bool        { return x == 1 }
   1840 func ne_1_int16(x int16) bool        { return x != 1 }
   1841 func lt_126_int16(x int16) bool      { return x < 126 }
   1842 func le_126_int16(x int16) bool      { return x <= 126 }
   1843 func gt_126_int16(x int16) bool      { return x > 126 }
   1844 func ge_126_int16(x int16) bool      { return x >= 126 }
   1845 func eq_126_int16(x int16) bool      { return x == 126 }
   1846 func ne_126_int16(x int16) bool      { return x != 126 }
   1847 func lt_127_int16(x int16) bool      { return x < 127 }
   1848 func le_127_int16(x int16) bool      { return x <= 127 }
   1849 func gt_127_int16(x int16) bool      { return x > 127 }
   1850 func ge_127_int16(x int16) bool      { return x >= 127 }
   1851 func eq_127_int16(x int16) bool      { return x == 127 }
   1852 func ne_127_int16(x int16) bool      { return x != 127 }
   1853 func lt_128_int16(x int16) bool      { return x < 128 }
   1854 func le_128_int16(x int16) bool      { return x <= 128 }
   1855 func gt_128_int16(x int16) bool      { return x > 128 }
   1856 func ge_128_int16(x int16) bool      { return x >= 128 }
   1857 func eq_128_int16(x int16) bool      { return x == 128 }
   1858 func ne_128_int16(x int16) bool      { return x != 128 }
   1859 func lt_254_int16(x int16) bool      { return x < 254 }
   1860 func le_254_int16(x int16) bool      { return x <= 254 }
   1861 func gt_254_int16(x int16) bool      { return x > 254 }
   1862 func ge_254_int16(x int16) bool      { return x >= 254 }
   1863 func eq_254_int16(x int16) bool      { return x == 254 }
   1864 func ne_254_int16(x int16) bool      { return x != 254 }
   1865 func lt_255_int16(x int16) bool      { return x < 255 }
   1866 func le_255_int16(x int16) bool      { return x <= 255 }
   1867 func gt_255_int16(x int16) bool      { return x > 255 }
   1868 func ge_255_int16(x int16) bool      { return x >= 255 }
   1869 func eq_255_int16(x int16) bool      { return x == 255 }
   1870 func ne_255_int16(x int16) bool      { return x != 255 }
   1871 func lt_256_int16(x int16) bool      { return x < 256 }
   1872 func le_256_int16(x int16) bool      { return x <= 256 }
   1873 func gt_256_int16(x int16) bool      { return x > 256 }
   1874 func ge_256_int16(x int16) bool      { return x >= 256 }
   1875 func eq_256_int16(x int16) bool      { return x == 256 }
   1876 func ne_256_int16(x int16) bool      { return x != 256 }
   1877 func lt_32766_int16(x int16) bool    { return x < 32766 }
   1878 func le_32766_int16(x int16) bool    { return x <= 32766 }
   1879 func gt_32766_int16(x int16) bool    { return x > 32766 }
   1880 func ge_32766_int16(x int16) bool    { return x >= 32766 }
   1881 func eq_32766_int16(x int16) bool    { return x == 32766 }
   1882 func ne_32766_int16(x int16) bool    { return x != 32766 }
   1883 func lt_32767_int16(x int16) bool    { return x < 32767 }
   1884 func le_32767_int16(x int16) bool    { return x <= 32767 }
   1885 func gt_32767_int16(x int16) bool    { return x > 32767 }
   1886 func ge_32767_int16(x int16) bool    { return x >= 32767 }
   1887 func eq_32767_int16(x int16) bool    { return x == 32767 }
   1888 func ne_32767_int16(x int16) bool    { return x != 32767 }
   1889 
   1890 var int16_tests = []struct {
   1891 	idx int    // index of the constant used
   1892 	exp result // expected results
   1893 	fn  func(int16) bool
   1894 }{
   1895 	{idx: 0, exp: lt, fn: lt_neg32768_int16},
   1896 	{idx: 0, exp: le, fn: le_neg32768_int16},
   1897 	{idx: 0, exp: gt, fn: gt_neg32768_int16},
   1898 	{idx: 0, exp: ge, fn: ge_neg32768_int16},
   1899 	{idx: 0, exp: eq, fn: eq_neg32768_int16},
   1900 	{idx: 0, exp: ne, fn: ne_neg32768_int16},
   1901 	{idx: 1, exp: lt, fn: lt_neg32767_int16},
   1902 	{idx: 1, exp: le, fn: le_neg32767_int16},
   1903 	{idx: 1, exp: gt, fn: gt_neg32767_int16},
   1904 	{idx: 1, exp: ge, fn: ge_neg32767_int16},
   1905 	{idx: 1, exp: eq, fn: eq_neg32767_int16},
   1906 	{idx: 1, exp: ne, fn: ne_neg32767_int16},
   1907 	{idx: 2, exp: lt, fn: lt_neg129_int16},
   1908 	{idx: 2, exp: le, fn: le_neg129_int16},
   1909 	{idx: 2, exp: gt, fn: gt_neg129_int16},
   1910 	{idx: 2, exp: ge, fn: ge_neg129_int16},
   1911 	{idx: 2, exp: eq, fn: eq_neg129_int16},
   1912 	{idx: 2, exp: ne, fn: ne_neg129_int16},
   1913 	{idx: 3, exp: lt, fn: lt_neg128_int16},
   1914 	{idx: 3, exp: le, fn: le_neg128_int16},
   1915 	{idx: 3, exp: gt, fn: gt_neg128_int16},
   1916 	{idx: 3, exp: ge, fn: ge_neg128_int16},
   1917 	{idx: 3, exp: eq, fn: eq_neg128_int16},
   1918 	{idx: 3, exp: ne, fn: ne_neg128_int16},
   1919 	{idx: 4, exp: lt, fn: lt_neg127_int16},
   1920 	{idx: 4, exp: le, fn: le_neg127_int16},
   1921 	{idx: 4, exp: gt, fn: gt_neg127_int16},
   1922 	{idx: 4, exp: ge, fn: ge_neg127_int16},
   1923 	{idx: 4, exp: eq, fn: eq_neg127_int16},
   1924 	{idx: 4, exp: ne, fn: ne_neg127_int16},
   1925 	{idx: 5, exp: lt, fn: lt_neg1_int16},
   1926 	{idx: 5, exp: le, fn: le_neg1_int16},
   1927 	{idx: 5, exp: gt, fn: gt_neg1_int16},
   1928 	{idx: 5, exp: ge, fn: ge_neg1_int16},
   1929 	{idx: 5, exp: eq, fn: eq_neg1_int16},
   1930 	{idx: 5, exp: ne, fn: ne_neg1_int16},
   1931 	{idx: 6, exp: lt, fn: lt_0_int16},
   1932 	{idx: 6, exp: le, fn: le_0_int16},
   1933 	{idx: 6, exp: gt, fn: gt_0_int16},
   1934 	{idx: 6, exp: ge, fn: ge_0_int16},
   1935 	{idx: 6, exp: eq, fn: eq_0_int16},
   1936 	{idx: 6, exp: ne, fn: ne_0_int16},
   1937 	{idx: 7, exp: lt, fn: lt_1_int16},
   1938 	{idx: 7, exp: le, fn: le_1_int16},
   1939 	{idx: 7, exp: gt, fn: gt_1_int16},
   1940 	{idx: 7, exp: ge, fn: ge_1_int16},
   1941 	{idx: 7, exp: eq, fn: eq_1_int16},
   1942 	{idx: 7, exp: ne, fn: ne_1_int16},
   1943 	{idx: 8, exp: lt, fn: lt_126_int16},
   1944 	{idx: 8, exp: le, fn: le_126_int16},
   1945 	{idx: 8, exp: gt, fn: gt_126_int16},
   1946 	{idx: 8, exp: ge, fn: ge_126_int16},
   1947 	{idx: 8, exp: eq, fn: eq_126_int16},
   1948 	{idx: 8, exp: ne, fn: ne_126_int16},
   1949 	{idx: 9, exp: lt, fn: lt_127_int16},
   1950 	{idx: 9, exp: le, fn: le_127_int16},
   1951 	{idx: 9, exp: gt, fn: gt_127_int16},
   1952 	{idx: 9, exp: ge, fn: ge_127_int16},
   1953 	{idx: 9, exp: eq, fn: eq_127_int16},
   1954 	{idx: 9, exp: ne, fn: ne_127_int16},
   1955 	{idx: 10, exp: lt, fn: lt_128_int16},
   1956 	{idx: 10, exp: le, fn: le_128_int16},
   1957 	{idx: 10, exp: gt, fn: gt_128_int16},
   1958 	{idx: 10, exp: ge, fn: ge_128_int16},
   1959 	{idx: 10, exp: eq, fn: eq_128_int16},
   1960 	{idx: 10, exp: ne, fn: ne_128_int16},
   1961 	{idx: 11, exp: lt, fn: lt_254_int16},
   1962 	{idx: 11, exp: le, fn: le_254_int16},
   1963 	{idx: 11, exp: gt, fn: gt_254_int16},
   1964 	{idx: 11, exp: ge, fn: ge_254_int16},
   1965 	{idx: 11, exp: eq, fn: eq_254_int16},
   1966 	{idx: 11, exp: ne, fn: ne_254_int16},
   1967 	{idx: 12, exp: lt, fn: lt_255_int16},
   1968 	{idx: 12, exp: le, fn: le_255_int16},
   1969 	{idx: 12, exp: gt, fn: gt_255_int16},
   1970 	{idx: 12, exp: ge, fn: ge_255_int16},
   1971 	{idx: 12, exp: eq, fn: eq_255_int16},
   1972 	{idx: 12, exp: ne, fn: ne_255_int16},
   1973 	{idx: 13, exp: lt, fn: lt_256_int16},
   1974 	{idx: 13, exp: le, fn: le_256_int16},
   1975 	{idx: 13, exp: gt, fn: gt_256_int16},
   1976 	{idx: 13, exp: ge, fn: ge_256_int16},
   1977 	{idx: 13, exp: eq, fn: eq_256_int16},
   1978 	{idx: 13, exp: ne, fn: ne_256_int16},
   1979 	{idx: 14, exp: lt, fn: lt_32766_int16},
   1980 	{idx: 14, exp: le, fn: le_32766_int16},
   1981 	{idx: 14, exp: gt, fn: gt_32766_int16},
   1982 	{idx: 14, exp: ge, fn: ge_32766_int16},
   1983 	{idx: 14, exp: eq, fn: eq_32766_int16},
   1984 	{idx: 14, exp: ne, fn: ne_32766_int16},
   1985 	{idx: 15, exp: lt, fn: lt_32767_int16},
   1986 	{idx: 15, exp: le, fn: le_32767_int16},
   1987 	{idx: 15, exp: gt, fn: gt_32767_int16},
   1988 	{idx: 15, exp: ge, fn: ge_32767_int16},
   1989 	{idx: 15, exp: eq, fn: eq_32767_int16},
   1990 	{idx: 15, exp: ne, fn: ne_32767_int16},
   1991 }
   1992 
   1993 // int8 tests
   1994 var int8_vals = []int8{
   1995 	-128,
   1996 	-127,
   1997 	-1,
   1998 	0,
   1999 	1,
   2000 	126,
   2001 	127,
   2002 }
   2003 
   2004 func lt_neg128_int8(x int8) bool { return x < -128 }
   2005 func le_neg128_int8(x int8) bool { return x <= -128 }
   2006 func gt_neg128_int8(x int8) bool { return x > -128 }
   2007 func ge_neg128_int8(x int8) bool { return x >= -128 }
   2008 func eq_neg128_int8(x int8) bool { return x == -128 }
   2009 func ne_neg128_int8(x int8) bool { return x != -128 }
   2010 func lt_neg127_int8(x int8) bool { return x < -127 }
   2011 func le_neg127_int8(x int8) bool { return x <= -127 }
   2012 func gt_neg127_int8(x int8) bool { return x > -127 }
   2013 func ge_neg127_int8(x int8) bool { return x >= -127 }
   2014 func eq_neg127_int8(x int8) bool { return x == -127 }
   2015 func ne_neg127_int8(x int8) bool { return x != -127 }
   2016 func lt_neg1_int8(x int8) bool   { return x < -1 }
   2017 func le_neg1_int8(x int8) bool   { return x <= -1 }
   2018 func gt_neg1_int8(x int8) bool   { return x > -1 }
   2019 func ge_neg1_int8(x int8) bool   { return x >= -1 }
   2020 func eq_neg1_int8(x int8) bool   { return x == -1 }
   2021 func ne_neg1_int8(x int8) bool   { return x != -1 }
   2022 func lt_0_int8(x int8) bool      { return x < 0 }
   2023 func le_0_int8(x int8) bool      { return x <= 0 }
   2024 func gt_0_int8(x int8) bool      { return x > 0 }
   2025 func ge_0_int8(x int8) bool      { return x >= 0 }
   2026 func eq_0_int8(x int8) bool      { return x == 0 }
   2027 func ne_0_int8(x int8) bool      { return x != 0 }
   2028 func lt_1_int8(x int8) bool      { return x < 1 }
   2029 func le_1_int8(x int8) bool      { return x <= 1 }
   2030 func gt_1_int8(x int8) bool      { return x > 1 }
   2031 func ge_1_int8(x int8) bool      { return x >= 1 }
   2032 func eq_1_int8(x int8) bool      { return x == 1 }
   2033 func ne_1_int8(x int8) bool      { return x != 1 }
   2034 func lt_126_int8(x int8) bool    { return x < 126 }
   2035 func le_126_int8(x int8) bool    { return x <= 126 }
   2036 func gt_126_int8(x int8) bool    { return x > 126 }
   2037 func ge_126_int8(x int8) bool    { return x >= 126 }
   2038 func eq_126_int8(x int8) bool    { return x == 126 }
   2039 func ne_126_int8(x int8) bool    { return x != 126 }
   2040 func lt_127_int8(x int8) bool    { return x < 127 }
   2041 func le_127_int8(x int8) bool    { return x <= 127 }
   2042 func gt_127_int8(x int8) bool    { return x > 127 }
   2043 func ge_127_int8(x int8) bool    { return x >= 127 }
   2044 func eq_127_int8(x int8) bool    { return x == 127 }
   2045 func ne_127_int8(x int8) bool    { return x != 127 }
   2046 
   2047 var int8_tests = []struct {
   2048 	idx int    // index of the constant used
   2049 	exp result // expected results
   2050 	fn  func(int8) bool
   2051 }{
   2052 	{idx: 0, exp: lt, fn: lt_neg128_int8},
   2053 	{idx: 0, exp: le, fn: le_neg128_int8},
   2054 	{idx: 0, exp: gt, fn: gt_neg128_int8},
   2055 	{idx: 0, exp: ge, fn: ge_neg128_int8},
   2056 	{idx: 0, exp: eq, fn: eq_neg128_int8},
   2057 	{idx: 0, exp: ne, fn: ne_neg128_int8},
   2058 	{idx: 1, exp: lt, fn: lt_neg127_int8},
   2059 	{idx: 1, exp: le, fn: le_neg127_int8},
   2060 	{idx: 1, exp: gt, fn: gt_neg127_int8},
   2061 	{idx: 1, exp: ge, fn: ge_neg127_int8},
   2062 	{idx: 1, exp: eq, fn: eq_neg127_int8},
   2063 	{idx: 1, exp: ne, fn: ne_neg127_int8},
   2064 	{idx: 2, exp: lt, fn: lt_neg1_int8},
   2065 	{idx: 2, exp: le, fn: le_neg1_int8},
   2066 	{idx: 2, exp: gt, fn: gt_neg1_int8},
   2067 	{idx: 2, exp: ge, fn: ge_neg1_int8},
   2068 	{idx: 2, exp: eq, fn: eq_neg1_int8},
   2069 	{idx: 2, exp: ne, fn: ne_neg1_int8},
   2070 	{idx: 3, exp: lt, fn: lt_0_int8},
   2071 	{idx: 3, exp: le, fn: le_0_int8},
   2072 	{idx: 3, exp: gt, fn: gt_0_int8},
   2073 	{idx: 3, exp: ge, fn: ge_0_int8},
   2074 	{idx: 3, exp: eq, fn: eq_0_int8},
   2075 	{idx: 3, exp: ne, fn: ne_0_int8},
   2076 	{idx: 4, exp: lt, fn: lt_1_int8},
   2077 	{idx: 4, exp: le, fn: le_1_int8},
   2078 	{idx: 4, exp: gt, fn: gt_1_int8},
   2079 	{idx: 4, exp: ge, fn: ge_1_int8},
   2080 	{idx: 4, exp: eq, fn: eq_1_int8},
   2081 	{idx: 4, exp: ne, fn: ne_1_int8},
   2082 	{idx: 5, exp: lt, fn: lt_126_int8},
   2083 	{idx: 5, exp: le, fn: le_126_int8},
   2084 	{idx: 5, exp: gt, fn: gt_126_int8},
   2085 	{idx: 5, exp: ge, fn: ge_126_int8},
   2086 	{idx: 5, exp: eq, fn: eq_126_int8},
   2087 	{idx: 5, exp: ne, fn: ne_126_int8},
   2088 	{idx: 6, exp: lt, fn: lt_127_int8},
   2089 	{idx: 6, exp: le, fn: le_127_int8},
   2090 	{idx: 6, exp: gt, fn: gt_127_int8},
   2091 	{idx: 6, exp: ge, fn: ge_127_int8},
   2092 	{idx: 6, exp: eq, fn: eq_127_int8},
   2093 	{idx: 6, exp: ne, fn: ne_127_int8},
   2094 }
   2095 
   2096 func main() {
   2097 	for i, test := range uint64_tests {
   2098 		for j, x := range uint64_vals {
   2099 			want := test.exp.l
   2100 			if j == test.idx {
   2101 				want = test.exp.e
   2102 			} else if j > test.idx {
   2103 				want = test.exp.r
   2104 			}
   2105 			if test.fn(x) != want {
   2106 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2107 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=uint64 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2108 				panic(msg)
   2109 			}
   2110 		}
   2111 	}
   2112 	for i, test := range uint32_tests {
   2113 		for j, x := range uint32_vals {
   2114 			want := test.exp.l
   2115 			if j == test.idx {
   2116 				want = test.exp.e
   2117 			} else if j > test.idx {
   2118 				want = test.exp.r
   2119 			}
   2120 			if test.fn(x) != want {
   2121 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2122 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=uint32 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2123 				panic(msg)
   2124 			}
   2125 		}
   2126 	}
   2127 	for i, test := range uint16_tests {
   2128 		for j, x := range uint16_vals {
   2129 			want := test.exp.l
   2130 			if j == test.idx {
   2131 				want = test.exp.e
   2132 			} else if j > test.idx {
   2133 				want = test.exp.r
   2134 			}
   2135 			if test.fn(x) != want {
   2136 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2137 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=uint16 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2138 				panic(msg)
   2139 			}
   2140 		}
   2141 	}
   2142 	for i, test := range uint8_tests {
   2143 		for j, x := range uint8_vals {
   2144 			want := test.exp.l
   2145 			if j == test.idx {
   2146 				want = test.exp.e
   2147 			} else if j > test.idx {
   2148 				want = test.exp.r
   2149 			}
   2150 			if test.fn(x) != want {
   2151 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2152 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=uint8 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2153 				panic(msg)
   2154 			}
   2155 		}
   2156 	}
   2157 	for i, test := range int64_tests {
   2158 		for j, x := range int64_vals {
   2159 			want := test.exp.l
   2160 			if j == test.idx {
   2161 				want = test.exp.e
   2162 			} else if j > test.idx {
   2163 				want = test.exp.r
   2164 			}
   2165 			if test.fn(x) != want {
   2166 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2167 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=int64 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2168 				panic(msg)
   2169 			}
   2170 		}
   2171 	}
   2172 	for i, test := range int32_tests {
   2173 		for j, x := range int32_vals {
   2174 			want := test.exp.l
   2175 			if j == test.idx {
   2176 				want = test.exp.e
   2177 			} else if j > test.idx {
   2178 				want = test.exp.r
   2179 			}
   2180 			if test.fn(x) != want {
   2181 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2182 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=int32 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2183 				panic(msg)
   2184 			}
   2185 		}
   2186 	}
   2187 	for i, test := range int16_tests {
   2188 		for j, x := range int16_vals {
   2189 			want := test.exp.l
   2190 			if j == test.idx {
   2191 				want = test.exp.e
   2192 			} else if j > test.idx {
   2193 				want = test.exp.r
   2194 			}
   2195 			if test.fn(x) != want {
   2196 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2197 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=int16 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2198 				panic(msg)
   2199 			}
   2200 		}
   2201 	}
   2202 	for i, test := range int8_tests {
   2203 		for j, x := range int8_vals {
   2204 			want := test.exp.l
   2205 			if j == test.idx {
   2206 				want = test.exp.e
   2207 			} else if j > test.idx {
   2208 				want = test.exp.r
   2209 			}
   2210 			if test.fn(x) != want {
   2211 				fn := runtime.FuncForPC(reflect.ValueOf(test.fn).Pointer()).Name()
   2212 				msg := fmt.Sprintf("test failed: %v(%v) != %v [type=int8 i=%v j=%v idx=%v]", fn, x, want, i, j, test.idx)
   2213 				panic(msg)
   2214 			}
   2215 		}
   2216 	}
   2217 }
   2218