github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/compile/test/testdata/cmpConst_test.go (about)

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