github.com/goproxy0/go@v0.0.0-20171111080102-49cc0c489d2c/src/cmd/compile/internal/gc/testdata/cmpConst.go (about)

     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  }