Home | History | Annotate | Download | only in gc
      1 package gc
      2 
      3 import "testing"
      4 
      5 func TestConstFolduint64add(t *testing.T) {
      6 	var x, y, r uint64
      7 	x = 0
      8 	y = 0
      9 	r = x + y
     10 	if r != 0 {
     11 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
     12 	}
     13 	y = 1
     14 	r = x + y
     15 	if r != 1 {
     16 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
     17 	}
     18 	y = 4294967296
     19 	r = x + y
     20 	if r != 4294967296 {
     21 		t.Errorf("0 %s 4294967296 = %d, want 4294967296", "+", r)
     22 	}
     23 	y = 18446744073709551615
     24 	r = x + y
     25 	if r != 18446744073709551615 {
     26 		t.Errorf("0 %s 18446744073709551615 = %d, want 18446744073709551615", "+", r)
     27 	}
     28 	x = 1
     29 	y = 0
     30 	r = x + y
     31 	if r != 1 {
     32 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
     33 	}
     34 	y = 1
     35 	r = x + y
     36 	if r != 2 {
     37 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
     38 	}
     39 	y = 4294967296
     40 	r = x + y
     41 	if r != 4294967297 {
     42 		t.Errorf("1 %s 4294967296 = %d, want 4294967297", "+", r)
     43 	}
     44 	y = 18446744073709551615
     45 	r = x + y
     46 	if r != 0 {
     47 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "+", r)
     48 	}
     49 	x = 4294967296
     50 	y = 0
     51 	r = x + y
     52 	if r != 4294967296 {
     53 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "+", r)
     54 	}
     55 	y = 1
     56 	r = x + y
     57 	if r != 4294967297 {
     58 		t.Errorf("4294967296 %s 1 = %d, want 4294967297", "+", r)
     59 	}
     60 	y = 4294967296
     61 	r = x + y
     62 	if r != 8589934592 {
     63 		t.Errorf("4294967296 %s 4294967296 = %d, want 8589934592", "+", r)
     64 	}
     65 	y = 18446744073709551615
     66 	r = x + y
     67 	if r != 4294967295 {
     68 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967295", "+", r)
     69 	}
     70 	x = 18446744073709551615
     71 	y = 0
     72 	r = x + y
     73 	if r != 18446744073709551615 {
     74 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "+", r)
     75 	}
     76 	y = 1
     77 	r = x + y
     78 	if r != 0 {
     79 		t.Errorf("18446744073709551615 %s 1 = %d, want 0", "+", r)
     80 	}
     81 	y = 4294967296
     82 	r = x + y
     83 	if r != 4294967295 {
     84 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "+", r)
     85 	}
     86 	y = 18446744073709551615
     87 	r = x + y
     88 	if r != 18446744073709551614 {
     89 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 18446744073709551614", "+", r)
     90 	}
     91 }
     92 func TestConstFolduint64sub(t *testing.T) {
     93 	var x, y, r uint64
     94 	x = 0
     95 	y = 0
     96 	r = x - y
     97 	if r != 0 {
     98 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
     99 	}
    100 	y = 1
    101 	r = x - y
    102 	if r != 18446744073709551615 {
    103 		t.Errorf("0 %s 1 = %d, want 18446744073709551615", "-", r)
    104 	}
    105 	y = 4294967296
    106 	r = x - y
    107 	if r != 18446744069414584320 {
    108 		t.Errorf("0 %s 4294967296 = %d, want 18446744069414584320", "-", r)
    109 	}
    110 	y = 18446744073709551615
    111 	r = x - y
    112 	if r != 1 {
    113 		t.Errorf("0 %s 18446744073709551615 = %d, want 1", "-", r)
    114 	}
    115 	x = 1
    116 	y = 0
    117 	r = x - y
    118 	if r != 1 {
    119 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
    120 	}
    121 	y = 1
    122 	r = x - y
    123 	if r != 0 {
    124 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
    125 	}
    126 	y = 4294967296
    127 	r = x - y
    128 	if r != 18446744069414584321 {
    129 		t.Errorf("1 %s 4294967296 = %d, want 18446744069414584321", "-", r)
    130 	}
    131 	y = 18446744073709551615
    132 	r = x - y
    133 	if r != 2 {
    134 		t.Errorf("1 %s 18446744073709551615 = %d, want 2", "-", r)
    135 	}
    136 	x = 4294967296
    137 	y = 0
    138 	r = x - y
    139 	if r != 4294967296 {
    140 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "-", r)
    141 	}
    142 	y = 1
    143 	r = x - y
    144 	if r != 4294967295 {
    145 		t.Errorf("4294967296 %s 1 = %d, want 4294967295", "-", r)
    146 	}
    147 	y = 4294967296
    148 	r = x - y
    149 	if r != 0 {
    150 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "-", r)
    151 	}
    152 	y = 18446744073709551615
    153 	r = x - y
    154 	if r != 4294967297 {
    155 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967297", "-", r)
    156 	}
    157 	x = 18446744073709551615
    158 	y = 0
    159 	r = x - y
    160 	if r != 18446744073709551615 {
    161 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "-", r)
    162 	}
    163 	y = 1
    164 	r = x - y
    165 	if r != 18446744073709551614 {
    166 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "-", r)
    167 	}
    168 	y = 4294967296
    169 	r = x - y
    170 	if r != 18446744069414584319 {
    171 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 18446744069414584319", "-", r)
    172 	}
    173 	y = 18446744073709551615
    174 	r = x - y
    175 	if r != 0 {
    176 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "-", r)
    177 	}
    178 }
    179 func TestConstFolduint64div(t *testing.T) {
    180 	var x, y, r uint64
    181 	x = 0
    182 	y = 1
    183 	r = x / y
    184 	if r != 0 {
    185 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
    186 	}
    187 	y = 4294967296
    188 	r = x / y
    189 	if r != 0 {
    190 		t.Errorf("0 %s 4294967296 = %d, want 0", "/", r)
    191 	}
    192 	y = 18446744073709551615
    193 	r = x / y
    194 	if r != 0 {
    195 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "/", r)
    196 	}
    197 	x = 1
    198 	y = 1
    199 	r = x / y
    200 	if r != 1 {
    201 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
    202 	}
    203 	y = 4294967296
    204 	r = x / y
    205 	if r != 0 {
    206 		t.Errorf("1 %s 4294967296 = %d, want 0", "/", r)
    207 	}
    208 	y = 18446744073709551615
    209 	r = x / y
    210 	if r != 0 {
    211 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "/", r)
    212 	}
    213 	x = 4294967296
    214 	y = 1
    215 	r = x / y
    216 	if r != 4294967296 {
    217 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "/", r)
    218 	}
    219 	y = 4294967296
    220 	r = x / y
    221 	if r != 1 {
    222 		t.Errorf("4294967296 %s 4294967296 = %d, want 1", "/", r)
    223 	}
    224 	y = 18446744073709551615
    225 	r = x / y
    226 	if r != 0 {
    227 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "/", r)
    228 	}
    229 	x = 18446744073709551615
    230 	y = 1
    231 	r = x / y
    232 	if r != 18446744073709551615 {
    233 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551615", "/", r)
    234 	}
    235 	y = 4294967296
    236 	r = x / y
    237 	if r != 4294967295 {
    238 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "/", r)
    239 	}
    240 	y = 18446744073709551615
    241 	r = x / y
    242 	if r != 1 {
    243 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 1", "/", r)
    244 	}
    245 }
    246 func TestConstFolduint64mul(t *testing.T) {
    247 	var x, y, r uint64
    248 	x = 0
    249 	y = 0
    250 	r = x * y
    251 	if r != 0 {
    252 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
    253 	}
    254 	y = 1
    255 	r = x * y
    256 	if r != 0 {
    257 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
    258 	}
    259 	y = 4294967296
    260 	r = x * y
    261 	if r != 0 {
    262 		t.Errorf("0 %s 4294967296 = %d, want 0", "*", r)
    263 	}
    264 	y = 18446744073709551615
    265 	r = x * y
    266 	if r != 0 {
    267 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "*", r)
    268 	}
    269 	x = 1
    270 	y = 0
    271 	r = x * y
    272 	if r != 0 {
    273 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
    274 	}
    275 	y = 1
    276 	r = x * y
    277 	if r != 1 {
    278 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
    279 	}
    280 	y = 4294967296
    281 	r = x * y
    282 	if r != 4294967296 {
    283 		t.Errorf("1 %s 4294967296 = %d, want 4294967296", "*", r)
    284 	}
    285 	y = 18446744073709551615
    286 	r = x * y
    287 	if r != 18446744073709551615 {
    288 		t.Errorf("1 %s 18446744073709551615 = %d, want 18446744073709551615", "*", r)
    289 	}
    290 	x = 4294967296
    291 	y = 0
    292 	r = x * y
    293 	if r != 0 {
    294 		t.Errorf("4294967296 %s 0 = %d, want 0", "*", r)
    295 	}
    296 	y = 1
    297 	r = x * y
    298 	if r != 4294967296 {
    299 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "*", r)
    300 	}
    301 	y = 4294967296
    302 	r = x * y
    303 	if r != 0 {
    304 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "*", r)
    305 	}
    306 	y = 18446744073709551615
    307 	r = x * y
    308 	if r != 18446744069414584320 {
    309 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 18446744069414584320", "*", r)
    310 	}
    311 	x = 18446744073709551615
    312 	y = 0
    313 	r = x * y
    314 	if r != 0 {
    315 		t.Errorf("18446744073709551615 %s 0 = %d, want 0", "*", r)
    316 	}
    317 	y = 1
    318 	r = x * y
    319 	if r != 18446744073709551615 {
    320 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551615", "*", r)
    321 	}
    322 	y = 4294967296
    323 	r = x * y
    324 	if r != 18446744069414584320 {
    325 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 18446744069414584320", "*", r)
    326 	}
    327 	y = 18446744073709551615
    328 	r = x * y
    329 	if r != 1 {
    330 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 1", "*", r)
    331 	}
    332 }
    333 func TestConstFolduint64mod(t *testing.T) {
    334 	var x, y, r uint64
    335 	x = 0
    336 	y = 1
    337 	r = x % y
    338 	if r != 0 {
    339 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
    340 	}
    341 	y = 4294967296
    342 	r = x % y
    343 	if r != 0 {
    344 		t.Errorf("0 %s 4294967296 = %d, want 0", "%", r)
    345 	}
    346 	y = 18446744073709551615
    347 	r = x % y
    348 	if r != 0 {
    349 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "%", r)
    350 	}
    351 	x = 1
    352 	y = 1
    353 	r = x % y
    354 	if r != 0 {
    355 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
    356 	}
    357 	y = 4294967296
    358 	r = x % y
    359 	if r != 1 {
    360 		t.Errorf("1 %s 4294967296 = %d, want 1", "%", r)
    361 	}
    362 	y = 18446744073709551615
    363 	r = x % y
    364 	if r != 1 {
    365 		t.Errorf("1 %s 18446744073709551615 = %d, want 1", "%", r)
    366 	}
    367 	x = 4294967296
    368 	y = 1
    369 	r = x % y
    370 	if r != 0 {
    371 		t.Errorf("4294967296 %s 1 = %d, want 0", "%", r)
    372 	}
    373 	y = 4294967296
    374 	r = x % y
    375 	if r != 0 {
    376 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "%", r)
    377 	}
    378 	y = 18446744073709551615
    379 	r = x % y
    380 	if r != 4294967296 {
    381 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967296", "%", r)
    382 	}
    383 	x = 18446744073709551615
    384 	y = 1
    385 	r = x % y
    386 	if r != 0 {
    387 		t.Errorf("18446744073709551615 %s 1 = %d, want 0", "%", r)
    388 	}
    389 	y = 4294967296
    390 	r = x % y
    391 	if r != 4294967295 {
    392 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "%", r)
    393 	}
    394 	y = 18446744073709551615
    395 	r = x % y
    396 	if r != 0 {
    397 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "%", r)
    398 	}
    399 }
    400 func TestConstFoldint64add(t *testing.T) {
    401 	var x, y, r int64
    402 	x = -9223372036854775808
    403 	y = -9223372036854775808
    404 	r = x + y
    405 	if r != 0 {
    406 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "+", r)
    407 	}
    408 	y = -9223372036854775807
    409 	r = x + y
    410 	if r != 1 {
    411 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want 1", "+", r)
    412 	}
    413 	y = -4294967296
    414 	r = x + y
    415 	if r != 9223372032559808512 {
    416 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 9223372032559808512", "+", r)
    417 	}
    418 	y = -1
    419 	r = x + y
    420 	if r != 9223372036854775807 {
    421 		t.Errorf("-9223372036854775808 %s -1 = %d, want 9223372036854775807", "+", r)
    422 	}
    423 	y = 0
    424 	r = x + y
    425 	if r != -9223372036854775808 {
    426 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "+", r)
    427 	}
    428 	y = 1
    429 	r = x + y
    430 	if r != -9223372036854775807 {
    431 		t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775807", "+", r)
    432 	}
    433 	y = 4294967296
    434 	r = x + y
    435 	if r != -9223372032559808512 {
    436 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -9223372032559808512", "+", r)
    437 	}
    438 	y = 9223372036854775806
    439 	r = x + y
    440 	if r != -2 {
    441 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -2", "+", r)
    442 	}
    443 	y = 9223372036854775807
    444 	r = x + y
    445 	if r != -1 {
    446 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "+", r)
    447 	}
    448 	x = -9223372036854775807
    449 	y = -9223372036854775808
    450 	r = x + y
    451 	if r != 1 {
    452 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 1", "+", r)
    453 	}
    454 	y = -9223372036854775807
    455 	r = x + y
    456 	if r != 2 {
    457 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 2", "+", r)
    458 	}
    459 	y = -4294967296
    460 	r = x + y
    461 	if r != 9223372032559808513 {
    462 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want 9223372032559808513", "+", r)
    463 	}
    464 	y = -1
    465 	r = x + y
    466 	if r != -9223372036854775808 {
    467 		t.Errorf("-9223372036854775807 %s -1 = %d, want -9223372036854775808", "+", r)
    468 	}
    469 	y = 0
    470 	r = x + y
    471 	if r != -9223372036854775807 {
    472 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "+", r)
    473 	}
    474 	y = 1
    475 	r = x + y
    476 	if r != -9223372036854775806 {
    477 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775806", "+", r)
    478 	}
    479 	y = 4294967296
    480 	r = x + y
    481 	if r != -9223372032559808511 {
    482 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -9223372032559808511", "+", r)
    483 	}
    484 	y = 9223372036854775806
    485 	r = x + y
    486 	if r != -1 {
    487 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "+", r)
    488 	}
    489 	y = 9223372036854775807
    490 	r = x + y
    491 	if r != 0 {
    492 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 0", "+", r)
    493 	}
    494 	x = -4294967296
    495 	y = -9223372036854775808
    496 	r = x + y
    497 	if r != 9223372032559808512 {
    498 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 9223372032559808512", "+", r)
    499 	}
    500 	y = -9223372036854775807
    501 	r = x + y
    502 	if r != 9223372032559808513 {
    503 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 9223372032559808513", "+", r)
    504 	}
    505 	y = -4294967296
    506 	r = x + y
    507 	if r != -8589934592 {
    508 		t.Errorf("-4294967296 %s -4294967296 = %d, want -8589934592", "+", r)
    509 	}
    510 	y = -1
    511 	r = x + y
    512 	if r != -4294967297 {
    513 		t.Errorf("-4294967296 %s -1 = %d, want -4294967297", "+", r)
    514 	}
    515 	y = 0
    516 	r = x + y
    517 	if r != -4294967296 {
    518 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "+", r)
    519 	}
    520 	y = 1
    521 	r = x + y
    522 	if r != -4294967295 {
    523 		t.Errorf("-4294967296 %s 1 = %d, want -4294967295", "+", r)
    524 	}
    525 	y = 4294967296
    526 	r = x + y
    527 	if r != 0 {
    528 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "+", r)
    529 	}
    530 	y = 9223372036854775806
    531 	r = x + y
    532 	if r != 9223372032559808510 {
    533 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 9223372032559808510", "+", r)
    534 	}
    535 	y = 9223372036854775807
    536 	r = x + y
    537 	if r != 9223372032559808511 {
    538 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 9223372032559808511", "+", r)
    539 	}
    540 	x = -1
    541 	y = -9223372036854775808
    542 	r = x + y
    543 	if r != 9223372036854775807 {
    544 		t.Errorf("-1 %s -9223372036854775808 = %d, want 9223372036854775807", "+", r)
    545 	}
    546 	y = -9223372036854775807
    547 	r = x + y
    548 	if r != -9223372036854775808 {
    549 		t.Errorf("-1 %s -9223372036854775807 = %d, want -9223372036854775808", "+", r)
    550 	}
    551 	y = -4294967296
    552 	r = x + y
    553 	if r != -4294967297 {
    554 		t.Errorf("-1 %s -4294967296 = %d, want -4294967297", "+", r)
    555 	}
    556 	y = -1
    557 	r = x + y
    558 	if r != -2 {
    559 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
    560 	}
    561 	y = 0
    562 	r = x + y
    563 	if r != -1 {
    564 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
    565 	}
    566 	y = 1
    567 	r = x + y
    568 	if r != 0 {
    569 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
    570 	}
    571 	y = 4294967296
    572 	r = x + y
    573 	if r != 4294967295 {
    574 		t.Errorf("-1 %s 4294967296 = %d, want 4294967295", "+", r)
    575 	}
    576 	y = 9223372036854775806
    577 	r = x + y
    578 	if r != 9223372036854775805 {
    579 		t.Errorf("-1 %s 9223372036854775806 = %d, want 9223372036854775805", "+", r)
    580 	}
    581 	y = 9223372036854775807
    582 	r = x + y
    583 	if r != 9223372036854775806 {
    584 		t.Errorf("-1 %s 9223372036854775807 = %d, want 9223372036854775806", "+", r)
    585 	}
    586 	x = 0
    587 	y = -9223372036854775808
    588 	r = x + y
    589 	if r != -9223372036854775808 {
    590 		t.Errorf("0 %s -9223372036854775808 = %d, want -9223372036854775808", "+", r)
    591 	}
    592 	y = -9223372036854775807
    593 	r = x + y
    594 	if r != -9223372036854775807 {
    595 		t.Errorf("0 %s -9223372036854775807 = %d, want -9223372036854775807", "+", r)
    596 	}
    597 	y = -4294967296
    598 	r = x + y
    599 	if r != -4294967296 {
    600 		t.Errorf("0 %s -4294967296 = %d, want -4294967296", "+", r)
    601 	}
    602 	y = -1
    603 	r = x + y
    604 	if r != -1 {
    605 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
    606 	}
    607 	y = 0
    608 	r = x + y
    609 	if r != 0 {
    610 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
    611 	}
    612 	y = 1
    613 	r = x + y
    614 	if r != 1 {
    615 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
    616 	}
    617 	y = 4294967296
    618 	r = x + y
    619 	if r != 4294967296 {
    620 		t.Errorf("0 %s 4294967296 = %d, want 4294967296", "+", r)
    621 	}
    622 	y = 9223372036854775806
    623 	r = x + y
    624 	if r != 9223372036854775806 {
    625 		t.Errorf("0 %s 9223372036854775806 = %d, want 9223372036854775806", "+", r)
    626 	}
    627 	y = 9223372036854775807
    628 	r = x + y
    629 	if r != 9223372036854775807 {
    630 		t.Errorf("0 %s 9223372036854775807 = %d, want 9223372036854775807", "+", r)
    631 	}
    632 	x = 1
    633 	y = -9223372036854775808
    634 	r = x + y
    635 	if r != -9223372036854775807 {
    636 		t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775807", "+", r)
    637 	}
    638 	y = -9223372036854775807
    639 	r = x + y
    640 	if r != -9223372036854775806 {
    641 		t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775806", "+", r)
    642 	}
    643 	y = -4294967296
    644 	r = x + y
    645 	if r != -4294967295 {
    646 		t.Errorf("1 %s -4294967296 = %d, want -4294967295", "+", r)
    647 	}
    648 	y = -1
    649 	r = x + y
    650 	if r != 0 {
    651 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
    652 	}
    653 	y = 0
    654 	r = x + y
    655 	if r != 1 {
    656 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
    657 	}
    658 	y = 1
    659 	r = x + y
    660 	if r != 2 {
    661 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
    662 	}
    663 	y = 4294967296
    664 	r = x + y
    665 	if r != 4294967297 {
    666 		t.Errorf("1 %s 4294967296 = %d, want 4294967297", "+", r)
    667 	}
    668 	y = 9223372036854775806
    669 	r = x + y
    670 	if r != 9223372036854775807 {
    671 		t.Errorf("1 %s 9223372036854775806 = %d, want 9223372036854775807", "+", r)
    672 	}
    673 	y = 9223372036854775807
    674 	r = x + y
    675 	if r != -9223372036854775808 {
    676 		t.Errorf("1 %s 9223372036854775807 = %d, want -9223372036854775808", "+", r)
    677 	}
    678 	x = 4294967296
    679 	y = -9223372036854775808
    680 	r = x + y
    681 	if r != -9223372032559808512 {
    682 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want -9223372032559808512", "+", r)
    683 	}
    684 	y = -9223372036854775807
    685 	r = x + y
    686 	if r != -9223372032559808511 {
    687 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want -9223372032559808511", "+", r)
    688 	}
    689 	y = -4294967296
    690 	r = x + y
    691 	if r != 0 {
    692 		t.Errorf("4294967296 %s -4294967296 = %d, want 0", "+", r)
    693 	}
    694 	y = -1
    695 	r = x + y
    696 	if r != 4294967295 {
    697 		t.Errorf("4294967296 %s -1 = %d, want 4294967295", "+", r)
    698 	}
    699 	y = 0
    700 	r = x + y
    701 	if r != 4294967296 {
    702 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "+", r)
    703 	}
    704 	y = 1
    705 	r = x + y
    706 	if r != 4294967297 {
    707 		t.Errorf("4294967296 %s 1 = %d, want 4294967297", "+", r)
    708 	}
    709 	y = 4294967296
    710 	r = x + y
    711 	if r != 8589934592 {
    712 		t.Errorf("4294967296 %s 4294967296 = %d, want 8589934592", "+", r)
    713 	}
    714 	y = 9223372036854775806
    715 	r = x + y
    716 	if r != -9223372032559808514 {
    717 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want -9223372032559808514", "+", r)
    718 	}
    719 	y = 9223372036854775807
    720 	r = x + y
    721 	if r != -9223372032559808513 {
    722 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want -9223372032559808513", "+", r)
    723 	}
    724 	x = 9223372036854775806
    725 	y = -9223372036854775808
    726 	r = x + y
    727 	if r != -2 {
    728 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want -2", "+", r)
    729 	}
    730 	y = -9223372036854775807
    731 	r = x + y
    732 	if r != -1 {
    733 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want -1", "+", r)
    734 	}
    735 	y = -4294967296
    736 	r = x + y
    737 	if r != 9223372032559808510 {
    738 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want 9223372032559808510", "+", r)
    739 	}
    740 	y = -1
    741 	r = x + y
    742 	if r != 9223372036854775805 {
    743 		t.Errorf("9223372036854775806 %s -1 = %d, want 9223372036854775805", "+", r)
    744 	}
    745 	y = 0
    746 	r = x + y
    747 	if r != 9223372036854775806 {
    748 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "+", r)
    749 	}
    750 	y = 1
    751 	r = x + y
    752 	if r != 9223372036854775807 {
    753 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775807", "+", r)
    754 	}
    755 	y = 4294967296
    756 	r = x + y
    757 	if r != -9223372032559808514 {
    758 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want -9223372032559808514", "+", r)
    759 	}
    760 	y = 9223372036854775806
    761 	r = x + y
    762 	if r != -4 {
    763 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want -4", "+", r)
    764 	}
    765 	y = 9223372036854775807
    766 	r = x + y
    767 	if r != -3 {
    768 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -3", "+", r)
    769 	}
    770 	x = 9223372036854775807
    771 	y = -9223372036854775808
    772 	r = x + y
    773 	if r != -1 {
    774 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -1", "+", r)
    775 	}
    776 	y = -9223372036854775807
    777 	r = x + y
    778 	if r != 0 {
    779 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want 0", "+", r)
    780 	}
    781 	y = -4294967296
    782 	r = x + y
    783 	if r != 9223372032559808511 {
    784 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want 9223372032559808511", "+", r)
    785 	}
    786 	y = -1
    787 	r = x + y
    788 	if r != 9223372036854775806 {
    789 		t.Errorf("9223372036854775807 %s -1 = %d, want 9223372036854775806", "+", r)
    790 	}
    791 	y = 0
    792 	r = x + y
    793 	if r != 9223372036854775807 {
    794 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "+", r)
    795 	}
    796 	y = 1
    797 	r = x + y
    798 	if r != -9223372036854775808 {
    799 		t.Errorf("9223372036854775807 %s 1 = %d, want -9223372036854775808", "+", r)
    800 	}
    801 	y = 4294967296
    802 	r = x + y
    803 	if r != -9223372032559808513 {
    804 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want -9223372032559808513", "+", r)
    805 	}
    806 	y = 9223372036854775806
    807 	r = x + y
    808 	if r != -3 {
    809 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want -3", "+", r)
    810 	}
    811 	y = 9223372036854775807
    812 	r = x + y
    813 	if r != -2 {
    814 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want -2", "+", r)
    815 	}
    816 }
    817 func TestConstFoldint64sub(t *testing.T) {
    818 	var x, y, r int64
    819 	x = -9223372036854775808
    820 	y = -9223372036854775808
    821 	r = x - y
    822 	if r != 0 {
    823 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "-", r)
    824 	}
    825 	y = -9223372036854775807
    826 	r = x - y
    827 	if r != -1 {
    828 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -1", "-", r)
    829 	}
    830 	y = -4294967296
    831 	r = x - y
    832 	if r != -9223372032559808512 {
    833 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want -9223372032559808512", "-", r)
    834 	}
    835 	y = -1
    836 	r = x - y
    837 	if r != -9223372036854775807 {
    838 		t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775807", "-", r)
    839 	}
    840 	y = 0
    841 	r = x - y
    842 	if r != -9223372036854775808 {
    843 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "-", r)
    844 	}
    845 	y = 1
    846 	r = x - y
    847 	if r != 9223372036854775807 {
    848 		t.Errorf("-9223372036854775808 %s 1 = %d, want 9223372036854775807", "-", r)
    849 	}
    850 	y = 4294967296
    851 	r = x - y
    852 	if r != 9223372032559808512 {
    853 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 9223372032559808512", "-", r)
    854 	}
    855 	y = 9223372036854775806
    856 	r = x - y
    857 	if r != 2 {
    858 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want 2", "-", r)
    859 	}
    860 	y = 9223372036854775807
    861 	r = x - y
    862 	if r != 1 {
    863 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want 1", "-", r)
    864 	}
    865 	x = -9223372036854775807
    866 	y = -9223372036854775808
    867 	r = x - y
    868 	if r != 1 {
    869 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 1", "-", r)
    870 	}
    871 	y = -9223372036854775807
    872 	r = x - y
    873 	if r != 0 {
    874 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 0", "-", r)
    875 	}
    876 	y = -4294967296
    877 	r = x - y
    878 	if r != -9223372032559808511 {
    879 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -9223372032559808511", "-", r)
    880 	}
    881 	y = -1
    882 	r = x - y
    883 	if r != -9223372036854775806 {
    884 		t.Errorf("-9223372036854775807 %s -1 = %d, want -9223372036854775806", "-", r)
    885 	}
    886 	y = 0
    887 	r = x - y
    888 	if r != -9223372036854775807 {
    889 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "-", r)
    890 	}
    891 	y = 1
    892 	r = x - y
    893 	if r != -9223372036854775808 {
    894 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775808", "-", r)
    895 	}
    896 	y = 4294967296
    897 	r = x - y
    898 	if r != 9223372032559808513 {
    899 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 9223372032559808513", "-", r)
    900 	}
    901 	y = 9223372036854775806
    902 	r = x - y
    903 	if r != 3 {
    904 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want 3", "-", r)
    905 	}
    906 	y = 9223372036854775807
    907 	r = x - y
    908 	if r != 2 {
    909 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 2", "-", r)
    910 	}
    911 	x = -4294967296
    912 	y = -9223372036854775808
    913 	r = x - y
    914 	if r != 9223372032559808512 {
    915 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 9223372032559808512", "-", r)
    916 	}
    917 	y = -9223372036854775807
    918 	r = x - y
    919 	if r != 9223372032559808511 {
    920 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 9223372032559808511", "-", r)
    921 	}
    922 	y = -4294967296
    923 	r = x - y
    924 	if r != 0 {
    925 		t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "-", r)
    926 	}
    927 	y = -1
    928 	r = x - y
    929 	if r != -4294967295 {
    930 		t.Errorf("-4294967296 %s -1 = %d, want -4294967295", "-", r)
    931 	}
    932 	y = 0
    933 	r = x - y
    934 	if r != -4294967296 {
    935 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "-", r)
    936 	}
    937 	y = 1
    938 	r = x - y
    939 	if r != -4294967297 {
    940 		t.Errorf("-4294967296 %s 1 = %d, want -4294967297", "-", r)
    941 	}
    942 	y = 4294967296
    943 	r = x - y
    944 	if r != -8589934592 {
    945 		t.Errorf("-4294967296 %s 4294967296 = %d, want -8589934592", "-", r)
    946 	}
    947 	y = 9223372036854775806
    948 	r = x - y
    949 	if r != 9223372032559808514 {
    950 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 9223372032559808514", "-", r)
    951 	}
    952 	y = 9223372036854775807
    953 	r = x - y
    954 	if r != 9223372032559808513 {
    955 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 9223372032559808513", "-", r)
    956 	}
    957 	x = -1
    958 	y = -9223372036854775808
    959 	r = x - y
    960 	if r != 9223372036854775807 {
    961 		t.Errorf("-1 %s -9223372036854775808 = %d, want 9223372036854775807", "-", r)
    962 	}
    963 	y = -9223372036854775807
    964 	r = x - y
    965 	if r != 9223372036854775806 {
    966 		t.Errorf("-1 %s -9223372036854775807 = %d, want 9223372036854775806", "-", r)
    967 	}
    968 	y = -4294967296
    969 	r = x - y
    970 	if r != 4294967295 {
    971 		t.Errorf("-1 %s -4294967296 = %d, want 4294967295", "-", r)
    972 	}
    973 	y = -1
    974 	r = x - y
    975 	if r != 0 {
    976 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
    977 	}
    978 	y = 0
    979 	r = x - y
    980 	if r != -1 {
    981 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
    982 	}
    983 	y = 1
    984 	r = x - y
    985 	if r != -2 {
    986 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
    987 	}
    988 	y = 4294967296
    989 	r = x - y
    990 	if r != -4294967297 {
    991 		t.Errorf("-1 %s 4294967296 = %d, want -4294967297", "-", r)
    992 	}
    993 	y = 9223372036854775806
    994 	r = x - y
    995 	if r != -9223372036854775807 {
    996 		t.Errorf("-1 %s 9223372036854775806 = %d, want -9223372036854775807", "-", r)
    997 	}
    998 	y = 9223372036854775807
    999 	r = x - y
   1000 	if r != -9223372036854775808 {
   1001 		t.Errorf("-1 %s 9223372036854775807 = %d, want -9223372036854775808", "-", r)
   1002 	}
   1003 	x = 0
   1004 	y = -9223372036854775808
   1005 	r = x - y
   1006 	if r != -9223372036854775808 {
   1007 		t.Errorf("0 %s -9223372036854775808 = %d, want -9223372036854775808", "-", r)
   1008 	}
   1009 	y = -9223372036854775807
   1010 	r = x - y
   1011 	if r != 9223372036854775807 {
   1012 		t.Errorf("0 %s -9223372036854775807 = %d, want 9223372036854775807", "-", r)
   1013 	}
   1014 	y = -4294967296
   1015 	r = x - y
   1016 	if r != 4294967296 {
   1017 		t.Errorf("0 %s -4294967296 = %d, want 4294967296", "-", r)
   1018 	}
   1019 	y = -1
   1020 	r = x - y
   1021 	if r != 1 {
   1022 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   1023 	}
   1024 	y = 0
   1025 	r = x - y
   1026 	if r != 0 {
   1027 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   1028 	}
   1029 	y = 1
   1030 	r = x - y
   1031 	if r != -1 {
   1032 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   1033 	}
   1034 	y = 4294967296
   1035 	r = x - y
   1036 	if r != -4294967296 {
   1037 		t.Errorf("0 %s 4294967296 = %d, want -4294967296", "-", r)
   1038 	}
   1039 	y = 9223372036854775806
   1040 	r = x - y
   1041 	if r != -9223372036854775806 {
   1042 		t.Errorf("0 %s 9223372036854775806 = %d, want -9223372036854775806", "-", r)
   1043 	}
   1044 	y = 9223372036854775807
   1045 	r = x - y
   1046 	if r != -9223372036854775807 {
   1047 		t.Errorf("0 %s 9223372036854775807 = %d, want -9223372036854775807", "-", r)
   1048 	}
   1049 	x = 1
   1050 	y = -9223372036854775808
   1051 	r = x - y
   1052 	if r != -9223372036854775807 {
   1053 		t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775807", "-", r)
   1054 	}
   1055 	y = -9223372036854775807
   1056 	r = x - y
   1057 	if r != -9223372036854775808 {
   1058 		t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775808", "-", r)
   1059 	}
   1060 	y = -4294967296
   1061 	r = x - y
   1062 	if r != 4294967297 {
   1063 		t.Errorf("1 %s -4294967296 = %d, want 4294967297", "-", r)
   1064 	}
   1065 	y = -1
   1066 	r = x - y
   1067 	if r != 2 {
   1068 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   1069 	}
   1070 	y = 0
   1071 	r = x - y
   1072 	if r != 1 {
   1073 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   1074 	}
   1075 	y = 1
   1076 	r = x - y
   1077 	if r != 0 {
   1078 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   1079 	}
   1080 	y = 4294967296
   1081 	r = x - y
   1082 	if r != -4294967295 {
   1083 		t.Errorf("1 %s 4294967296 = %d, want -4294967295", "-", r)
   1084 	}
   1085 	y = 9223372036854775806
   1086 	r = x - y
   1087 	if r != -9223372036854775805 {
   1088 		t.Errorf("1 %s 9223372036854775806 = %d, want -9223372036854775805", "-", r)
   1089 	}
   1090 	y = 9223372036854775807
   1091 	r = x - y
   1092 	if r != -9223372036854775806 {
   1093 		t.Errorf("1 %s 9223372036854775807 = %d, want -9223372036854775806", "-", r)
   1094 	}
   1095 	x = 4294967296
   1096 	y = -9223372036854775808
   1097 	r = x - y
   1098 	if r != -9223372032559808512 {
   1099 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want -9223372032559808512", "-", r)
   1100 	}
   1101 	y = -9223372036854775807
   1102 	r = x - y
   1103 	if r != -9223372032559808513 {
   1104 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want -9223372032559808513", "-", r)
   1105 	}
   1106 	y = -4294967296
   1107 	r = x - y
   1108 	if r != 8589934592 {
   1109 		t.Errorf("4294967296 %s -4294967296 = %d, want 8589934592", "-", r)
   1110 	}
   1111 	y = -1
   1112 	r = x - y
   1113 	if r != 4294967297 {
   1114 		t.Errorf("4294967296 %s -1 = %d, want 4294967297", "-", r)
   1115 	}
   1116 	y = 0
   1117 	r = x - y
   1118 	if r != 4294967296 {
   1119 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "-", r)
   1120 	}
   1121 	y = 1
   1122 	r = x - y
   1123 	if r != 4294967295 {
   1124 		t.Errorf("4294967296 %s 1 = %d, want 4294967295", "-", r)
   1125 	}
   1126 	y = 4294967296
   1127 	r = x - y
   1128 	if r != 0 {
   1129 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "-", r)
   1130 	}
   1131 	y = 9223372036854775806
   1132 	r = x - y
   1133 	if r != -9223372032559808510 {
   1134 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want -9223372032559808510", "-", r)
   1135 	}
   1136 	y = 9223372036854775807
   1137 	r = x - y
   1138 	if r != -9223372032559808511 {
   1139 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want -9223372032559808511", "-", r)
   1140 	}
   1141 	x = 9223372036854775806
   1142 	y = -9223372036854775808
   1143 	r = x - y
   1144 	if r != -2 {
   1145 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want -2", "-", r)
   1146 	}
   1147 	y = -9223372036854775807
   1148 	r = x - y
   1149 	if r != -3 {
   1150 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want -3", "-", r)
   1151 	}
   1152 	y = -4294967296
   1153 	r = x - y
   1154 	if r != -9223372032559808514 {
   1155 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want -9223372032559808514", "-", r)
   1156 	}
   1157 	y = -1
   1158 	r = x - y
   1159 	if r != 9223372036854775807 {
   1160 		t.Errorf("9223372036854775806 %s -1 = %d, want 9223372036854775807", "-", r)
   1161 	}
   1162 	y = 0
   1163 	r = x - y
   1164 	if r != 9223372036854775806 {
   1165 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "-", r)
   1166 	}
   1167 	y = 1
   1168 	r = x - y
   1169 	if r != 9223372036854775805 {
   1170 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775805", "-", r)
   1171 	}
   1172 	y = 4294967296
   1173 	r = x - y
   1174 	if r != 9223372032559808510 {
   1175 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 9223372032559808510", "-", r)
   1176 	}
   1177 	y = 9223372036854775806
   1178 	r = x - y
   1179 	if r != 0 {
   1180 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 0", "-", r)
   1181 	}
   1182 	y = 9223372036854775807
   1183 	r = x - y
   1184 	if r != -1 {
   1185 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -1", "-", r)
   1186 	}
   1187 	x = 9223372036854775807
   1188 	y = -9223372036854775808
   1189 	r = x - y
   1190 	if r != -1 {
   1191 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -1", "-", r)
   1192 	}
   1193 	y = -9223372036854775807
   1194 	r = x - y
   1195 	if r != -2 {
   1196 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -2", "-", r)
   1197 	}
   1198 	y = -4294967296
   1199 	r = x - y
   1200 	if r != -9223372032559808513 {
   1201 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want -9223372032559808513", "-", r)
   1202 	}
   1203 	y = -1
   1204 	r = x - y
   1205 	if r != -9223372036854775808 {
   1206 		t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775808", "-", r)
   1207 	}
   1208 	y = 0
   1209 	r = x - y
   1210 	if r != 9223372036854775807 {
   1211 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "-", r)
   1212 	}
   1213 	y = 1
   1214 	r = x - y
   1215 	if r != 9223372036854775806 {
   1216 		t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775806", "-", r)
   1217 	}
   1218 	y = 4294967296
   1219 	r = x - y
   1220 	if r != 9223372032559808511 {
   1221 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 9223372032559808511", "-", r)
   1222 	}
   1223 	y = 9223372036854775806
   1224 	r = x - y
   1225 	if r != 1 {
   1226 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "-", r)
   1227 	}
   1228 	y = 9223372036854775807
   1229 	r = x - y
   1230 	if r != 0 {
   1231 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 0", "-", r)
   1232 	}
   1233 }
   1234 func TestConstFoldint64div(t *testing.T) {
   1235 	var x, y, r int64
   1236 	x = -9223372036854775808
   1237 	y = -9223372036854775808
   1238 	r = x / y
   1239 	if r != 1 {
   1240 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 1", "/", r)
   1241 	}
   1242 	y = -9223372036854775807
   1243 	r = x / y
   1244 	if r != 1 {
   1245 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want 1", "/", r)
   1246 	}
   1247 	y = -4294967296
   1248 	r = x / y
   1249 	if r != 2147483648 {
   1250 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 2147483648", "/", r)
   1251 	}
   1252 	y = -1
   1253 	r = x / y
   1254 	if r != -9223372036854775808 {
   1255 		t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775808", "/", r)
   1256 	}
   1257 	y = 1
   1258 	r = x / y
   1259 	if r != -9223372036854775808 {
   1260 		t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775808", "/", r)
   1261 	}
   1262 	y = 4294967296
   1263 	r = x / y
   1264 	if r != -2147483648 {
   1265 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -2147483648", "/", r)
   1266 	}
   1267 	y = 9223372036854775806
   1268 	r = x / y
   1269 	if r != -1 {
   1270 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -1", "/", r)
   1271 	}
   1272 	y = 9223372036854775807
   1273 	r = x / y
   1274 	if r != -1 {
   1275 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "/", r)
   1276 	}
   1277 	x = -9223372036854775807
   1278 	y = -9223372036854775808
   1279 	r = x / y
   1280 	if r != 0 {
   1281 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 0", "/", r)
   1282 	}
   1283 	y = -9223372036854775807
   1284 	r = x / y
   1285 	if r != 1 {
   1286 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 1", "/", r)
   1287 	}
   1288 	y = -4294967296
   1289 	r = x / y
   1290 	if r != 2147483647 {
   1291 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want 2147483647", "/", r)
   1292 	}
   1293 	y = -1
   1294 	r = x / y
   1295 	if r != 9223372036854775807 {
   1296 		t.Errorf("-9223372036854775807 %s -1 = %d, want 9223372036854775807", "/", r)
   1297 	}
   1298 	y = 1
   1299 	r = x / y
   1300 	if r != -9223372036854775807 {
   1301 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775807", "/", r)
   1302 	}
   1303 	y = 4294967296
   1304 	r = x / y
   1305 	if r != -2147483647 {
   1306 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -2147483647", "/", r)
   1307 	}
   1308 	y = 9223372036854775806
   1309 	r = x / y
   1310 	if r != -1 {
   1311 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "/", r)
   1312 	}
   1313 	y = 9223372036854775807
   1314 	r = x / y
   1315 	if r != -1 {
   1316 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want -1", "/", r)
   1317 	}
   1318 	x = -4294967296
   1319 	y = -9223372036854775808
   1320 	r = x / y
   1321 	if r != 0 {
   1322 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 0", "/", r)
   1323 	}
   1324 	y = -9223372036854775807
   1325 	r = x / y
   1326 	if r != 0 {
   1327 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 0", "/", r)
   1328 	}
   1329 	y = -4294967296
   1330 	r = x / y
   1331 	if r != 1 {
   1332 		t.Errorf("-4294967296 %s -4294967296 = %d, want 1", "/", r)
   1333 	}
   1334 	y = -1
   1335 	r = x / y
   1336 	if r != 4294967296 {
   1337 		t.Errorf("-4294967296 %s -1 = %d, want 4294967296", "/", r)
   1338 	}
   1339 	y = 1
   1340 	r = x / y
   1341 	if r != -4294967296 {
   1342 		t.Errorf("-4294967296 %s 1 = %d, want -4294967296", "/", r)
   1343 	}
   1344 	y = 4294967296
   1345 	r = x / y
   1346 	if r != -1 {
   1347 		t.Errorf("-4294967296 %s 4294967296 = %d, want -1", "/", r)
   1348 	}
   1349 	y = 9223372036854775806
   1350 	r = x / y
   1351 	if r != 0 {
   1352 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 0", "/", r)
   1353 	}
   1354 	y = 9223372036854775807
   1355 	r = x / y
   1356 	if r != 0 {
   1357 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 0", "/", r)
   1358 	}
   1359 	x = -1
   1360 	y = -9223372036854775808
   1361 	r = x / y
   1362 	if r != 0 {
   1363 		t.Errorf("-1 %s -9223372036854775808 = %d, want 0", "/", r)
   1364 	}
   1365 	y = -9223372036854775807
   1366 	r = x / y
   1367 	if r != 0 {
   1368 		t.Errorf("-1 %s -9223372036854775807 = %d, want 0", "/", r)
   1369 	}
   1370 	y = -4294967296
   1371 	r = x / y
   1372 	if r != 0 {
   1373 		t.Errorf("-1 %s -4294967296 = %d, want 0", "/", r)
   1374 	}
   1375 	y = -1
   1376 	r = x / y
   1377 	if r != 1 {
   1378 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   1379 	}
   1380 	y = 1
   1381 	r = x / y
   1382 	if r != -1 {
   1383 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   1384 	}
   1385 	y = 4294967296
   1386 	r = x / y
   1387 	if r != 0 {
   1388 		t.Errorf("-1 %s 4294967296 = %d, want 0", "/", r)
   1389 	}
   1390 	y = 9223372036854775806
   1391 	r = x / y
   1392 	if r != 0 {
   1393 		t.Errorf("-1 %s 9223372036854775806 = %d, want 0", "/", r)
   1394 	}
   1395 	y = 9223372036854775807
   1396 	r = x / y
   1397 	if r != 0 {
   1398 		t.Errorf("-1 %s 9223372036854775807 = %d, want 0", "/", r)
   1399 	}
   1400 	x = 0
   1401 	y = -9223372036854775808
   1402 	r = x / y
   1403 	if r != 0 {
   1404 		t.Errorf("0 %s -9223372036854775808 = %d, want 0", "/", r)
   1405 	}
   1406 	y = -9223372036854775807
   1407 	r = x / y
   1408 	if r != 0 {
   1409 		t.Errorf("0 %s -9223372036854775807 = %d, want 0", "/", r)
   1410 	}
   1411 	y = -4294967296
   1412 	r = x / y
   1413 	if r != 0 {
   1414 		t.Errorf("0 %s -4294967296 = %d, want 0", "/", r)
   1415 	}
   1416 	y = -1
   1417 	r = x / y
   1418 	if r != 0 {
   1419 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   1420 	}
   1421 	y = 1
   1422 	r = x / y
   1423 	if r != 0 {
   1424 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   1425 	}
   1426 	y = 4294967296
   1427 	r = x / y
   1428 	if r != 0 {
   1429 		t.Errorf("0 %s 4294967296 = %d, want 0", "/", r)
   1430 	}
   1431 	y = 9223372036854775806
   1432 	r = x / y
   1433 	if r != 0 {
   1434 		t.Errorf("0 %s 9223372036854775806 = %d, want 0", "/", r)
   1435 	}
   1436 	y = 9223372036854775807
   1437 	r = x / y
   1438 	if r != 0 {
   1439 		t.Errorf("0 %s 9223372036854775807 = %d, want 0", "/", r)
   1440 	}
   1441 	x = 1
   1442 	y = -9223372036854775808
   1443 	r = x / y
   1444 	if r != 0 {
   1445 		t.Errorf("1 %s -9223372036854775808 = %d, want 0", "/", r)
   1446 	}
   1447 	y = -9223372036854775807
   1448 	r = x / y
   1449 	if r != 0 {
   1450 		t.Errorf("1 %s -9223372036854775807 = %d, want 0", "/", r)
   1451 	}
   1452 	y = -4294967296
   1453 	r = x / y
   1454 	if r != 0 {
   1455 		t.Errorf("1 %s -4294967296 = %d, want 0", "/", r)
   1456 	}
   1457 	y = -1
   1458 	r = x / y
   1459 	if r != -1 {
   1460 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   1461 	}
   1462 	y = 1
   1463 	r = x / y
   1464 	if r != 1 {
   1465 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   1466 	}
   1467 	y = 4294967296
   1468 	r = x / y
   1469 	if r != 0 {
   1470 		t.Errorf("1 %s 4294967296 = %d, want 0", "/", r)
   1471 	}
   1472 	y = 9223372036854775806
   1473 	r = x / y
   1474 	if r != 0 {
   1475 		t.Errorf("1 %s 9223372036854775806 = %d, want 0", "/", r)
   1476 	}
   1477 	y = 9223372036854775807
   1478 	r = x / y
   1479 	if r != 0 {
   1480 		t.Errorf("1 %s 9223372036854775807 = %d, want 0", "/", r)
   1481 	}
   1482 	x = 4294967296
   1483 	y = -9223372036854775808
   1484 	r = x / y
   1485 	if r != 0 {
   1486 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want 0", "/", r)
   1487 	}
   1488 	y = -9223372036854775807
   1489 	r = x / y
   1490 	if r != 0 {
   1491 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want 0", "/", r)
   1492 	}
   1493 	y = -4294967296
   1494 	r = x / y
   1495 	if r != -1 {
   1496 		t.Errorf("4294967296 %s -4294967296 = %d, want -1", "/", r)
   1497 	}
   1498 	y = -1
   1499 	r = x / y
   1500 	if r != -4294967296 {
   1501 		t.Errorf("4294967296 %s -1 = %d, want -4294967296", "/", r)
   1502 	}
   1503 	y = 1
   1504 	r = x / y
   1505 	if r != 4294967296 {
   1506 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "/", r)
   1507 	}
   1508 	y = 4294967296
   1509 	r = x / y
   1510 	if r != 1 {
   1511 		t.Errorf("4294967296 %s 4294967296 = %d, want 1", "/", r)
   1512 	}
   1513 	y = 9223372036854775806
   1514 	r = x / y
   1515 	if r != 0 {
   1516 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want 0", "/", r)
   1517 	}
   1518 	y = 9223372036854775807
   1519 	r = x / y
   1520 	if r != 0 {
   1521 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want 0", "/", r)
   1522 	}
   1523 	x = 9223372036854775806
   1524 	y = -9223372036854775808
   1525 	r = x / y
   1526 	if r != 0 {
   1527 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 0", "/", r)
   1528 	}
   1529 	y = -9223372036854775807
   1530 	r = x / y
   1531 	if r != 0 {
   1532 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 0", "/", r)
   1533 	}
   1534 	y = -4294967296
   1535 	r = x / y
   1536 	if r != -2147483647 {
   1537 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want -2147483647", "/", r)
   1538 	}
   1539 	y = -1
   1540 	r = x / y
   1541 	if r != -9223372036854775806 {
   1542 		t.Errorf("9223372036854775806 %s -1 = %d, want -9223372036854775806", "/", r)
   1543 	}
   1544 	y = 1
   1545 	r = x / y
   1546 	if r != 9223372036854775806 {
   1547 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775806", "/", r)
   1548 	}
   1549 	y = 4294967296
   1550 	r = x / y
   1551 	if r != 2147483647 {
   1552 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 2147483647", "/", r)
   1553 	}
   1554 	y = 9223372036854775806
   1555 	r = x / y
   1556 	if r != 1 {
   1557 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 1", "/", r)
   1558 	}
   1559 	y = 9223372036854775807
   1560 	r = x / y
   1561 	if r != 0 {
   1562 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want 0", "/", r)
   1563 	}
   1564 	x = 9223372036854775807
   1565 	y = -9223372036854775808
   1566 	r = x / y
   1567 	if r != 0 {
   1568 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want 0", "/", r)
   1569 	}
   1570 	y = -9223372036854775807
   1571 	r = x / y
   1572 	if r != -1 {
   1573 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -1", "/", r)
   1574 	}
   1575 	y = -4294967296
   1576 	r = x / y
   1577 	if r != -2147483647 {
   1578 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want -2147483647", "/", r)
   1579 	}
   1580 	y = -1
   1581 	r = x / y
   1582 	if r != -9223372036854775807 {
   1583 		t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775807", "/", r)
   1584 	}
   1585 	y = 1
   1586 	r = x / y
   1587 	if r != 9223372036854775807 {
   1588 		t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775807", "/", r)
   1589 	}
   1590 	y = 4294967296
   1591 	r = x / y
   1592 	if r != 2147483647 {
   1593 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 2147483647", "/", r)
   1594 	}
   1595 	y = 9223372036854775806
   1596 	r = x / y
   1597 	if r != 1 {
   1598 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "/", r)
   1599 	}
   1600 	y = 9223372036854775807
   1601 	r = x / y
   1602 	if r != 1 {
   1603 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 1", "/", r)
   1604 	}
   1605 }
   1606 func TestConstFoldint64mul(t *testing.T) {
   1607 	var x, y, r int64
   1608 	x = -9223372036854775808
   1609 	y = -9223372036854775808
   1610 	r = x * y
   1611 	if r != 0 {
   1612 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "*", r)
   1613 	}
   1614 	y = -9223372036854775807
   1615 	r = x * y
   1616 	if r != -9223372036854775808 {
   1617 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -9223372036854775808", "*", r)
   1618 	}
   1619 	y = -4294967296
   1620 	r = x * y
   1621 	if r != 0 {
   1622 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 0", "*", r)
   1623 	}
   1624 	y = -1
   1625 	r = x * y
   1626 	if r != -9223372036854775808 {
   1627 		t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775808", "*", r)
   1628 	}
   1629 	y = 0
   1630 	r = x * y
   1631 	if r != 0 {
   1632 		t.Errorf("-9223372036854775808 %s 0 = %d, want 0", "*", r)
   1633 	}
   1634 	y = 1
   1635 	r = x * y
   1636 	if r != -9223372036854775808 {
   1637 		t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775808", "*", r)
   1638 	}
   1639 	y = 4294967296
   1640 	r = x * y
   1641 	if r != 0 {
   1642 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "*", r)
   1643 	}
   1644 	y = 9223372036854775806
   1645 	r = x * y
   1646 	if r != 0 {
   1647 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want 0", "*", r)
   1648 	}
   1649 	y = 9223372036854775807
   1650 	r = x * y
   1651 	if r != -9223372036854775808 {
   1652 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -9223372036854775808", "*", r)
   1653 	}
   1654 	x = -9223372036854775807
   1655 	y = -9223372036854775808
   1656 	r = x * y
   1657 	if r != -9223372036854775808 {
   1658 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1659 	}
   1660 	y = -9223372036854775807
   1661 	r = x * y
   1662 	if r != 1 {
   1663 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 1", "*", r)
   1664 	}
   1665 	y = -4294967296
   1666 	r = x * y
   1667 	if r != -4294967296 {
   1668 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -4294967296", "*", r)
   1669 	}
   1670 	y = -1
   1671 	r = x * y
   1672 	if r != 9223372036854775807 {
   1673 		t.Errorf("-9223372036854775807 %s -1 = %d, want 9223372036854775807", "*", r)
   1674 	}
   1675 	y = 0
   1676 	r = x * y
   1677 	if r != 0 {
   1678 		t.Errorf("-9223372036854775807 %s 0 = %d, want 0", "*", r)
   1679 	}
   1680 	y = 1
   1681 	r = x * y
   1682 	if r != -9223372036854775807 {
   1683 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775807", "*", r)
   1684 	}
   1685 	y = 4294967296
   1686 	r = x * y
   1687 	if r != 4294967296 {
   1688 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 4294967296", "*", r)
   1689 	}
   1690 	y = 9223372036854775806
   1691 	r = x * y
   1692 	if r != 9223372036854775806 {
   1693 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want 9223372036854775806", "*", r)
   1694 	}
   1695 	y = 9223372036854775807
   1696 	r = x * y
   1697 	if r != -1 {
   1698 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want -1", "*", r)
   1699 	}
   1700 	x = -4294967296
   1701 	y = -9223372036854775808
   1702 	r = x * y
   1703 	if r != 0 {
   1704 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 0", "*", r)
   1705 	}
   1706 	y = -9223372036854775807
   1707 	r = x * y
   1708 	if r != -4294967296 {
   1709 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want -4294967296", "*", r)
   1710 	}
   1711 	y = -4294967296
   1712 	r = x * y
   1713 	if r != 0 {
   1714 		t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "*", r)
   1715 	}
   1716 	y = -1
   1717 	r = x * y
   1718 	if r != 4294967296 {
   1719 		t.Errorf("-4294967296 %s -1 = %d, want 4294967296", "*", r)
   1720 	}
   1721 	y = 0
   1722 	r = x * y
   1723 	if r != 0 {
   1724 		t.Errorf("-4294967296 %s 0 = %d, want 0", "*", r)
   1725 	}
   1726 	y = 1
   1727 	r = x * y
   1728 	if r != -4294967296 {
   1729 		t.Errorf("-4294967296 %s 1 = %d, want -4294967296", "*", r)
   1730 	}
   1731 	y = 4294967296
   1732 	r = x * y
   1733 	if r != 0 {
   1734 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "*", r)
   1735 	}
   1736 	y = 9223372036854775806
   1737 	r = x * y
   1738 	if r != 8589934592 {
   1739 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 8589934592", "*", r)
   1740 	}
   1741 	y = 9223372036854775807
   1742 	r = x * y
   1743 	if r != 4294967296 {
   1744 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 4294967296", "*", r)
   1745 	}
   1746 	x = -1
   1747 	y = -9223372036854775808
   1748 	r = x * y
   1749 	if r != -9223372036854775808 {
   1750 		t.Errorf("-1 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1751 	}
   1752 	y = -9223372036854775807
   1753 	r = x * y
   1754 	if r != 9223372036854775807 {
   1755 		t.Errorf("-1 %s -9223372036854775807 = %d, want 9223372036854775807", "*", r)
   1756 	}
   1757 	y = -4294967296
   1758 	r = x * y
   1759 	if r != 4294967296 {
   1760 		t.Errorf("-1 %s -4294967296 = %d, want 4294967296", "*", r)
   1761 	}
   1762 	y = -1
   1763 	r = x * y
   1764 	if r != 1 {
   1765 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   1766 	}
   1767 	y = 0
   1768 	r = x * y
   1769 	if r != 0 {
   1770 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   1771 	}
   1772 	y = 1
   1773 	r = x * y
   1774 	if r != -1 {
   1775 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   1776 	}
   1777 	y = 4294967296
   1778 	r = x * y
   1779 	if r != -4294967296 {
   1780 		t.Errorf("-1 %s 4294967296 = %d, want -4294967296", "*", r)
   1781 	}
   1782 	y = 9223372036854775806
   1783 	r = x * y
   1784 	if r != -9223372036854775806 {
   1785 		t.Errorf("-1 %s 9223372036854775806 = %d, want -9223372036854775806", "*", r)
   1786 	}
   1787 	y = 9223372036854775807
   1788 	r = x * y
   1789 	if r != -9223372036854775807 {
   1790 		t.Errorf("-1 %s 9223372036854775807 = %d, want -9223372036854775807", "*", r)
   1791 	}
   1792 	x = 0
   1793 	y = -9223372036854775808
   1794 	r = x * y
   1795 	if r != 0 {
   1796 		t.Errorf("0 %s -9223372036854775808 = %d, want 0", "*", r)
   1797 	}
   1798 	y = -9223372036854775807
   1799 	r = x * y
   1800 	if r != 0 {
   1801 		t.Errorf("0 %s -9223372036854775807 = %d, want 0", "*", r)
   1802 	}
   1803 	y = -4294967296
   1804 	r = x * y
   1805 	if r != 0 {
   1806 		t.Errorf("0 %s -4294967296 = %d, want 0", "*", r)
   1807 	}
   1808 	y = -1
   1809 	r = x * y
   1810 	if r != 0 {
   1811 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   1812 	}
   1813 	y = 0
   1814 	r = x * y
   1815 	if r != 0 {
   1816 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   1817 	}
   1818 	y = 1
   1819 	r = x * y
   1820 	if r != 0 {
   1821 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   1822 	}
   1823 	y = 4294967296
   1824 	r = x * y
   1825 	if r != 0 {
   1826 		t.Errorf("0 %s 4294967296 = %d, want 0", "*", r)
   1827 	}
   1828 	y = 9223372036854775806
   1829 	r = x * y
   1830 	if r != 0 {
   1831 		t.Errorf("0 %s 9223372036854775806 = %d, want 0", "*", r)
   1832 	}
   1833 	y = 9223372036854775807
   1834 	r = x * y
   1835 	if r != 0 {
   1836 		t.Errorf("0 %s 9223372036854775807 = %d, want 0", "*", r)
   1837 	}
   1838 	x = 1
   1839 	y = -9223372036854775808
   1840 	r = x * y
   1841 	if r != -9223372036854775808 {
   1842 		t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1843 	}
   1844 	y = -9223372036854775807
   1845 	r = x * y
   1846 	if r != -9223372036854775807 {
   1847 		t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775807", "*", r)
   1848 	}
   1849 	y = -4294967296
   1850 	r = x * y
   1851 	if r != -4294967296 {
   1852 		t.Errorf("1 %s -4294967296 = %d, want -4294967296", "*", r)
   1853 	}
   1854 	y = -1
   1855 	r = x * y
   1856 	if r != -1 {
   1857 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   1858 	}
   1859 	y = 0
   1860 	r = x * y
   1861 	if r != 0 {
   1862 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   1863 	}
   1864 	y = 1
   1865 	r = x * y
   1866 	if r != 1 {
   1867 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   1868 	}
   1869 	y = 4294967296
   1870 	r = x * y
   1871 	if r != 4294967296 {
   1872 		t.Errorf("1 %s 4294967296 = %d, want 4294967296", "*", r)
   1873 	}
   1874 	y = 9223372036854775806
   1875 	r = x * y
   1876 	if r != 9223372036854775806 {
   1877 		t.Errorf("1 %s 9223372036854775806 = %d, want 9223372036854775806", "*", r)
   1878 	}
   1879 	y = 9223372036854775807
   1880 	r = x * y
   1881 	if r != 9223372036854775807 {
   1882 		t.Errorf("1 %s 9223372036854775807 = %d, want 9223372036854775807", "*", r)
   1883 	}
   1884 	x = 4294967296
   1885 	y = -9223372036854775808
   1886 	r = x * y
   1887 	if r != 0 {
   1888 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want 0", "*", r)
   1889 	}
   1890 	y = -9223372036854775807
   1891 	r = x * y
   1892 	if r != 4294967296 {
   1893 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want 4294967296", "*", r)
   1894 	}
   1895 	y = -4294967296
   1896 	r = x * y
   1897 	if r != 0 {
   1898 		t.Errorf("4294967296 %s -4294967296 = %d, want 0", "*", r)
   1899 	}
   1900 	y = -1
   1901 	r = x * y
   1902 	if r != -4294967296 {
   1903 		t.Errorf("4294967296 %s -1 = %d, want -4294967296", "*", r)
   1904 	}
   1905 	y = 0
   1906 	r = x * y
   1907 	if r != 0 {
   1908 		t.Errorf("4294967296 %s 0 = %d, want 0", "*", r)
   1909 	}
   1910 	y = 1
   1911 	r = x * y
   1912 	if r != 4294967296 {
   1913 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "*", r)
   1914 	}
   1915 	y = 4294967296
   1916 	r = x * y
   1917 	if r != 0 {
   1918 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "*", r)
   1919 	}
   1920 	y = 9223372036854775806
   1921 	r = x * y
   1922 	if r != -8589934592 {
   1923 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want -8589934592", "*", r)
   1924 	}
   1925 	y = 9223372036854775807
   1926 	r = x * y
   1927 	if r != -4294967296 {
   1928 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want -4294967296", "*", r)
   1929 	}
   1930 	x = 9223372036854775806
   1931 	y = -9223372036854775808
   1932 	r = x * y
   1933 	if r != 0 {
   1934 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 0", "*", r)
   1935 	}
   1936 	y = -9223372036854775807
   1937 	r = x * y
   1938 	if r != 9223372036854775806 {
   1939 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 9223372036854775806", "*", r)
   1940 	}
   1941 	y = -4294967296
   1942 	r = x * y
   1943 	if r != 8589934592 {
   1944 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want 8589934592", "*", r)
   1945 	}
   1946 	y = -1
   1947 	r = x * y
   1948 	if r != -9223372036854775806 {
   1949 		t.Errorf("9223372036854775806 %s -1 = %d, want -9223372036854775806", "*", r)
   1950 	}
   1951 	y = 0
   1952 	r = x * y
   1953 	if r != 0 {
   1954 		t.Errorf("9223372036854775806 %s 0 = %d, want 0", "*", r)
   1955 	}
   1956 	y = 1
   1957 	r = x * y
   1958 	if r != 9223372036854775806 {
   1959 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775806", "*", r)
   1960 	}
   1961 	y = 4294967296
   1962 	r = x * y
   1963 	if r != -8589934592 {
   1964 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want -8589934592", "*", r)
   1965 	}
   1966 	y = 9223372036854775806
   1967 	r = x * y
   1968 	if r != 4 {
   1969 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 4", "*", r)
   1970 	}
   1971 	y = 9223372036854775807
   1972 	r = x * y
   1973 	if r != -9223372036854775806 {
   1974 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -9223372036854775806", "*", r)
   1975 	}
   1976 	x = 9223372036854775807
   1977 	y = -9223372036854775808
   1978 	r = x * y
   1979 	if r != -9223372036854775808 {
   1980 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1981 	}
   1982 	y = -9223372036854775807
   1983 	r = x * y
   1984 	if r != -1 {
   1985 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -1", "*", r)
   1986 	}
   1987 	y = -4294967296
   1988 	r = x * y
   1989 	if r != 4294967296 {
   1990 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want 4294967296", "*", r)
   1991 	}
   1992 	y = -1
   1993 	r = x * y
   1994 	if r != -9223372036854775807 {
   1995 		t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775807", "*", r)
   1996 	}
   1997 	y = 0
   1998 	r = x * y
   1999 	if r != 0 {
   2000 		t.Errorf("9223372036854775807 %s 0 = %d, want 0", "*", r)
   2001 	}
   2002 	y = 1
   2003 	r = x * y
   2004 	if r != 9223372036854775807 {
   2005 		t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775807", "*", r)
   2006 	}
   2007 	y = 4294967296
   2008 	r = x * y
   2009 	if r != -4294967296 {
   2010 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want -4294967296", "*", r)
   2011 	}
   2012 	y = 9223372036854775806
   2013 	r = x * y
   2014 	if r != -9223372036854775806 {
   2015 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want -9223372036854775806", "*", r)
   2016 	}
   2017 	y = 9223372036854775807
   2018 	r = x * y
   2019 	if r != 1 {
   2020 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 1", "*", r)
   2021 	}
   2022 }
   2023 func TestConstFoldint64mod(t *testing.T) {
   2024 	var x, y, r int64
   2025 	x = -9223372036854775808
   2026 	y = -9223372036854775808
   2027 	r = x % y
   2028 	if r != 0 {
   2029 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "%", r)
   2030 	}
   2031 	y = -9223372036854775807
   2032 	r = x % y
   2033 	if r != -1 {
   2034 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -1", "%", r)
   2035 	}
   2036 	y = -4294967296
   2037 	r = x % y
   2038 	if r != 0 {
   2039 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 0", "%", r)
   2040 	}
   2041 	y = -1
   2042 	r = x % y
   2043 	if r != 0 {
   2044 		t.Errorf("-9223372036854775808 %s -1 = %d, want 0", "%", r)
   2045 	}
   2046 	y = 1
   2047 	r = x % y
   2048 	if r != 0 {
   2049 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "%", r)
   2050 	}
   2051 	y = 4294967296
   2052 	r = x % y
   2053 	if r != 0 {
   2054 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "%", r)
   2055 	}
   2056 	y = 9223372036854775806
   2057 	r = x % y
   2058 	if r != -2 {
   2059 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -2", "%", r)
   2060 	}
   2061 	y = 9223372036854775807
   2062 	r = x % y
   2063 	if r != -1 {
   2064 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "%", r)
   2065 	}
   2066 	x = -9223372036854775807
   2067 	y = -9223372036854775808
   2068 	r = x % y
   2069 	if r != -9223372036854775807 {
   2070 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775807", "%", r)
   2071 	}
   2072 	y = -9223372036854775807
   2073 	r = x % y
   2074 	if r != 0 {
   2075 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 0", "%", r)
   2076 	}
   2077 	y = -4294967296
   2078 	r = x % y
   2079 	if r != -4294967295 {
   2080 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -4294967295", "%", r)
   2081 	}
   2082 	y = -1
   2083 	r = x % y
   2084 	if r != 0 {
   2085 		t.Errorf("-9223372036854775807 %s -1 = %d, want 0", "%", r)
   2086 	}
   2087 	y = 1
   2088 	r = x % y
   2089 	if r != 0 {
   2090 		t.Errorf("-9223372036854775807 %s 1 = %d, want 0", "%", r)
   2091 	}
   2092 	y = 4294967296
   2093 	r = x % y
   2094 	if r != -4294967295 {
   2095 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -4294967295", "%", r)
   2096 	}
   2097 	y = 9223372036854775806
   2098 	r = x % y
   2099 	if r != -1 {
   2100 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "%", r)
   2101 	}
   2102 	y = 9223372036854775807
   2103 	r = x % y
   2104 	if r != 0 {
   2105 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 0", "%", r)
   2106 	}
   2107 	x = -4294967296
   2108 	y = -9223372036854775808
   2109 	r = x % y
   2110 	if r != -4294967296 {
   2111 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want -4294967296", "%", r)
   2112 	}
   2113 	y = -9223372036854775807
   2114 	r = x % y
   2115 	if r != -4294967296 {
   2116 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want -4294967296", "%", r)
   2117 	}
   2118 	y = -4294967296
   2119 	r = x % y
   2120 	if r != 0 {
   2121 		t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "%", r)
   2122 	}
   2123 	y = -1
   2124 	r = x % y
   2125 	if r != 0 {
   2126 		t.Errorf("-4294967296 %s -1 = %d, want 0", "%", r)
   2127 	}
   2128 	y = 1
   2129 	r = x % y
   2130 	if r != 0 {
   2131 		t.Errorf("-4294967296 %s 1 = %d, want 0", "%", r)
   2132 	}
   2133 	y = 4294967296
   2134 	r = x % y
   2135 	if r != 0 {
   2136 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "%", r)
   2137 	}
   2138 	y = 9223372036854775806
   2139 	r = x % y
   2140 	if r != -4294967296 {
   2141 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want -4294967296", "%", r)
   2142 	}
   2143 	y = 9223372036854775807
   2144 	r = x % y
   2145 	if r != -4294967296 {
   2146 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want -4294967296", "%", r)
   2147 	}
   2148 	x = -1
   2149 	y = -9223372036854775808
   2150 	r = x % y
   2151 	if r != -1 {
   2152 		t.Errorf("-1 %s -9223372036854775808 = %d, want -1", "%", r)
   2153 	}
   2154 	y = -9223372036854775807
   2155 	r = x % y
   2156 	if r != -1 {
   2157 		t.Errorf("-1 %s -9223372036854775807 = %d, want -1", "%", r)
   2158 	}
   2159 	y = -4294967296
   2160 	r = x % y
   2161 	if r != -1 {
   2162 		t.Errorf("-1 %s -4294967296 = %d, want -1", "%", r)
   2163 	}
   2164 	y = -1
   2165 	r = x % y
   2166 	if r != 0 {
   2167 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   2168 	}
   2169 	y = 1
   2170 	r = x % y
   2171 	if r != 0 {
   2172 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   2173 	}
   2174 	y = 4294967296
   2175 	r = x % y
   2176 	if r != -1 {
   2177 		t.Errorf("-1 %s 4294967296 = %d, want -1", "%", r)
   2178 	}
   2179 	y = 9223372036854775806
   2180 	r = x % y
   2181 	if r != -1 {
   2182 		t.Errorf("-1 %s 9223372036854775806 = %d, want -1", "%", r)
   2183 	}
   2184 	y = 9223372036854775807
   2185 	r = x % y
   2186 	if r != -1 {
   2187 		t.Errorf("-1 %s 9223372036854775807 = %d, want -1", "%", r)
   2188 	}
   2189 	x = 0
   2190 	y = -9223372036854775808
   2191 	r = x % y
   2192 	if r != 0 {
   2193 		t.Errorf("0 %s -9223372036854775808 = %d, want 0", "%", r)
   2194 	}
   2195 	y = -9223372036854775807
   2196 	r = x % y
   2197 	if r != 0 {
   2198 		t.Errorf("0 %s -9223372036854775807 = %d, want 0", "%", r)
   2199 	}
   2200 	y = -4294967296
   2201 	r = x % y
   2202 	if r != 0 {
   2203 		t.Errorf("0 %s -4294967296 = %d, want 0", "%", r)
   2204 	}
   2205 	y = -1
   2206 	r = x % y
   2207 	if r != 0 {
   2208 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   2209 	}
   2210 	y = 1
   2211 	r = x % y
   2212 	if r != 0 {
   2213 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   2214 	}
   2215 	y = 4294967296
   2216 	r = x % y
   2217 	if r != 0 {
   2218 		t.Errorf("0 %s 4294967296 = %d, want 0", "%", r)
   2219 	}
   2220 	y = 9223372036854775806
   2221 	r = x % y
   2222 	if r != 0 {
   2223 		t.Errorf("0 %s 9223372036854775806 = %d, want 0", "%", r)
   2224 	}
   2225 	y = 9223372036854775807
   2226 	r = x % y
   2227 	if r != 0 {
   2228 		t.Errorf("0 %s 9223372036854775807 = %d, want 0", "%", r)
   2229 	}
   2230 	x = 1
   2231 	y = -9223372036854775808
   2232 	r = x % y
   2233 	if r != 1 {
   2234 		t.Errorf("1 %s -9223372036854775808 = %d, want 1", "%", r)
   2235 	}
   2236 	y = -9223372036854775807
   2237 	r = x % y
   2238 	if r != 1 {
   2239 		t.Errorf("1 %s -9223372036854775807 = %d, want 1", "%", r)
   2240 	}
   2241 	y = -4294967296
   2242 	r = x % y
   2243 	if r != 1 {
   2244 		t.Errorf("1 %s -4294967296 = %d, want 1", "%", r)
   2245 	}
   2246 	y = -1
   2247 	r = x % y
   2248 	if r != 0 {
   2249 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   2250 	}
   2251 	y = 1
   2252 	r = x % y
   2253 	if r != 0 {
   2254 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   2255 	}
   2256 	y = 4294967296
   2257 	r = x % y
   2258 	if r != 1 {
   2259 		t.Errorf("1 %s 4294967296 = %d, want 1", "%", r)
   2260 	}
   2261 	y = 9223372036854775806
   2262 	r = x % y
   2263 	if r != 1 {
   2264 		t.Errorf("1 %s 9223372036854775806 = %d, want 1", "%", r)
   2265 	}
   2266 	y = 9223372036854775807
   2267 	r = x % y
   2268 	if r != 1 {
   2269 		t.Errorf("1 %s 9223372036854775807 = %d, want 1", "%", r)
   2270 	}
   2271 	x = 4294967296
   2272 	y = -9223372036854775808
   2273 	r = x % y
   2274 	if r != 4294967296 {
   2275 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want 4294967296", "%", r)
   2276 	}
   2277 	y = -9223372036854775807
   2278 	r = x % y
   2279 	if r != 4294967296 {
   2280 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want 4294967296", "%", r)
   2281 	}
   2282 	y = -4294967296
   2283 	r = x % y
   2284 	if r != 0 {
   2285 		t.Errorf("4294967296 %s -4294967296 = %d, want 0", "%", r)
   2286 	}
   2287 	y = -1
   2288 	r = x % y
   2289 	if r != 0 {
   2290 		t.Errorf("4294967296 %s -1 = %d, want 0", "%", r)
   2291 	}
   2292 	y = 1
   2293 	r = x % y
   2294 	if r != 0 {
   2295 		t.Errorf("4294967296 %s 1 = %d, want 0", "%", r)
   2296 	}
   2297 	y = 4294967296
   2298 	r = x % y
   2299 	if r != 0 {
   2300 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "%", r)
   2301 	}
   2302 	y = 9223372036854775806
   2303 	r = x % y
   2304 	if r != 4294967296 {
   2305 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want 4294967296", "%", r)
   2306 	}
   2307 	y = 9223372036854775807
   2308 	r = x % y
   2309 	if r != 4294967296 {
   2310 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want 4294967296", "%", r)
   2311 	}
   2312 	x = 9223372036854775806
   2313 	y = -9223372036854775808
   2314 	r = x % y
   2315 	if r != 9223372036854775806 {
   2316 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 9223372036854775806", "%", r)
   2317 	}
   2318 	y = -9223372036854775807
   2319 	r = x % y
   2320 	if r != 9223372036854775806 {
   2321 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 9223372036854775806", "%", r)
   2322 	}
   2323 	y = -4294967296
   2324 	r = x % y
   2325 	if r != 4294967294 {
   2326 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want 4294967294", "%", r)
   2327 	}
   2328 	y = -1
   2329 	r = x % y
   2330 	if r != 0 {
   2331 		t.Errorf("9223372036854775806 %s -1 = %d, want 0", "%", r)
   2332 	}
   2333 	y = 1
   2334 	r = x % y
   2335 	if r != 0 {
   2336 		t.Errorf("9223372036854775806 %s 1 = %d, want 0", "%", r)
   2337 	}
   2338 	y = 4294967296
   2339 	r = x % y
   2340 	if r != 4294967294 {
   2341 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 4294967294", "%", r)
   2342 	}
   2343 	y = 9223372036854775806
   2344 	r = x % y
   2345 	if r != 0 {
   2346 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 0", "%", r)
   2347 	}
   2348 	y = 9223372036854775807
   2349 	r = x % y
   2350 	if r != 9223372036854775806 {
   2351 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want 9223372036854775806", "%", r)
   2352 	}
   2353 	x = 9223372036854775807
   2354 	y = -9223372036854775808
   2355 	r = x % y
   2356 	if r != 9223372036854775807 {
   2357 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want 9223372036854775807", "%", r)
   2358 	}
   2359 	y = -9223372036854775807
   2360 	r = x % y
   2361 	if r != 0 {
   2362 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want 0", "%", r)
   2363 	}
   2364 	y = -4294967296
   2365 	r = x % y
   2366 	if r != 4294967295 {
   2367 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want 4294967295", "%", r)
   2368 	}
   2369 	y = -1
   2370 	r = x % y
   2371 	if r != 0 {
   2372 		t.Errorf("9223372036854775807 %s -1 = %d, want 0", "%", r)
   2373 	}
   2374 	y = 1
   2375 	r = x % y
   2376 	if r != 0 {
   2377 		t.Errorf("9223372036854775807 %s 1 = %d, want 0", "%", r)
   2378 	}
   2379 	y = 4294967296
   2380 	r = x % y
   2381 	if r != 4294967295 {
   2382 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 4294967295", "%", r)
   2383 	}
   2384 	y = 9223372036854775806
   2385 	r = x % y
   2386 	if r != 1 {
   2387 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "%", r)
   2388 	}
   2389 	y = 9223372036854775807
   2390 	r = x % y
   2391 	if r != 0 {
   2392 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 0", "%", r)
   2393 	}
   2394 }
   2395 func TestConstFolduint32add(t *testing.T) {
   2396 	var x, y, r uint32
   2397 	x = 0
   2398 	y = 0
   2399 	r = x + y
   2400 	if r != 0 {
   2401 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   2402 	}
   2403 	y = 1
   2404 	r = x + y
   2405 	if r != 1 {
   2406 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   2407 	}
   2408 	y = 4294967295
   2409 	r = x + y
   2410 	if r != 4294967295 {
   2411 		t.Errorf("0 %s 4294967295 = %d, want 4294967295", "+", r)
   2412 	}
   2413 	x = 1
   2414 	y = 0
   2415 	r = x + y
   2416 	if r != 1 {
   2417 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   2418 	}
   2419 	y = 1
   2420 	r = x + y
   2421 	if r != 2 {
   2422 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   2423 	}
   2424 	y = 4294967295
   2425 	r = x + y
   2426 	if r != 0 {
   2427 		t.Errorf("1 %s 4294967295 = %d, want 0", "+", r)
   2428 	}
   2429 	x = 4294967295
   2430 	y = 0
   2431 	r = x + y
   2432 	if r != 4294967295 {
   2433 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "+", r)
   2434 	}
   2435 	y = 1
   2436 	r = x + y
   2437 	if r != 0 {
   2438 		t.Errorf("4294967295 %s 1 = %d, want 0", "+", r)
   2439 	}
   2440 	y = 4294967295
   2441 	r = x + y
   2442 	if r != 4294967294 {
   2443 		t.Errorf("4294967295 %s 4294967295 = %d, want 4294967294", "+", r)
   2444 	}
   2445 }
   2446 func TestConstFolduint32sub(t *testing.T) {
   2447 	var x, y, r uint32
   2448 	x = 0
   2449 	y = 0
   2450 	r = x - y
   2451 	if r != 0 {
   2452 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   2453 	}
   2454 	y = 1
   2455 	r = x - y
   2456 	if r != 4294967295 {
   2457 		t.Errorf("0 %s 1 = %d, want 4294967295", "-", r)
   2458 	}
   2459 	y = 4294967295
   2460 	r = x - y
   2461 	if r != 1 {
   2462 		t.Errorf("0 %s 4294967295 = %d, want 1", "-", r)
   2463 	}
   2464 	x = 1
   2465 	y = 0
   2466 	r = x - y
   2467 	if r != 1 {
   2468 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   2469 	}
   2470 	y = 1
   2471 	r = x - y
   2472 	if r != 0 {
   2473 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   2474 	}
   2475 	y = 4294967295
   2476 	r = x - y
   2477 	if r != 2 {
   2478 		t.Errorf("1 %s 4294967295 = %d, want 2", "-", r)
   2479 	}
   2480 	x = 4294967295
   2481 	y = 0
   2482 	r = x - y
   2483 	if r != 4294967295 {
   2484 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "-", r)
   2485 	}
   2486 	y = 1
   2487 	r = x - y
   2488 	if r != 4294967294 {
   2489 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "-", r)
   2490 	}
   2491 	y = 4294967295
   2492 	r = x - y
   2493 	if r != 0 {
   2494 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", "-", r)
   2495 	}
   2496 }
   2497 func TestConstFolduint32div(t *testing.T) {
   2498 	var x, y, r uint32
   2499 	x = 0
   2500 	y = 1
   2501 	r = x / y
   2502 	if r != 0 {
   2503 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   2504 	}
   2505 	y = 4294967295
   2506 	r = x / y
   2507 	if r != 0 {
   2508 		t.Errorf("0 %s 4294967295 = %d, want 0", "/", r)
   2509 	}
   2510 	x = 1
   2511 	y = 1
   2512 	r = x / y
   2513 	if r != 1 {
   2514 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   2515 	}
   2516 	y = 4294967295
   2517 	r = x / y
   2518 	if r != 0 {
   2519 		t.Errorf("1 %s 4294967295 = %d, want 0", "/", r)
   2520 	}
   2521 	x = 4294967295
   2522 	y = 1
   2523 	r = x / y
   2524 	if r != 4294967295 {
   2525 		t.Errorf("4294967295 %s 1 = %d, want 4294967295", "/", r)
   2526 	}
   2527 	y = 4294967295
   2528 	r = x / y
   2529 	if r != 1 {
   2530 		t.Errorf("4294967295 %s 4294967295 = %d, want 1", "/", r)
   2531 	}
   2532 }
   2533 func TestConstFolduint32mul(t *testing.T) {
   2534 	var x, y, r uint32
   2535 	x = 0
   2536 	y = 0
   2537 	r = x * y
   2538 	if r != 0 {
   2539 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   2540 	}
   2541 	y = 1
   2542 	r = x * y
   2543 	if r != 0 {
   2544 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   2545 	}
   2546 	y = 4294967295
   2547 	r = x * y
   2548 	if r != 0 {
   2549 		t.Errorf("0 %s 4294967295 = %d, want 0", "*", r)
   2550 	}
   2551 	x = 1
   2552 	y = 0
   2553 	r = x * y
   2554 	if r != 0 {
   2555 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   2556 	}
   2557 	y = 1
   2558 	r = x * y
   2559 	if r != 1 {
   2560 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   2561 	}
   2562 	y = 4294967295
   2563 	r = x * y
   2564 	if r != 4294967295 {
   2565 		t.Errorf("1 %s 4294967295 = %d, want 4294967295", "*", r)
   2566 	}
   2567 	x = 4294967295
   2568 	y = 0
   2569 	r = x * y
   2570 	if r != 0 {
   2571 		t.Errorf("4294967295 %s 0 = %d, want 0", "*", r)
   2572 	}
   2573 	y = 1
   2574 	r = x * y
   2575 	if r != 4294967295 {
   2576 		t.Errorf("4294967295 %s 1 = %d, want 4294967295", "*", r)
   2577 	}
   2578 	y = 4294967295
   2579 	r = x * y
   2580 	if r != 1 {
   2581 		t.Errorf("4294967295 %s 4294967295 = %d, want 1", "*", r)
   2582 	}
   2583 }
   2584 func TestConstFolduint32mod(t *testing.T) {
   2585 	var x, y, r uint32
   2586 	x = 0
   2587 	y = 1
   2588 	r = x % y
   2589 	if r != 0 {
   2590 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   2591 	}
   2592 	y = 4294967295
   2593 	r = x % y
   2594 	if r != 0 {
   2595 		t.Errorf("0 %s 4294967295 = %d, want 0", "%", r)
   2596 	}
   2597 	x = 1
   2598 	y = 1
   2599 	r = x % y
   2600 	if r != 0 {
   2601 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   2602 	}
   2603 	y = 4294967295
   2604 	r = x % y
   2605 	if r != 1 {
   2606 		t.Errorf("1 %s 4294967295 = %d, want 1", "%", r)
   2607 	}
   2608 	x = 4294967295
   2609 	y = 1
   2610 	r = x % y
   2611 	if r != 0 {
   2612 		t.Errorf("4294967295 %s 1 = %d, want 0", "%", r)
   2613 	}
   2614 	y = 4294967295
   2615 	r = x % y
   2616 	if r != 0 {
   2617 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", "%", r)
   2618 	}
   2619 }
   2620 func TestConstFoldint32add(t *testing.T) {
   2621 	var x, y, r int32
   2622 	x = -2147483648
   2623 	y = -2147483648
   2624 	r = x + y
   2625 	if r != 0 {
   2626 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "+", r)
   2627 	}
   2628 	y = -2147483647
   2629 	r = x + y
   2630 	if r != 1 {
   2631 		t.Errorf("-2147483648 %s -2147483647 = %d, want 1", "+", r)
   2632 	}
   2633 	y = -1
   2634 	r = x + y
   2635 	if r != 2147483647 {
   2636 		t.Errorf("-2147483648 %s -1 = %d, want 2147483647", "+", r)
   2637 	}
   2638 	y = 0
   2639 	r = x + y
   2640 	if r != -2147483648 {
   2641 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "+", r)
   2642 	}
   2643 	y = 1
   2644 	r = x + y
   2645 	if r != -2147483647 {
   2646 		t.Errorf("-2147483648 %s 1 = %d, want -2147483647", "+", r)
   2647 	}
   2648 	y = 2147483647
   2649 	r = x + y
   2650 	if r != -1 {
   2651 		t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "+", r)
   2652 	}
   2653 	x = -2147483647
   2654 	y = -2147483648
   2655 	r = x + y
   2656 	if r != 1 {
   2657 		t.Errorf("-2147483647 %s -2147483648 = %d, want 1", "+", r)
   2658 	}
   2659 	y = -2147483647
   2660 	r = x + y
   2661 	if r != 2 {
   2662 		t.Errorf("-2147483647 %s -2147483647 = %d, want 2", "+", r)
   2663 	}
   2664 	y = -1
   2665 	r = x + y
   2666 	if r != -2147483648 {
   2667 		t.Errorf("-2147483647 %s -1 = %d, want -2147483648", "+", r)
   2668 	}
   2669 	y = 0
   2670 	r = x + y
   2671 	if r != -2147483647 {
   2672 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "+", r)
   2673 	}
   2674 	y = 1
   2675 	r = x + y
   2676 	if r != -2147483646 {
   2677 		t.Errorf("-2147483647 %s 1 = %d, want -2147483646", "+", r)
   2678 	}
   2679 	y = 2147483647
   2680 	r = x + y
   2681 	if r != 0 {
   2682 		t.Errorf("-2147483647 %s 2147483647 = %d, want 0", "+", r)
   2683 	}
   2684 	x = -1
   2685 	y = -2147483648
   2686 	r = x + y
   2687 	if r != 2147483647 {
   2688 		t.Errorf("-1 %s -2147483648 = %d, want 2147483647", "+", r)
   2689 	}
   2690 	y = -2147483647
   2691 	r = x + y
   2692 	if r != -2147483648 {
   2693 		t.Errorf("-1 %s -2147483647 = %d, want -2147483648", "+", r)
   2694 	}
   2695 	y = -1
   2696 	r = x + y
   2697 	if r != -2 {
   2698 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
   2699 	}
   2700 	y = 0
   2701 	r = x + y
   2702 	if r != -1 {
   2703 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
   2704 	}
   2705 	y = 1
   2706 	r = x + y
   2707 	if r != 0 {
   2708 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
   2709 	}
   2710 	y = 2147483647
   2711 	r = x + y
   2712 	if r != 2147483646 {
   2713 		t.Errorf("-1 %s 2147483647 = %d, want 2147483646", "+", r)
   2714 	}
   2715 	x = 0
   2716 	y = -2147483648
   2717 	r = x + y
   2718 	if r != -2147483648 {
   2719 		t.Errorf("0 %s -2147483648 = %d, want -2147483648", "+", r)
   2720 	}
   2721 	y = -2147483647
   2722 	r = x + y
   2723 	if r != -2147483647 {
   2724 		t.Errorf("0 %s -2147483647 = %d, want -2147483647", "+", r)
   2725 	}
   2726 	y = -1
   2727 	r = x + y
   2728 	if r != -1 {
   2729 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
   2730 	}
   2731 	y = 0
   2732 	r = x + y
   2733 	if r != 0 {
   2734 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   2735 	}
   2736 	y = 1
   2737 	r = x + y
   2738 	if r != 1 {
   2739 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   2740 	}
   2741 	y = 2147483647
   2742 	r = x + y
   2743 	if r != 2147483647 {
   2744 		t.Errorf("0 %s 2147483647 = %d, want 2147483647", "+", r)
   2745 	}
   2746 	x = 1
   2747 	y = -2147483648
   2748 	r = x + y
   2749 	if r != -2147483647 {
   2750 		t.Errorf("1 %s -2147483648 = %d, want -2147483647", "+", r)
   2751 	}
   2752 	y = -2147483647
   2753 	r = x + y
   2754 	if r != -2147483646 {
   2755 		t.Errorf("1 %s -2147483647 = %d, want -2147483646", "+", r)
   2756 	}
   2757 	y = -1
   2758 	r = x + y
   2759 	if r != 0 {
   2760 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
   2761 	}
   2762 	y = 0
   2763 	r = x + y
   2764 	if r != 1 {
   2765 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   2766 	}
   2767 	y = 1
   2768 	r = x + y
   2769 	if r != 2 {
   2770 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   2771 	}
   2772 	y = 2147483647
   2773 	r = x + y
   2774 	if r != -2147483648 {
   2775 		t.Errorf("1 %s 2147483647 = %d, want -2147483648", "+", r)
   2776 	}
   2777 	x = 2147483647
   2778 	y = -2147483648
   2779 	r = x + y
   2780 	if r != -1 {
   2781 		t.Errorf("2147483647 %s -2147483648 = %d, want -1", "+", r)
   2782 	}
   2783 	y = -2147483647
   2784 	r = x + y
   2785 	if r != 0 {
   2786 		t.Errorf("2147483647 %s -2147483647 = %d, want 0", "+", r)
   2787 	}
   2788 	y = -1
   2789 	r = x + y
   2790 	if r != 2147483646 {
   2791 		t.Errorf("2147483647 %s -1 = %d, want 2147483646", "+", r)
   2792 	}
   2793 	y = 0
   2794 	r = x + y
   2795 	if r != 2147483647 {
   2796 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "+", r)
   2797 	}
   2798 	y = 1
   2799 	r = x + y
   2800 	if r != -2147483648 {
   2801 		t.Errorf("2147483647 %s 1 = %d, want -2147483648", "+", r)
   2802 	}
   2803 	y = 2147483647
   2804 	r = x + y
   2805 	if r != -2 {
   2806 		t.Errorf("2147483647 %s 2147483647 = %d, want -2", "+", r)
   2807 	}
   2808 }
   2809 func TestConstFoldint32sub(t *testing.T) {
   2810 	var x, y, r int32
   2811 	x = -2147483648
   2812 	y = -2147483648
   2813 	r = x - y
   2814 	if r != 0 {
   2815 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "-", r)
   2816 	}
   2817 	y = -2147483647
   2818 	r = x - y
   2819 	if r != -1 {
   2820 		t.Errorf("-2147483648 %s -2147483647 = %d, want -1", "-", r)
   2821 	}
   2822 	y = -1
   2823 	r = x - y
   2824 	if r != -2147483647 {
   2825 		t.Errorf("-2147483648 %s -1 = %d, want -2147483647", "-", r)
   2826 	}
   2827 	y = 0
   2828 	r = x - y
   2829 	if r != -2147483648 {
   2830 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "-", r)
   2831 	}
   2832 	y = 1
   2833 	r = x - y
   2834 	if r != 2147483647 {
   2835 		t.Errorf("-2147483648 %s 1 = %d, want 2147483647", "-", r)
   2836 	}
   2837 	y = 2147483647
   2838 	r = x - y
   2839 	if r != 1 {
   2840 		t.Errorf("-2147483648 %s 2147483647 = %d, want 1", "-", r)
   2841 	}
   2842 	x = -2147483647
   2843 	y = -2147483648
   2844 	r = x - y
   2845 	if r != 1 {
   2846 		t.Errorf("-2147483647 %s -2147483648 = %d, want 1", "-", r)
   2847 	}
   2848 	y = -2147483647
   2849 	r = x - y
   2850 	if r != 0 {
   2851 		t.Errorf("-2147483647 %s -2147483647 = %d, want 0", "-", r)
   2852 	}
   2853 	y = -1
   2854 	r = x - y
   2855 	if r != -2147483646 {
   2856 		t.Errorf("-2147483647 %s -1 = %d, want -2147483646", "-", r)
   2857 	}
   2858 	y = 0
   2859 	r = x - y
   2860 	if r != -2147483647 {
   2861 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "-", r)
   2862 	}
   2863 	y = 1
   2864 	r = x - y
   2865 	if r != -2147483648 {
   2866 		t.Errorf("-2147483647 %s 1 = %d, want -2147483648", "-", r)
   2867 	}
   2868 	y = 2147483647
   2869 	r = x - y
   2870 	if r != 2 {
   2871 		t.Errorf("-2147483647 %s 2147483647 = %d, want 2", "-", r)
   2872 	}
   2873 	x = -1
   2874 	y = -2147483648
   2875 	r = x - y
   2876 	if r != 2147483647 {
   2877 		t.Errorf("-1 %s -2147483648 = %d, want 2147483647", "-", r)
   2878 	}
   2879 	y = -2147483647
   2880 	r = x - y
   2881 	if r != 2147483646 {
   2882 		t.Errorf("-1 %s -2147483647 = %d, want 2147483646", "-", r)
   2883 	}
   2884 	y = -1
   2885 	r = x - y
   2886 	if r != 0 {
   2887 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
   2888 	}
   2889 	y = 0
   2890 	r = x - y
   2891 	if r != -1 {
   2892 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
   2893 	}
   2894 	y = 1
   2895 	r = x - y
   2896 	if r != -2 {
   2897 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
   2898 	}
   2899 	y = 2147483647
   2900 	r = x - y
   2901 	if r != -2147483648 {
   2902 		t.Errorf("-1 %s 2147483647 = %d, want -2147483648", "-", r)
   2903 	}
   2904 	x = 0
   2905 	y = -2147483648
   2906 	r = x - y
   2907 	if r != -2147483648 {
   2908 		t.Errorf("0 %s -2147483648 = %d, want -2147483648", "-", r)
   2909 	}
   2910 	y = -2147483647
   2911 	r = x - y
   2912 	if r != 2147483647 {
   2913 		t.Errorf("0 %s -2147483647 = %d, want 2147483647", "-", r)
   2914 	}
   2915 	y = -1
   2916 	r = x - y
   2917 	if r != 1 {
   2918 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   2919 	}
   2920 	y = 0
   2921 	r = x - y
   2922 	if r != 0 {
   2923 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   2924 	}
   2925 	y = 1
   2926 	r = x - y
   2927 	if r != -1 {
   2928 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   2929 	}
   2930 	y = 2147483647
   2931 	r = x - y
   2932 	if r != -2147483647 {
   2933 		t.Errorf("0 %s 2147483647 = %d, want -2147483647", "-", r)
   2934 	}
   2935 	x = 1
   2936 	y = -2147483648
   2937 	r = x - y
   2938 	if r != -2147483647 {
   2939 		t.Errorf("1 %s -2147483648 = %d, want -2147483647", "-", r)
   2940 	}
   2941 	y = -2147483647
   2942 	r = x - y
   2943 	if r != -2147483648 {
   2944 		t.Errorf("1 %s -2147483647 = %d, want -2147483648", "-", r)
   2945 	}
   2946 	y = -1
   2947 	r = x - y
   2948 	if r != 2 {
   2949 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   2950 	}
   2951 	y = 0
   2952 	r = x - y
   2953 	if r != 1 {
   2954 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   2955 	}
   2956 	y = 1
   2957 	r = x - y
   2958 	if r != 0 {
   2959 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   2960 	}
   2961 	y = 2147483647
   2962 	r = x - y
   2963 	if r != -2147483646 {
   2964 		t.Errorf("1 %s 2147483647 = %d, want -2147483646", "-", r)
   2965 	}
   2966 	x = 2147483647
   2967 	y = -2147483648
   2968 	r = x - y
   2969 	if r != -1 {
   2970 		t.Errorf("2147483647 %s -2147483648 = %d, want -1", "-", r)
   2971 	}
   2972 	y = -2147483647
   2973 	r = x - y
   2974 	if r != -2 {
   2975 		t.Errorf("2147483647 %s -2147483647 = %d, want -2", "-", r)
   2976 	}
   2977 	y = -1
   2978 	r = x - y
   2979 	if r != -2147483648 {
   2980 		t.Errorf("2147483647 %s -1 = %d, want -2147483648", "-", r)
   2981 	}
   2982 	y = 0
   2983 	r = x - y
   2984 	if r != 2147483647 {
   2985 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "-", r)
   2986 	}
   2987 	y = 1
   2988 	r = x - y
   2989 	if r != 2147483646 {
   2990 		t.Errorf("2147483647 %s 1 = %d, want 2147483646", "-", r)
   2991 	}
   2992 	y = 2147483647
   2993 	r = x - y
   2994 	if r != 0 {
   2995 		t.Errorf("2147483647 %s 2147483647 = %d, want 0", "-", r)
   2996 	}
   2997 }
   2998 func TestConstFoldint32div(t *testing.T) {
   2999 	var x, y, r int32
   3000 	x = -2147483648
   3001 	y = -2147483648
   3002 	r = x / y
   3003 	if r != 1 {
   3004 		t.Errorf("-2147483648 %s -2147483648 = %d, want 1", "/", r)
   3005 	}
   3006 	y = -2147483647
   3007 	r = x / y
   3008 	if r != 1 {
   3009 		t.Errorf("-2147483648 %s -2147483647 = %d, want 1", "/", r)
   3010 	}
   3011 	y = -1
   3012 	r = x / y
   3013 	if r != -2147483648 {
   3014 		t.Errorf("-2147483648 %s -1 = %d, want -2147483648", "/", r)
   3015 	}
   3016 	y = 1
   3017 	r = x / y
   3018 	if r != -2147483648 {
   3019 		t.Errorf("-2147483648 %s 1 = %d, want -2147483648", "/", r)
   3020 	}
   3021 	y = 2147483647
   3022 	r = x / y
   3023 	if r != -1 {
   3024 		t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "/", r)
   3025 	}
   3026 	x = -2147483647
   3027 	y = -2147483648
   3028 	r = x / y
   3029 	if r != 0 {
   3030 		t.Errorf("-2147483647 %s -2147483648 = %d, want 0", "/", r)
   3031 	}
   3032 	y = -2147483647
   3033 	r = x / y
   3034 	if r != 1 {
   3035 		t.Errorf("-2147483647 %s -2147483647 = %d, want 1", "/", r)
   3036 	}
   3037 	y = -1
   3038 	r = x / y
   3039 	if r != 2147483647 {
   3040 		t.Errorf("-2147483647 %s -1 = %d, want 2147483647", "/", r)
   3041 	}
   3042 	y = 1
   3043 	r = x / y
   3044 	if r != -2147483647 {
   3045 		t.Errorf("-2147483647 %s 1 = %d, want -2147483647", "/", r)
   3046 	}
   3047 	y = 2147483647
   3048 	r = x / y
   3049 	if r != -1 {
   3050 		t.Errorf("-2147483647 %s 2147483647 = %d, want -1", "/", r)
   3051 	}
   3052 	x = -1
   3053 	y = -2147483648
   3054 	r = x / y
   3055 	if r != 0 {
   3056 		t.Errorf("-1 %s -2147483648 = %d, want 0", "/", r)
   3057 	}
   3058 	y = -2147483647
   3059 	r = x / y
   3060 	if r != 0 {
   3061 		t.Errorf("-1 %s -2147483647 = %d, want 0", "/", r)
   3062 	}
   3063 	y = -1
   3064 	r = x / y
   3065 	if r != 1 {
   3066 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   3067 	}
   3068 	y = 1
   3069 	r = x / y
   3070 	if r != -1 {
   3071 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   3072 	}
   3073 	y = 2147483647
   3074 	r = x / y
   3075 	if r != 0 {
   3076 		t.Errorf("-1 %s 2147483647 = %d, want 0", "/", r)
   3077 	}
   3078 	x = 0
   3079 	y = -2147483648
   3080 	r = x / y
   3081 	if r != 0 {
   3082 		t.Errorf("0 %s -2147483648 = %d, want 0", "/", r)
   3083 	}
   3084 	y = -2147483647
   3085 	r = x / y
   3086 	if r != 0 {
   3087 		t.Errorf("0 %s -2147483647 = %d, want 0", "/", r)
   3088 	}
   3089 	y = -1
   3090 	r = x / y
   3091 	if r != 0 {
   3092 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   3093 	}
   3094 	y = 1
   3095 	r = x / y
   3096 	if r != 0 {
   3097 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   3098 	}
   3099 	y = 2147483647
   3100 	r = x / y
   3101 	if r != 0 {
   3102 		t.Errorf("0 %s 2147483647 = %d, want 0", "/", r)
   3103 	}
   3104 	x = 1
   3105 	y = -2147483648
   3106 	r = x / y
   3107 	if r != 0 {
   3108 		t.Errorf("1 %s -2147483648 = %d, want 0", "/", r)
   3109 	}
   3110 	y = -2147483647
   3111 	r = x / y
   3112 	if r != 0 {
   3113 		t.Errorf("1 %s -2147483647 = %d, want 0", "/", r)
   3114 	}
   3115 	y = -1
   3116 	r = x / y
   3117 	if r != -1 {
   3118 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   3119 	}
   3120 	y = 1
   3121 	r = x / y
   3122 	if r != 1 {
   3123 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   3124 	}
   3125 	y = 2147483647
   3126 	r = x / y
   3127 	if r != 0 {
   3128 		t.Errorf("1 %s 2147483647 = %d, want 0", "/", r)
   3129 	}
   3130 	x = 2147483647
   3131 	y = -2147483648
   3132 	r = x / y
   3133 	if r != 0 {
   3134 		t.Errorf("2147483647 %s -2147483648 = %d, want 0", "/", r)
   3135 	}
   3136 	y = -2147483647
   3137 	r = x / y
   3138 	if r != -1 {
   3139 		t.Errorf("2147483647 %s -2147483647 = %d, want -1", "/", r)
   3140 	}
   3141 	y = -1
   3142 	r = x / y
   3143 	if r != -2147483647 {
   3144 		t.Errorf("2147483647 %s -1 = %d, want -2147483647", "/", r)
   3145 	}
   3146 	y = 1
   3147 	r = x / y
   3148 	if r != 2147483647 {
   3149 		t.Errorf("2147483647 %s 1 = %d, want 2147483647", "/", r)
   3150 	}
   3151 	y = 2147483647
   3152 	r = x / y
   3153 	if r != 1 {
   3154 		t.Errorf("2147483647 %s 2147483647 = %d, want 1", "/", r)
   3155 	}
   3156 }
   3157 func TestConstFoldint32mul(t *testing.T) {
   3158 	var x, y, r int32
   3159 	x = -2147483648
   3160 	y = -2147483648
   3161 	r = x * y
   3162 	if r != 0 {
   3163 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "*", r)
   3164 	}
   3165 	y = -2147483647
   3166 	r = x * y
   3167 	if r != -2147483648 {
   3168 		t.Errorf("-2147483648 %s -2147483647 = %d, want -2147483648", "*", r)
   3169 	}
   3170 	y = -1
   3171 	r = x * y
   3172 	if r != -2147483648 {
   3173 		t.Errorf("-2147483648 %s -1 = %d, want -2147483648", "*", r)
   3174 	}
   3175 	y = 0
   3176 	r = x * y
   3177 	if r != 0 {
   3178 		t.Errorf("-2147483648 %s 0 = %d, want 0", "*", r)
   3179 	}
   3180 	y = 1
   3181 	r = x * y
   3182 	if r != -2147483648 {
   3183 		t.Errorf("-2147483648 %s 1 = %d, want -2147483648", "*", r)
   3184 	}
   3185 	y = 2147483647
   3186 	r = x * y
   3187 	if r != -2147483648 {
   3188 		t.Errorf("-2147483648 %s 2147483647 = %d, want -2147483648", "*", r)
   3189 	}
   3190 	x = -2147483647
   3191 	y = -2147483648
   3192 	r = x * y
   3193 	if r != -2147483648 {
   3194 		t.Errorf("-2147483647 %s -2147483648 = %d, want -2147483648", "*", r)
   3195 	}
   3196 	y = -2147483647
   3197 	r = x * y
   3198 	if r != 1 {
   3199 		t.Errorf("-2147483647 %s -2147483647 = %d, want 1", "*", r)
   3200 	}
   3201 	y = -1
   3202 	r = x * y
   3203 	if r != 2147483647 {
   3204 		t.Errorf("-2147483647 %s -1 = %d, want 2147483647", "*", r)
   3205 	}
   3206 	y = 0
   3207 	r = x * y
   3208 	if r != 0 {
   3209 		t.Errorf("-2147483647 %s 0 = %d, want 0", "*", r)
   3210 	}
   3211 	y = 1
   3212 	r = x * y
   3213 	if r != -2147483647 {
   3214 		t.Errorf("-2147483647 %s 1 = %d, want -2147483647", "*", r)
   3215 	}
   3216 	y = 2147483647
   3217 	r = x * y
   3218 	if r != -1 {
   3219 		t.Errorf("-2147483647 %s 2147483647 = %d, want -1", "*", r)
   3220 	}
   3221 	x = -1
   3222 	y = -2147483648
   3223 	r = x * y
   3224 	if r != -2147483648 {
   3225 		t.Errorf("-1 %s -2147483648 = %d, want -2147483648", "*", r)
   3226 	}
   3227 	y = -2147483647
   3228 	r = x * y
   3229 	if r != 2147483647 {
   3230 		t.Errorf("-1 %s -2147483647 = %d, want 2147483647", "*", r)
   3231 	}
   3232 	y = -1
   3233 	r = x * y
   3234 	if r != 1 {
   3235 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   3236 	}
   3237 	y = 0
   3238 	r = x * y
   3239 	if r != 0 {
   3240 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   3241 	}
   3242 	y = 1
   3243 	r = x * y
   3244 	if r != -1 {
   3245 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   3246 	}
   3247 	y = 2147483647
   3248 	r = x * y
   3249 	if r != -2147483647 {
   3250 		t.Errorf("-1 %s 2147483647 = %d, want -2147483647", "*", r)
   3251 	}
   3252 	x = 0
   3253 	y = -2147483648
   3254 	r = x * y
   3255 	if r != 0 {
   3256 		t.Errorf("0 %s -2147483648 = %d, want 0", "*", r)
   3257 	}
   3258 	y = -2147483647
   3259 	r = x * y
   3260 	if r != 0 {
   3261 		t.Errorf("0 %s -2147483647 = %d, want 0", "*", r)
   3262 	}
   3263 	y = -1
   3264 	r = x * y
   3265 	if r != 0 {
   3266 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   3267 	}
   3268 	y = 0
   3269 	r = x * y
   3270 	if r != 0 {
   3271 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   3272 	}
   3273 	y = 1
   3274 	r = x * y
   3275 	if r != 0 {
   3276 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   3277 	}
   3278 	y = 2147483647
   3279 	r = x * y
   3280 	if r != 0 {
   3281 		t.Errorf("0 %s 2147483647 = %d, want 0", "*", r)
   3282 	}
   3283 	x = 1
   3284 	y = -2147483648
   3285 	r = x * y
   3286 	if r != -2147483648 {
   3287 		t.Errorf("1 %s -2147483648 = %d, want -2147483648", "*", r)
   3288 	}
   3289 	y = -2147483647
   3290 	r = x * y
   3291 	if r != -2147483647 {
   3292 		t.Errorf("1 %s -2147483647 = %d, want -2147483647", "*", r)
   3293 	}
   3294 	y = -1
   3295 	r = x * y
   3296 	if r != -1 {
   3297 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   3298 	}
   3299 	y = 0
   3300 	r = x * y
   3301 	if r != 0 {
   3302 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   3303 	}
   3304 	y = 1
   3305 	r = x * y
   3306 	if r != 1 {
   3307 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   3308 	}
   3309 	y = 2147483647
   3310 	r = x * y
   3311 	if r != 2147483647 {
   3312 		t.Errorf("1 %s 2147483647 = %d, want 2147483647", "*", r)
   3313 	}
   3314 	x = 2147483647
   3315 	y = -2147483648
   3316 	r = x * y
   3317 	if r != -2147483648 {
   3318 		t.Errorf("2147483647 %s -2147483648 = %d, want -2147483648", "*", r)
   3319 	}
   3320 	y = -2147483647
   3321 	r = x * y
   3322 	if r != -1 {
   3323 		t.Errorf("2147483647 %s -2147483647 = %d, want -1", "*", r)
   3324 	}
   3325 	y = -1
   3326 	r = x * y
   3327 	if r != -2147483647 {
   3328 		t.Errorf("2147483647 %s -1 = %d, want -2147483647", "*", r)
   3329 	}
   3330 	y = 0
   3331 	r = x * y
   3332 	if r != 0 {
   3333 		t.Errorf("2147483647 %s 0 = %d, want 0", "*", r)
   3334 	}
   3335 	y = 1
   3336 	r = x * y
   3337 	if r != 2147483647 {
   3338 		t.Errorf("2147483647 %s 1 = %d, want 2147483647", "*", r)
   3339 	}
   3340 	y = 2147483647
   3341 	r = x * y
   3342 	if r != 1 {
   3343 		t.Errorf("2147483647 %s 2147483647 = %d, want 1", "*", r)
   3344 	}
   3345 }
   3346 func TestConstFoldint32mod(t *testing.T) {
   3347 	var x, y, r int32
   3348 	x = -2147483648
   3349 	y = -2147483648
   3350 	r = x % y
   3351 	if r != 0 {
   3352 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "%", r)
   3353 	}
   3354 	y = -2147483647
   3355 	r = x % y
   3356 	if r != -1 {
   3357 		t.Errorf("-2147483648 %s -2147483647 = %d, want -1", "%", r)
   3358 	}
   3359 	y = -1
   3360 	r = x % y
   3361 	if r != 0 {
   3362 		t.Errorf("-2147483648 %s -1 = %d, want 0", "%", r)
   3363 	}
   3364 	y = 1
   3365 	r = x % y
   3366 	if r != 0 {
   3367 		t.Errorf("-2147483648 %s 1 = %d, want 0", "%", r)
   3368 	}
   3369 	y = 2147483647
   3370 	r = x % y
   3371 	if r != -1 {
   3372 		t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "%", r)
   3373 	}
   3374 	x = -2147483647
   3375 	y = -2147483648
   3376 	r = x % y
   3377 	if r != -2147483647 {
   3378 		t.Errorf("-2147483647 %s -2147483648 = %d, want -2147483647", "%", r)
   3379 	}
   3380 	y = -2147483647
   3381 	r = x % y
   3382 	if r != 0 {
   3383 		t.Errorf("-2147483647 %s -2147483647 = %d, want 0", "%", r)
   3384 	}
   3385 	y = -1
   3386 	r = x % y
   3387 	if r != 0 {
   3388 		t.Errorf("-2147483647 %s -1 = %d, want 0", "%", r)
   3389 	}
   3390 	y = 1
   3391 	r = x % y
   3392 	if r != 0 {
   3393 		t.Errorf("-2147483647 %s 1 = %d, want 0", "%", r)
   3394 	}
   3395 	y = 2147483647
   3396 	r = x % y
   3397 	if r != 0 {
   3398 		t.Errorf("-2147483647 %s 2147483647 = %d, want 0", "%", r)
   3399 	}
   3400 	x = -1
   3401 	y = -2147483648
   3402 	r = x % y
   3403 	if r != -1 {
   3404 		t.Errorf("-1 %s -2147483648 = %d, want -1", "%", r)
   3405 	}
   3406 	y = -2147483647
   3407 	r = x % y
   3408 	if r != -1 {
   3409 		t.Errorf("-1 %s -2147483647 = %d, want -1", "%", r)
   3410 	}
   3411 	y = -1
   3412 	r = x % y
   3413 	if r != 0 {
   3414 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   3415 	}
   3416 	y = 1
   3417 	r = x % y
   3418 	if r != 0 {
   3419 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   3420 	}
   3421 	y = 2147483647
   3422 	r = x % y
   3423 	if r != -1 {
   3424 		t.Errorf("-1 %s 2147483647 = %d, want -1", "%", r)
   3425 	}
   3426 	x = 0
   3427 	y = -2147483648
   3428 	r = x % y
   3429 	if r != 0 {
   3430 		t.Errorf("0 %s -2147483648 = %d, want 0", "%", r)
   3431 	}
   3432 	y = -2147483647
   3433 	r = x % y
   3434 	if r != 0 {
   3435 		t.Errorf("0 %s -2147483647 = %d, want 0", "%", r)
   3436 	}
   3437 	y = -1
   3438 	r = x % y
   3439 	if r != 0 {
   3440 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   3441 	}
   3442 	y = 1
   3443 	r = x % y
   3444 	if r != 0 {
   3445 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   3446 	}
   3447 	y = 2147483647
   3448 	r = x % y
   3449 	if r != 0 {
   3450 		t.Errorf("0 %s 2147483647 = %d, want 0", "%", r)
   3451 	}
   3452 	x = 1
   3453 	y = -2147483648
   3454 	r = x % y
   3455 	if r != 1 {
   3456 		t.Errorf("1 %s -2147483648 = %d, want 1", "%", r)
   3457 	}
   3458 	y = -2147483647
   3459 	r = x % y
   3460 	if r != 1 {
   3461 		t.Errorf("1 %s -2147483647 = %d, want 1", "%", r)
   3462 	}
   3463 	y = -1
   3464 	r = x % y
   3465 	if r != 0 {
   3466 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   3467 	}
   3468 	y = 1
   3469 	r = x % y
   3470 	if r != 0 {
   3471 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   3472 	}
   3473 	y = 2147483647
   3474 	r = x % y
   3475 	if r != 1 {
   3476 		t.Errorf("1 %s 2147483647 = %d, want 1", "%", r)
   3477 	}
   3478 	x = 2147483647
   3479 	y = -2147483648
   3480 	r = x % y
   3481 	if r != 2147483647 {
   3482 		t.Errorf("2147483647 %s -2147483648 = %d, want 2147483647", "%", r)
   3483 	}
   3484 	y = -2147483647
   3485 	r = x % y
   3486 	if r != 0 {
   3487 		t.Errorf("2147483647 %s -2147483647 = %d, want 0", "%", r)
   3488 	}
   3489 	y = -1
   3490 	r = x % y
   3491 	if r != 0 {
   3492 		t.Errorf("2147483647 %s -1 = %d, want 0", "%", r)
   3493 	}
   3494 	y = 1
   3495 	r = x % y
   3496 	if r != 0 {
   3497 		t.Errorf("2147483647 %s 1 = %d, want 0", "%", r)
   3498 	}
   3499 	y = 2147483647
   3500 	r = x % y
   3501 	if r != 0 {
   3502 		t.Errorf("2147483647 %s 2147483647 = %d, want 0", "%", r)
   3503 	}
   3504 }
   3505 func TestConstFolduint16add(t *testing.T) {
   3506 	var x, y, r uint16
   3507 	x = 0
   3508 	y = 0
   3509 	r = x + y
   3510 	if r != 0 {
   3511 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   3512 	}
   3513 	y = 1
   3514 	r = x + y
   3515 	if r != 1 {
   3516 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   3517 	}
   3518 	y = 65535
   3519 	r = x + y
   3520 	if r != 65535 {
   3521 		t.Errorf("0 %s 65535 = %d, want 65535", "+", r)
   3522 	}
   3523 	x = 1
   3524 	y = 0
   3525 	r = x + y
   3526 	if r != 1 {
   3527 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   3528 	}
   3529 	y = 1
   3530 	r = x + y
   3531 	if r != 2 {
   3532 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   3533 	}
   3534 	y = 65535
   3535 	r = x + y
   3536 	if r != 0 {
   3537 		t.Errorf("1 %s 65535 = %d, want 0", "+", r)
   3538 	}
   3539 	x = 65535
   3540 	y = 0
   3541 	r = x + y
   3542 	if r != 65535 {
   3543 		t.Errorf("65535 %s 0 = %d, want 65535", "+", r)
   3544 	}
   3545 	y = 1
   3546 	r = x + y
   3547 	if r != 0 {
   3548 		t.Errorf("65535 %s 1 = %d, want 0", "+", r)
   3549 	}
   3550 	y = 65535
   3551 	r = x + y
   3552 	if r != 65534 {
   3553 		t.Errorf("65535 %s 65535 = %d, want 65534", "+", r)
   3554 	}
   3555 }
   3556 func TestConstFolduint16sub(t *testing.T) {
   3557 	var x, y, r uint16
   3558 	x = 0
   3559 	y = 0
   3560 	r = x - y
   3561 	if r != 0 {
   3562 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   3563 	}
   3564 	y = 1
   3565 	r = x - y
   3566 	if r != 65535 {
   3567 		t.Errorf("0 %s 1 = %d, want 65535", "-", r)
   3568 	}
   3569 	y = 65535
   3570 	r = x - y
   3571 	if r != 1 {
   3572 		t.Errorf("0 %s 65535 = %d, want 1", "-", r)
   3573 	}
   3574 	x = 1
   3575 	y = 0
   3576 	r = x - y
   3577 	if r != 1 {
   3578 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   3579 	}
   3580 	y = 1
   3581 	r = x - y
   3582 	if r != 0 {
   3583 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   3584 	}
   3585 	y = 65535
   3586 	r = x - y
   3587 	if r != 2 {
   3588 		t.Errorf("1 %s 65535 = %d, want 2", "-", r)
   3589 	}
   3590 	x = 65535
   3591 	y = 0
   3592 	r = x - y
   3593 	if r != 65535 {
   3594 		t.Errorf("65535 %s 0 = %d, want 65535", "-", r)
   3595 	}
   3596 	y = 1
   3597 	r = x - y
   3598 	if r != 65534 {
   3599 		t.Errorf("65535 %s 1 = %d, want 65534", "-", r)
   3600 	}
   3601 	y = 65535
   3602 	r = x - y
   3603 	if r != 0 {
   3604 		t.Errorf("65535 %s 65535 = %d, want 0", "-", r)
   3605 	}
   3606 }
   3607 func TestConstFolduint16div(t *testing.T) {
   3608 	var x, y, r uint16
   3609 	x = 0
   3610 	y = 1
   3611 	r = x / y
   3612 	if r != 0 {
   3613 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   3614 	}
   3615 	y = 65535
   3616 	r = x / y
   3617 	if r != 0 {
   3618 		t.Errorf("0 %s 65535 = %d, want 0", "/", r)
   3619 	}
   3620 	x = 1
   3621 	y = 1
   3622 	r = x / y
   3623 	if r != 1 {
   3624 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   3625 	}
   3626 	y = 65535
   3627 	r = x / y
   3628 	if r != 0 {
   3629 		t.Errorf("1 %s 65535 = %d, want 0", "/", r)
   3630 	}
   3631 	x = 65535
   3632 	y = 1
   3633 	r = x / y
   3634 	if r != 65535 {
   3635 		t.Errorf("65535 %s 1 = %d, want 65535", "/", r)
   3636 	}
   3637 	y = 65535
   3638 	r = x / y
   3639 	if r != 1 {
   3640 		t.Errorf("65535 %s 65535 = %d, want 1", "/", r)
   3641 	}
   3642 }
   3643 func TestConstFolduint16mul(t *testing.T) {
   3644 	var x, y, r uint16
   3645 	x = 0
   3646 	y = 0
   3647 	r = x * y
   3648 	if r != 0 {
   3649 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   3650 	}
   3651 	y = 1
   3652 	r = x * y
   3653 	if r != 0 {
   3654 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   3655 	}
   3656 	y = 65535
   3657 	r = x * y
   3658 	if r != 0 {
   3659 		t.Errorf("0 %s 65535 = %d, want 0", "*", r)
   3660 	}
   3661 	x = 1
   3662 	y = 0
   3663 	r = x * y
   3664 	if r != 0 {
   3665 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   3666 	}
   3667 	y = 1
   3668 	r = x * y
   3669 	if r != 1 {
   3670 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   3671 	}
   3672 	y = 65535
   3673 	r = x * y
   3674 	if r != 65535 {
   3675 		t.Errorf("1 %s 65535 = %d, want 65535", "*", r)
   3676 	}
   3677 	x = 65535
   3678 	y = 0
   3679 	r = x * y
   3680 	if r != 0 {
   3681 		t.Errorf("65535 %s 0 = %d, want 0", "*", r)
   3682 	}
   3683 	y = 1
   3684 	r = x * y
   3685 	if r != 65535 {
   3686 		t.Errorf("65535 %s 1 = %d, want 65535", "*", r)
   3687 	}
   3688 	y = 65535
   3689 	r = x * y
   3690 	if r != 1 {
   3691 		t.Errorf("65535 %s 65535 = %d, want 1", "*", r)
   3692 	}
   3693 }
   3694 func TestConstFolduint16mod(t *testing.T) {
   3695 	var x, y, r uint16
   3696 	x = 0
   3697 	y = 1
   3698 	r = x % y
   3699 	if r != 0 {
   3700 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   3701 	}
   3702 	y = 65535
   3703 	r = x % y
   3704 	if r != 0 {
   3705 		t.Errorf("0 %s 65535 = %d, want 0", "%", r)
   3706 	}
   3707 	x = 1
   3708 	y = 1
   3709 	r = x % y
   3710 	if r != 0 {
   3711 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   3712 	}
   3713 	y = 65535
   3714 	r = x % y
   3715 	if r != 1 {
   3716 		t.Errorf("1 %s 65535 = %d, want 1", "%", r)
   3717 	}
   3718 	x = 65535
   3719 	y = 1
   3720 	r = x % y
   3721 	if r != 0 {
   3722 		t.Errorf("65535 %s 1 = %d, want 0", "%", r)
   3723 	}
   3724 	y = 65535
   3725 	r = x % y
   3726 	if r != 0 {
   3727 		t.Errorf("65535 %s 65535 = %d, want 0", "%", r)
   3728 	}
   3729 }
   3730 func TestConstFoldint16add(t *testing.T) {
   3731 	var x, y, r int16
   3732 	x = -32768
   3733 	y = -32768
   3734 	r = x + y
   3735 	if r != 0 {
   3736 		t.Errorf("-32768 %s -32768 = %d, want 0", "+", r)
   3737 	}
   3738 	y = -32767
   3739 	r = x + y
   3740 	if r != 1 {
   3741 		t.Errorf("-32768 %s -32767 = %d, want 1", "+", r)
   3742 	}
   3743 	y = -1
   3744 	r = x + y
   3745 	if r != 32767 {
   3746 		t.Errorf("-32768 %s -1 = %d, want 32767", "+", r)
   3747 	}
   3748 	y = 0
   3749 	r = x + y
   3750 	if r != -32768 {
   3751 		t.Errorf("-32768 %s 0 = %d, want -32768", "+", r)
   3752 	}
   3753 	y = 1
   3754 	r = x + y
   3755 	if r != -32767 {
   3756 		t.Errorf("-32768 %s 1 = %d, want -32767", "+", r)
   3757 	}
   3758 	y = 32766
   3759 	r = x + y
   3760 	if r != -2 {
   3761 		t.Errorf("-32768 %s 32766 = %d, want -2", "+", r)
   3762 	}
   3763 	y = 32767
   3764 	r = x + y
   3765 	if r != -1 {
   3766 		t.Errorf("-32768 %s 32767 = %d, want -1", "+", r)
   3767 	}
   3768 	x = -32767
   3769 	y = -32768
   3770 	r = x + y
   3771 	if r != 1 {
   3772 		t.Errorf("-32767 %s -32768 = %d, want 1", "+", r)
   3773 	}
   3774 	y = -32767
   3775 	r = x + y
   3776 	if r != 2 {
   3777 		t.Errorf("-32767 %s -32767 = %d, want 2", "+", r)
   3778 	}
   3779 	y = -1
   3780 	r = x + y
   3781 	if r != -32768 {
   3782 		t.Errorf("-32767 %s -1 = %d, want -32768", "+", r)
   3783 	}
   3784 	y = 0
   3785 	r = x + y
   3786 	if r != -32767 {
   3787 		t.Errorf("-32767 %s 0 = %d, want -32767", "+", r)
   3788 	}
   3789 	y = 1
   3790 	r = x + y
   3791 	if r != -32766 {
   3792 		t.Errorf("-32767 %s 1 = %d, want -32766", "+", r)
   3793 	}
   3794 	y = 32766
   3795 	r = x + y
   3796 	if r != -1 {
   3797 		t.Errorf("-32767 %s 32766 = %d, want -1", "+", r)
   3798 	}
   3799 	y = 32767
   3800 	r = x + y
   3801 	if r != 0 {
   3802 		t.Errorf("-32767 %s 32767 = %d, want 0", "+", r)
   3803 	}
   3804 	x = -1
   3805 	y = -32768
   3806 	r = x + y
   3807 	if r != 32767 {
   3808 		t.Errorf("-1 %s -32768 = %d, want 32767", "+", r)
   3809 	}
   3810 	y = -32767
   3811 	r = x + y
   3812 	if r != -32768 {
   3813 		t.Errorf("-1 %s -32767 = %d, want -32768", "+", r)
   3814 	}
   3815 	y = -1
   3816 	r = x + y
   3817 	if r != -2 {
   3818 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
   3819 	}
   3820 	y = 0
   3821 	r = x + y
   3822 	if r != -1 {
   3823 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
   3824 	}
   3825 	y = 1
   3826 	r = x + y
   3827 	if r != 0 {
   3828 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
   3829 	}
   3830 	y = 32766
   3831 	r = x + y
   3832 	if r != 32765 {
   3833 		t.Errorf("-1 %s 32766 = %d, want 32765", "+", r)
   3834 	}
   3835 	y = 32767
   3836 	r = x + y
   3837 	if r != 32766 {
   3838 		t.Errorf("-1 %s 32767 = %d, want 32766", "+", r)
   3839 	}
   3840 	x = 0
   3841 	y = -32768
   3842 	r = x + y
   3843 	if r != -32768 {
   3844 		t.Errorf("0 %s -32768 = %d, want -32768", "+", r)
   3845 	}
   3846 	y = -32767
   3847 	r = x + y
   3848 	if r != -32767 {
   3849 		t.Errorf("0 %s -32767 = %d, want -32767", "+", r)
   3850 	}
   3851 	y = -1
   3852 	r = x + y
   3853 	if r != -1 {
   3854 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
   3855 	}
   3856 	y = 0
   3857 	r = x + y
   3858 	if r != 0 {
   3859 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   3860 	}
   3861 	y = 1
   3862 	r = x + y
   3863 	if r != 1 {
   3864 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   3865 	}
   3866 	y = 32766
   3867 	r = x + y
   3868 	if r != 32766 {
   3869 		t.Errorf("0 %s 32766 = %d, want 32766", "+", r)
   3870 	}
   3871 	y = 32767
   3872 	r = x + y
   3873 	if r != 32767 {
   3874 		t.Errorf("0 %s 32767 = %d, want 32767", "+", r)
   3875 	}
   3876 	x = 1
   3877 	y = -32768
   3878 	r = x + y
   3879 	if r != -32767 {
   3880 		t.Errorf("1 %s -32768 = %d, want -32767", "+", r)
   3881 	}
   3882 	y = -32767
   3883 	r = x + y
   3884 	if r != -32766 {
   3885 		t.Errorf("1 %s -32767 = %d, want -32766", "+", r)
   3886 	}
   3887 	y = -1
   3888 	r = x + y
   3889 	if r != 0 {
   3890 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
   3891 	}
   3892 	y = 0
   3893 	r = x + y
   3894 	if r != 1 {
   3895 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   3896 	}
   3897 	y = 1
   3898 	r = x + y
   3899 	if r != 2 {
   3900 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   3901 	}
   3902 	y = 32766
   3903 	r = x + y
   3904 	if r != 32767 {
   3905 		t.Errorf("1 %s 32766 = %d, want 32767", "+", r)
   3906 	}
   3907 	y = 32767
   3908 	r = x + y
   3909 	if r != -32768 {
   3910 		t.Errorf("1 %s 32767 = %d, want -32768", "+", r)
   3911 	}
   3912 	x = 32766
   3913 	y = -32768
   3914 	r = x + y
   3915 	if r != -2 {
   3916 		t.Errorf("32766 %s -32768 = %d, want -2", "+", r)
   3917 	}
   3918 	y = -32767
   3919 	r = x + y
   3920 	if r != -1 {
   3921 		t.Errorf("32766 %s -32767 = %d, want -1", "+", r)
   3922 	}
   3923 	y = -1
   3924 	r = x + y
   3925 	if r != 32765 {
   3926 		t.Errorf("32766 %s -1 = %d, want 32765", "+", r)
   3927 	}
   3928 	y = 0
   3929 	r = x + y
   3930 	if r != 32766 {
   3931 		t.Errorf("32766 %s 0 = %d, want 32766", "+", r)
   3932 	}
   3933 	y = 1
   3934 	r = x + y
   3935 	if r != 32767 {
   3936 		t.Errorf("32766 %s 1 = %d, want 32767", "+", r)
   3937 	}
   3938 	y = 32766
   3939 	r = x + y
   3940 	if r != -4 {
   3941 		t.Errorf("32766 %s 32766 = %d, want -4", "+", r)
   3942 	}
   3943 	y = 32767
   3944 	r = x + y
   3945 	if r != -3 {
   3946 		t.Errorf("32766 %s 32767 = %d, want -3", "+", r)
   3947 	}
   3948 	x = 32767
   3949 	y = -32768
   3950 	r = x + y
   3951 	if r != -1 {
   3952 		t.Errorf("32767 %s -32768 = %d, want -1", "+", r)
   3953 	}
   3954 	y = -32767
   3955 	r = x + y
   3956 	if r != 0 {
   3957 		t.Errorf("32767 %s -32767 = %d, want 0", "+", r)
   3958 	}
   3959 	y = -1
   3960 	r = x + y
   3961 	if r != 32766 {
   3962 		t.Errorf("32767 %s -1 = %d, want 32766", "+", r)
   3963 	}
   3964 	y = 0
   3965 	r = x + y
   3966 	if r != 32767 {
   3967 		t.Errorf("32767 %s 0 = %d, want 32767", "+", r)
   3968 	}
   3969 	y = 1
   3970 	r = x + y
   3971 	if r != -32768 {
   3972 		t.Errorf("32767 %s 1 = %d, want -32768", "+", r)
   3973 	}
   3974 	y = 32766
   3975 	r = x + y
   3976 	if r != -3 {
   3977 		t.Errorf("32767 %s 32766 = %d, want -3", "+", r)
   3978 	}
   3979 	y = 32767
   3980 	r = x + y
   3981 	if r != -2 {
   3982 		t.Errorf("32767 %s 32767 = %d, want -2", "+", r)
   3983 	}
   3984 }
   3985 func TestConstFoldint16sub(t *testing.T) {
   3986 	var x, y, r int16
   3987 	x = -32768
   3988 	y = -32768
   3989 	r = x - y
   3990 	if r != 0 {
   3991 		t.Errorf("-32768 %s -32768 = %d, want 0", "-", r)
   3992 	}
   3993 	y = -32767
   3994 	r = x - y
   3995 	if r != -1 {
   3996 		t.Errorf("-32768 %s -32767 = %d, want -1", "-", r)
   3997 	}
   3998 	y = -1
   3999 	r = x - y
   4000 	if r != -32767 {
   4001 		t.Errorf("-32768 %s -1 = %d, want -32767", "-", r)
   4002 	}
   4003 	y = 0
   4004 	r = x - y
   4005 	if r != -32768 {
   4006 		t.Errorf("-32768 %s 0 = %d, want -32768", "-", r)
   4007 	}
   4008 	y = 1
   4009 	r = x - y
   4010 	if r != 32767 {
   4011 		t.Errorf("-32768 %s 1 = %d, want 32767", "-", r)
   4012 	}
   4013 	y = 32766
   4014 	r = x - y
   4015 	if r != 2 {
   4016 		t.Errorf("-32768 %s 32766 = %d, want 2", "-", r)
   4017 	}
   4018 	y = 32767
   4019 	r = x - y
   4020 	if r != 1 {
   4021 		t.Errorf("-32768 %s 32767 = %d, want 1", "-", r)
   4022 	}
   4023 	x = -32767
   4024 	y = -32768
   4025 	r = x - y
   4026 	if r != 1 {
   4027 		t.Errorf("-32767 %s -32768 = %d, want 1", "-", r)
   4028 	}
   4029 	y = -32767
   4030 	r = x - y
   4031 	if r != 0 {
   4032 		t.Errorf("-32767 %s -32767 = %d, want 0", "-", r)
   4033 	}
   4034 	y = -1
   4035 	r = x - y
   4036 	if r != -32766 {
   4037 		t.Errorf("-32767 %s -1 = %d, want -32766", "-", r)
   4038 	}
   4039 	y = 0
   4040 	r = x - y
   4041 	if r != -32767 {
   4042 		t.Errorf("-32767 %s 0 = %d, want -32767", "-", r)
   4043 	}
   4044 	y = 1
   4045 	r = x - y
   4046 	if r != -32768 {
   4047 		t.Errorf("-32767 %s 1 = %d, want -32768", "-", r)
   4048 	}
   4049 	y = 32766
   4050 	r = x - y
   4051 	if r != 3 {
   4052 		t.Errorf("-32767 %s 32766 = %d, want 3", "-", r)
   4053 	}
   4054 	y = 32767
   4055 	r = x - y
   4056 	if r != 2 {
   4057 		t.Errorf("-32767 %s 32767 = %d, want 2", "-", r)
   4058 	}
   4059 	x = -1
   4060 	y = -32768
   4061 	r = x - y
   4062 	if r != 32767 {
   4063 		t.Errorf("-1 %s -32768 = %d, want 32767", "-", r)
   4064 	}
   4065 	y = -32767
   4066 	r = x - y
   4067 	if r != 32766 {
   4068 		t.Errorf("-1 %s -32767 = %d, want 32766", "-", r)
   4069 	}
   4070 	y = -1
   4071 	r = x - y
   4072 	if r != 0 {
   4073 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
   4074 	}
   4075 	y = 0
   4076 	r = x - y
   4077 	if r != -1 {
   4078 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
   4079 	}
   4080 	y = 1
   4081 	r = x - y
   4082 	if r != -2 {
   4083 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
   4084 	}
   4085 	y = 32766
   4086 	r = x - y
   4087 	if r != -32767 {
   4088 		t.Errorf("-1 %s 32766 = %d, want -32767", "-", r)
   4089 	}
   4090 	y = 32767
   4091 	r = x - y
   4092 	if r != -32768 {
   4093 		t.Errorf("-1 %s 32767 = %d, want -32768", "-", r)
   4094 	}
   4095 	x = 0
   4096 	y = -32768
   4097 	r = x - y
   4098 	if r != -32768 {
   4099 		t.Errorf("0 %s -32768 = %d, want -32768", "-", r)
   4100 	}
   4101 	y = -32767
   4102 	r = x - y
   4103 	if r != 32767 {
   4104 		t.Errorf("0 %s -32767 = %d, want 32767", "-", r)
   4105 	}
   4106 	y = -1
   4107 	r = x - y
   4108 	if r != 1 {
   4109 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   4110 	}
   4111 	y = 0
   4112 	r = x - y
   4113 	if r != 0 {
   4114 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   4115 	}
   4116 	y = 1
   4117 	r = x - y
   4118 	if r != -1 {
   4119 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   4120 	}
   4121 	y = 32766
   4122 	r = x - y
   4123 	if r != -32766 {
   4124 		t.Errorf("0 %s 32766 = %d, want -32766", "-", r)
   4125 	}
   4126 	y = 32767
   4127 	r = x - y
   4128 	if r != -32767 {
   4129 		t.Errorf("0 %s 32767 = %d, want -32767", "-", r)
   4130 	}
   4131 	x = 1
   4132 	y = -32768
   4133 	r = x - y
   4134 	if r != -32767 {
   4135 		t.Errorf("1 %s -32768 = %d, want -32767", "-", r)
   4136 	}
   4137 	y = -32767
   4138 	r = x - y
   4139 	if r != -32768 {
   4140 		t.Errorf("1 %s -32767 = %d, want -32768", "-", r)
   4141 	}
   4142 	y = -1
   4143 	r = x - y
   4144 	if r != 2 {
   4145 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   4146 	}
   4147 	y = 0
   4148 	r = x - y
   4149 	if r != 1 {
   4150 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   4151 	}
   4152 	y = 1
   4153 	r = x - y
   4154 	if r != 0 {
   4155 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   4156 	}
   4157 	y = 32766
   4158 	r = x - y
   4159 	if r != -32765 {
   4160 		t.Errorf("1 %s 32766 = %d, want -32765", "-", r)
   4161 	}
   4162 	y = 32767
   4163 	r = x - y
   4164 	if r != -32766 {
   4165 		t.Errorf("1 %s 32767 = %d, want -32766", "-", r)
   4166 	}
   4167 	x = 32766
   4168 	y = -32768
   4169 	r = x - y
   4170 	if r != -2 {
   4171 		t.Errorf("32766 %s -32768 = %d, want -2", "-", r)
   4172 	}
   4173 	y = -32767
   4174 	r = x - y
   4175 	if r != -3 {
   4176 		t.Errorf("32766 %s -32767 = %d, want -3", "-", r)
   4177 	}
   4178 	y = -1
   4179 	r = x - y
   4180 	if r != 32767 {
   4181 		t.Errorf("32766 %s -1 = %d, want 32767", "-", r)
   4182 	}
   4183 	y = 0
   4184 	r = x - y
   4185 	if r != 32766 {
   4186 		t.Errorf("32766 %s 0 = %d, want 32766", "-", r)
   4187 	}
   4188 	y = 1
   4189 	r = x - y
   4190 	if r != 32765 {
   4191 		t.Errorf("32766 %s 1 = %d, want 32765", "-", r)
   4192 	}
   4193 	y = 32766
   4194 	r = x - y
   4195 	if r != 0 {
   4196 		t.Errorf("32766 %s 32766 = %d, want 0", "-", r)
   4197 	}
   4198 	y = 32767
   4199 	r = x - y
   4200 	if r != -1 {
   4201 		t.Errorf("32766 %s 32767 = %d, want -1", "-", r)
   4202 	}
   4203 	x = 32767
   4204 	y = -32768
   4205 	r = x - y
   4206 	if r != -1 {
   4207 		t.Errorf("32767 %s -32768 = %d, want -1", "-", r)
   4208 	}
   4209 	y = -32767
   4210 	r = x - y
   4211 	if r != -2 {
   4212 		t.Errorf("32767 %s -32767 = %d, want -2", "-", r)
   4213 	}
   4214 	y = -1
   4215 	r = x - y
   4216 	if r != -32768 {
   4217 		t.Errorf("32767 %s -1 = %d, want -32768", "-", r)
   4218 	}
   4219 	y = 0
   4220 	r = x - y
   4221 	if r != 32767 {
   4222 		t.Errorf("32767 %s 0 = %d, want 32767", "-", r)
   4223 	}
   4224 	y = 1
   4225 	r = x - y
   4226 	if r != 32766 {
   4227 		t.Errorf("32767 %s 1 = %d, want 32766", "-", r)
   4228 	}
   4229 	y = 32766
   4230 	r = x - y
   4231 	if r != 1 {
   4232 		t.Errorf("32767 %s 32766 = %d, want 1", "-", r)
   4233 	}
   4234 	y = 32767
   4235 	r = x - y
   4236 	if r != 0 {
   4237 		t.Errorf("32767 %s 32767 = %d, want 0", "-", r)
   4238 	}
   4239 }
   4240 func TestConstFoldint16div(t *testing.T) {
   4241 	var x, y, r int16
   4242 	x = -32768
   4243 	y = -32768
   4244 	r = x / y
   4245 	if r != 1 {
   4246 		t.Errorf("-32768 %s -32768 = %d, want 1", "/", r)
   4247 	}
   4248 	y = -32767
   4249 	r = x / y
   4250 	if r != 1 {
   4251 		t.Errorf("-32768 %s -32767 = %d, want 1", "/", r)
   4252 	}
   4253 	y = -1
   4254 	r = x / y
   4255 	if r != -32768 {
   4256 		t.Errorf("-32768 %s -1 = %d, want -32768", "/", r)
   4257 	}
   4258 	y = 1
   4259 	r = x / y
   4260 	if r != -32768 {
   4261 		t.Errorf("-32768 %s 1 = %d, want -32768", "/", r)
   4262 	}
   4263 	y = 32766
   4264 	r = x / y
   4265 	if r != -1 {
   4266 		t.Errorf("-32768 %s 32766 = %d, want -1", "/", r)
   4267 	}
   4268 	y = 32767
   4269 	r = x / y
   4270 	if r != -1 {
   4271 		t.Errorf("-32768 %s 32767 = %d, want -1", "/", r)
   4272 	}
   4273 	x = -32767
   4274 	y = -32768
   4275 	r = x / y
   4276 	if r != 0 {
   4277 		t.Errorf("-32767 %s -32768 = %d, want 0", "/", r)
   4278 	}
   4279 	y = -32767
   4280 	r = x / y
   4281 	if r != 1 {
   4282 		t.Errorf("-32767 %s -32767 = %d, want 1", "/", r)
   4283 	}
   4284 	y = -1
   4285 	r = x / y
   4286 	if r != 32767 {
   4287 		t.Errorf("-32767 %s -1 = %d, want 32767", "/", r)
   4288 	}
   4289 	y = 1
   4290 	r = x / y
   4291 	if r != -32767 {
   4292 		t.Errorf("-32767 %s 1 = %d, want -32767", "/", r)
   4293 	}
   4294 	y = 32766
   4295 	r = x / y
   4296 	if r != -1 {
   4297 		t.Errorf("-32767 %s 32766 = %d, want -1", "/", r)
   4298 	}
   4299 	y = 32767
   4300 	r = x / y
   4301 	if r != -1 {
   4302 		t.Errorf("-32767 %s 32767 = %d, want -1", "/", r)
   4303 	}
   4304 	x = -1
   4305 	y = -32768
   4306 	r = x / y
   4307 	if r != 0 {
   4308 		t.Errorf("-1 %s -32768 = %d, want 0", "/", r)
   4309 	}
   4310 	y = -32767
   4311 	r = x / y
   4312 	if r != 0 {
   4313 		t.Errorf("-1 %s -32767 = %d, want 0", "/", r)
   4314 	}
   4315 	y = -1
   4316 	r = x / y
   4317 	if r != 1 {
   4318 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   4319 	}
   4320 	y = 1
   4321 	r = x / y
   4322 	if r != -1 {
   4323 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   4324 	}
   4325 	y = 32766
   4326 	r = x / y
   4327 	if r != 0 {
   4328 		t.Errorf("-1 %s 32766 = %d, want 0", "/", r)
   4329 	}
   4330 	y = 32767
   4331 	r = x / y
   4332 	if r != 0 {
   4333 		t.Errorf("-1 %s 32767 = %d, want 0", "/", r)
   4334 	}
   4335 	x = 0
   4336 	y = -32768
   4337 	r = x / y
   4338 	if r != 0 {
   4339 		t.Errorf("0 %s -32768 = %d, want 0", "/", r)
   4340 	}
   4341 	y = -32767
   4342 	r = x / y
   4343 	if r != 0 {
   4344 		t.Errorf("0 %s -32767 = %d, want 0", "/", r)
   4345 	}
   4346 	y = -1
   4347 	r = x / y
   4348 	if r != 0 {
   4349 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   4350 	}
   4351 	y = 1
   4352 	r = x / y
   4353 	if r != 0 {
   4354 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   4355 	}
   4356 	y = 32766
   4357 	r = x / y
   4358 	if r != 0 {
   4359 		t.Errorf("0 %s 32766 = %d, want 0", "/", r)
   4360 	}
   4361 	y = 32767
   4362 	r = x / y
   4363 	if r != 0 {
   4364 		t.Errorf("0 %s 32767 = %d, want 0", "/", r)
   4365 	}
   4366 	x = 1
   4367 	y = -32768
   4368 	r = x / y
   4369 	if r != 0 {
   4370 		t.Errorf("1 %s -32768 = %d, want 0", "/", r)
   4371 	}
   4372 	y = -32767
   4373 	r = x / y
   4374 	if r != 0 {
   4375 		t.Errorf("1 %s -32767 = %d, want 0", "/", r)
   4376 	}
   4377 	y = -1
   4378 	r = x / y
   4379 	if r != -1 {
   4380 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   4381 	}
   4382 	y = 1
   4383 	r = x / y
   4384 	if r != 1 {
   4385 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   4386 	}
   4387 	y = 32766
   4388 	r = x / y
   4389 	if r != 0 {
   4390 		t.Errorf("1 %s 32766 = %d, want 0", "/", r)
   4391 	}
   4392 	y = 32767
   4393 	r = x / y
   4394 	if r != 0 {
   4395 		t.Errorf("1 %s 32767 = %d, want 0", "/", r)
   4396 	}
   4397 	x = 32766
   4398 	y = -32768
   4399 	r = x / y
   4400 	if r != 0 {
   4401 		t.Errorf("32766 %s -32768 = %d, want 0", "/", r)
   4402 	}
   4403 	y = -32767
   4404 	r = x / y
   4405 	if r != 0 {
   4406 		t.Errorf("32766 %s -32767 = %d, want 0", "/", r)
   4407 	}
   4408 	y = -1
   4409 	r = x / y
   4410 	if r != -32766 {
   4411 		t.Errorf("32766 %s -1 = %d, want -32766", "/", r)
   4412 	}
   4413 	y = 1
   4414 	r = x / y
   4415 	if r != 32766 {
   4416 		t.Errorf("32766 %s 1 = %d, want 32766", "/", r)
   4417 	}
   4418 	y = 32766
   4419 	r = x / y
   4420 	if r != 1 {
   4421 		t.Errorf("32766 %s 32766 = %d, want 1", "/", r)
   4422 	}
   4423 	y = 32767
   4424 	r = x / y
   4425 	if r != 0 {
   4426 		t.Errorf("32766 %s 32767 = %d, want 0", "/", r)
   4427 	}
   4428 	x = 32767
   4429 	y = -32768
   4430 	r = x / y
   4431 	if r != 0 {
   4432 		t.Errorf("32767 %s -32768 = %d, want 0", "/", r)
   4433 	}
   4434 	y = -32767
   4435 	r = x / y
   4436 	if r != -1 {
   4437 		t.Errorf("32767 %s -32767 = %d, want -1", "/", r)
   4438 	}
   4439 	y = -1
   4440 	r = x / y
   4441 	if r != -32767 {
   4442 		t.Errorf("32767 %s -1 = %d, want -32767", "/", r)
   4443 	}
   4444 	y = 1
   4445 	r = x / y
   4446 	if r != 32767 {
   4447 		t.Errorf("32767 %s 1 = %d, want 32767", "/", r)
   4448 	}
   4449 	y = 32766
   4450 	r = x / y
   4451 	if r != 1 {
   4452 		t.Errorf("32767 %s 32766 = %d, want 1", "/", r)
   4453 	}
   4454 	y = 32767
   4455 	r = x / y
   4456 	if r != 1 {
   4457 		t.Errorf("32767 %s 32767 = %d, want 1", "/", r)
   4458 	}
   4459 }
   4460 func TestConstFoldint16mul(t *testing.T) {
   4461 	var x, y, r int16
   4462 	x = -32768
   4463 	y = -32768
   4464 	r = x * y
   4465 	if r != 0 {
   4466 		t.Errorf("-32768 %s -32768 = %d, want 0", "*", r)
   4467 	}
   4468 	y = -32767
   4469 	r = x * y
   4470 	if r != -32768 {
   4471 		t.Errorf("-32768 %s -32767 = %d, want -32768", "*", r)
   4472 	}
   4473 	y = -1
   4474 	r = x * y
   4475 	if r != -32768 {
   4476 		t.Errorf("-32768 %s -1 = %d, want -32768", "*", r)
   4477 	}
   4478 	y = 0
   4479 	r = x * y
   4480 	if r != 0 {
   4481 		t.Errorf("-32768 %s 0 = %d, want 0", "*", r)
   4482 	}
   4483 	y = 1
   4484 	r = x * y
   4485 	if r != -32768 {
   4486 		t.Errorf("-32768 %s 1 = %d, want -32768", "*", r)
   4487 	}
   4488 	y = 32766
   4489 	r = x * y
   4490 	if r != 0 {
   4491 		t.Errorf("-32768 %s 32766 = %d, want 0", "*", r)
   4492 	}
   4493 	y = 32767
   4494 	r = x * y
   4495 	if r != -32768 {
   4496 		t.Errorf("-32768 %s 32767 = %d, want -32768", "*", r)
   4497 	}
   4498 	x = -32767
   4499 	y = -32768
   4500 	r = x * y
   4501 	if r != -32768 {
   4502 		t.Errorf("-32767 %s -32768 = %d, want -32768", "*", r)
   4503 	}
   4504 	y = -32767
   4505 	r = x * y
   4506 	if r != 1 {
   4507 		t.Errorf("-32767 %s -32767 = %d, want 1", "*", r)
   4508 	}
   4509 	y = -1
   4510 	r = x * y
   4511 	if r != 32767 {
   4512 		t.Errorf("-32767 %s -1 = %d, want 32767", "*", r)
   4513 	}
   4514 	y = 0
   4515 	r = x * y
   4516 	if r != 0 {
   4517 		t.Errorf("-32767 %s 0 = %d, want 0", "*", r)
   4518 	}
   4519 	y = 1
   4520 	r = x * y
   4521 	if r != -32767 {
   4522 		t.Errorf("-32767 %s 1 = %d, want -32767", "*", r)
   4523 	}
   4524 	y = 32766
   4525 	r = x * y
   4526 	if r != 32766 {
   4527 		t.Errorf("-32767 %s 32766 = %d, want 32766", "*", r)
   4528 	}
   4529 	y = 32767
   4530 	r = x * y
   4531 	if r != -1 {
   4532 		t.Errorf("-32767 %s 32767 = %d, want -1", "*", r)
   4533 	}
   4534 	x = -1
   4535 	y = -32768
   4536 	r = x * y
   4537 	if r != -32768 {
   4538 		t.Errorf("-1 %s -32768 = %d, want -32768", "*", r)
   4539 	}
   4540 	y = -32767
   4541 	r = x * y
   4542 	if r != 32767 {
   4543 		t.Errorf("-1 %s -32767 = %d, want 32767", "*", r)
   4544 	}
   4545 	y = -1
   4546 	r = x * y
   4547 	if r != 1 {
   4548 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   4549 	}
   4550 	y = 0
   4551 	r = x * y
   4552 	if r != 0 {
   4553 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   4554 	}
   4555 	y = 1
   4556 	r = x * y
   4557 	if r != -1 {
   4558 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   4559 	}
   4560 	y = 32766
   4561 	r = x * y
   4562 	if r != -32766 {
   4563 		t.Errorf("-1 %s 32766 = %d, want -32766", "*", r)
   4564 	}
   4565 	y = 32767
   4566 	r = x * y
   4567 	if r != -32767 {
   4568 		t.Errorf("-1 %s 32767 = %d, want -32767", "*", r)
   4569 	}
   4570 	x = 0
   4571 	y = -32768
   4572 	r = x * y
   4573 	if r != 0 {
   4574 		t.Errorf("0 %s -32768 = %d, want 0", "*", r)
   4575 	}
   4576 	y = -32767
   4577 	r = x * y
   4578 	if r != 0 {
   4579 		t.Errorf("0 %s -32767 = %d, want 0", "*", r)
   4580 	}
   4581 	y = -1
   4582 	r = x * y
   4583 	if r != 0 {
   4584 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   4585 	}
   4586 	y = 0
   4587 	r = x * y
   4588 	if r != 0 {
   4589 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   4590 	}
   4591 	y = 1
   4592 	r = x * y
   4593 	if r != 0 {
   4594 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   4595 	}
   4596 	y = 32766
   4597 	r = x * y
   4598 	if r != 0 {
   4599 		t.Errorf("0 %s 32766 = %d, want 0", "*", r)
   4600 	}
   4601 	y = 32767
   4602 	r = x * y
   4603 	if r != 0 {
   4604 		t.Errorf("0 %s 32767 = %d, want 0", "*", r)
   4605 	}
   4606 	x = 1
   4607 	y = -32768
   4608 	r = x * y
   4609 	if r != -32768 {
   4610 		t.Errorf("1 %s -32768 = %d, want -32768", "*", r)
   4611 	}
   4612 	y = -32767
   4613 	r = x * y
   4614 	if r != -32767 {
   4615 		t.Errorf("1 %s -32767 = %d, want -32767", "*", r)
   4616 	}
   4617 	y = -1
   4618 	r = x * y
   4619 	if r != -1 {
   4620 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   4621 	}
   4622 	y = 0
   4623 	r = x * y
   4624 	if r != 0 {
   4625 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   4626 	}
   4627 	y = 1
   4628 	r = x * y
   4629 	if r != 1 {
   4630 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   4631 	}
   4632 	y = 32766
   4633 	r = x * y
   4634 	if r != 32766 {
   4635 		t.Errorf("1 %s 32766 = %d, want 32766", "*", r)
   4636 	}
   4637 	y = 32767
   4638 	r = x * y
   4639 	if r != 32767 {
   4640 		t.Errorf("1 %s 32767 = %d, want 32767", "*", r)
   4641 	}
   4642 	x = 32766
   4643 	y = -32768
   4644 	r = x * y
   4645 	if r != 0 {
   4646 		t.Errorf("32766 %s -32768 = %d, want 0", "*", r)
   4647 	}
   4648 	y = -32767
   4649 	r = x * y
   4650 	if r != 32766 {
   4651 		t.Errorf("32766 %s -32767 = %d, want 32766", "*", r)
   4652 	}
   4653 	y = -1
   4654 	r = x * y
   4655 	if r != -32766 {
   4656 		t.Errorf("32766 %s -1 = %d, want -32766", "*", r)
   4657 	}
   4658 	y = 0
   4659 	r = x * y
   4660 	if r != 0 {
   4661 		t.Errorf("32766 %s 0 = %d, want 0", "*", r)
   4662 	}
   4663 	y = 1
   4664 	r = x * y
   4665 	if r != 32766 {
   4666 		t.Errorf("32766 %s 1 = %d, want 32766", "*", r)
   4667 	}
   4668 	y = 32766
   4669 	r = x * y
   4670 	if r != 4 {
   4671 		t.Errorf("32766 %s 32766 = %d, want 4", "*", r)
   4672 	}
   4673 	y = 32767
   4674 	r = x * y
   4675 	if r != -32766 {
   4676 		t.Errorf("32766 %s 32767 = %d, want -32766", "*", r)
   4677 	}
   4678 	x = 32767
   4679 	y = -32768
   4680 	r = x * y
   4681 	if r != -32768 {
   4682 		t.Errorf("32767 %s -32768 = %d, want -32768", "*", r)
   4683 	}
   4684 	y = -32767
   4685 	r = x * y
   4686 	if r != -1 {
   4687 		t.Errorf("32767 %s -32767 = %d, want -1", "*", r)
   4688 	}
   4689 	y = -1
   4690 	r = x * y
   4691 	if r != -32767 {
   4692 		t.Errorf("32767 %s -1 = %d, want -32767", "*", r)
   4693 	}
   4694 	y = 0
   4695 	r = x * y
   4696 	if r != 0 {
   4697 		t.Errorf("32767 %s 0 = %d, want 0", "*", r)
   4698 	}
   4699 	y = 1
   4700 	r = x * y
   4701 	if r != 32767 {
   4702 		t.Errorf("32767 %s 1 = %d, want 32767", "*", r)
   4703 	}
   4704 	y = 32766
   4705 	r = x * y
   4706 	if r != -32766 {
   4707 		t.Errorf("32767 %s 32766 = %d, want -32766", "*", r)
   4708 	}
   4709 	y = 32767
   4710 	r = x * y
   4711 	if r != 1 {
   4712 		t.Errorf("32767 %s 32767 = %d, want 1", "*", r)
   4713 	}
   4714 }
   4715 func TestConstFoldint16mod(t *testing.T) {
   4716 	var x, y, r int16
   4717 	x = -32768
   4718 	y = -32768
   4719 	r = x % y
   4720 	if r != 0 {
   4721 		t.Errorf("-32768 %s -32768 = %d, want 0", "%", r)
   4722 	}
   4723 	y = -32767
   4724 	r = x % y
   4725 	if r != -1 {
   4726 		t.Errorf("-32768 %s -32767 = %d, want -1", "%", r)
   4727 	}
   4728 	y = -1
   4729 	r = x % y
   4730 	if r != 0 {
   4731 		t.Errorf("-32768 %s -1 = %d, want 0", "%", r)
   4732 	}
   4733 	y = 1
   4734 	r = x % y
   4735 	if r != 0 {
   4736 		t.Errorf("-32768 %s 1 = %d, want 0", "%", r)
   4737 	}
   4738 	y = 32766
   4739 	r = x % y
   4740 	if r != -2 {
   4741 		t.Errorf("-32768 %s 32766 = %d, want -2", "%", r)
   4742 	}
   4743 	y = 32767
   4744 	r = x % y
   4745 	if r != -1 {
   4746 		t.Errorf("-32768 %s 32767 = %d, want -1", "%", r)
   4747 	}
   4748 	x = -32767
   4749 	y = -32768
   4750 	r = x % y
   4751 	if r != -32767 {
   4752 		t.Errorf("-32767 %s -32768 = %d, want -32767", "%", r)
   4753 	}
   4754 	y = -32767
   4755 	r = x % y
   4756 	if r != 0 {
   4757 		t.Errorf("-32767 %s -32767 = %d, want 0", "%", r)
   4758 	}
   4759 	y = -1
   4760 	r = x % y
   4761 	if r != 0 {
   4762 		t.Errorf("-32767 %s -1 = %d, want 0", "%", r)
   4763 	}
   4764 	y = 1
   4765 	r = x % y
   4766 	if r != 0 {
   4767 		t.Errorf("-32767 %s 1 = %d, want 0", "%", r)
   4768 	}
   4769 	y = 32766
   4770 	r = x % y
   4771 	if r != -1 {
   4772 		t.Errorf("-32767 %s 32766 = %d, want -1", "%", r)
   4773 	}
   4774 	y = 32767
   4775 	r = x % y
   4776 	if r != 0 {
   4777 		t.Errorf("-32767 %s 32767 = %d, want 0", "%", r)
   4778 	}
   4779 	x = -1
   4780 	y = -32768
   4781 	r = x % y
   4782 	if r != -1 {
   4783 		t.Errorf("-1 %s -32768 = %d, want -1", "%", r)
   4784 	}
   4785 	y = -32767
   4786 	r = x % y
   4787 	if r != -1 {
   4788 		t.Errorf("-1 %s -32767 = %d, want -1", "%", r)
   4789 	}
   4790 	y = -1
   4791 	r = x % y
   4792 	if r != 0 {
   4793 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   4794 	}
   4795 	y = 1
   4796 	r = x % y
   4797 	if r != 0 {
   4798 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   4799 	}
   4800 	y = 32766
   4801 	r = x % y
   4802 	if r != -1 {
   4803 		t.Errorf("-1 %s 32766 = %d, want -1", "%", r)
   4804 	}
   4805 	y = 32767
   4806 	r = x % y
   4807 	if r != -1 {
   4808 		t.Errorf("-1 %s 32767 = %d, want -1", "%", r)
   4809 	}
   4810 	x = 0
   4811 	y = -32768
   4812 	r = x % y
   4813 	if r != 0 {
   4814 		t.Errorf("0 %s -32768 = %d, want 0", "%", r)
   4815 	}
   4816 	y = -32767
   4817 	r = x % y
   4818 	if r != 0 {
   4819 		t.Errorf("0 %s -32767 = %d, want 0", "%", r)
   4820 	}
   4821 	y = -1
   4822 	r = x % y
   4823 	if r != 0 {
   4824 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   4825 	}
   4826 	y = 1
   4827 	r = x % y
   4828 	if r != 0 {
   4829 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   4830 	}
   4831 	y = 32766
   4832 	r = x % y
   4833 	if r != 0 {
   4834 		t.Errorf("0 %s 32766 = %d, want 0", "%", r)
   4835 	}
   4836 	y = 32767
   4837 	r = x % y
   4838 	if r != 0 {
   4839 		t.Errorf("0 %s 32767 = %d, want 0", "%", r)
   4840 	}
   4841 	x = 1
   4842 	y = -32768
   4843 	r = x % y
   4844 	if r != 1 {
   4845 		t.Errorf("1 %s -32768 = %d, want 1", "%", r)
   4846 	}
   4847 	y = -32767
   4848 	r = x % y
   4849 	if r != 1 {
   4850 		t.Errorf("1 %s -32767 = %d, want 1", "%", r)
   4851 	}
   4852 	y = -1
   4853 	r = x % y
   4854 	if r != 0 {
   4855 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   4856 	}
   4857 	y = 1
   4858 	r = x % y
   4859 	if r != 0 {
   4860 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   4861 	}
   4862 	y = 32766
   4863 	r = x % y
   4864 	if r != 1 {
   4865 		t.Errorf("1 %s 32766 = %d, want 1", "%", r)
   4866 	}
   4867 	y = 32767
   4868 	r = x % y
   4869 	if r != 1 {
   4870 		t.Errorf("1 %s 32767 = %d, want 1", "%", r)
   4871 	}
   4872 	x = 32766
   4873 	y = -32768
   4874 	r = x % y
   4875 	if r != 32766 {
   4876 		t.Errorf("32766 %s -32768 = %d, want 32766", "%", r)
   4877 	}
   4878 	y = -32767
   4879 	r = x % y
   4880 	if r != 32766 {
   4881 		t.Errorf("32766 %s -32767 = %d, want 32766", "%", r)
   4882 	}
   4883 	y = -1
   4884 	r = x % y
   4885 	if r != 0 {
   4886 		t.Errorf("32766 %s -1 = %d, want 0", "%", r)
   4887 	}
   4888 	y = 1
   4889 	r = x % y
   4890 	if r != 0 {
   4891 		t.Errorf("32766 %s 1 = %d, want 0", "%", r)
   4892 	}
   4893 	y = 32766
   4894 	r = x % y
   4895 	if r != 0 {
   4896 		t.Errorf("32766 %s 32766 = %d, want 0", "%", r)
   4897 	}
   4898 	y = 32767
   4899 	r = x % y
   4900 	if r != 32766 {
   4901 		t.Errorf("32766 %s 32767 = %d, want 32766", "%", r)
   4902 	}
   4903 	x = 32767
   4904 	y = -32768
   4905 	r = x % y
   4906 	if r != 32767 {
   4907 		t.Errorf("32767 %s -32768 = %d, want 32767", "%", r)
   4908 	}
   4909 	y = -32767
   4910 	r = x % y
   4911 	if r != 0 {
   4912 		t.Errorf("32767 %s -32767 = %d, want 0", "%", r)
   4913 	}
   4914 	y = -1
   4915 	r = x % y
   4916 	if r != 0 {
   4917 		t.Errorf("32767 %s -1 = %d, want 0", "%", r)
   4918 	}
   4919 	y = 1
   4920 	r = x % y
   4921 	if r != 0 {
   4922 		t.Errorf("32767 %s 1 = %d, want 0", "%", r)
   4923 	}
   4924 	y = 32766
   4925 	r = x % y
   4926 	if r != 1 {
   4927 		t.Errorf("32767 %s 32766 = %d, want 1", "%", r)
   4928 	}
   4929 	y = 32767
   4930 	r = x % y
   4931 	if r != 0 {
   4932 		t.Errorf("32767 %s 32767 = %d, want 0", "%", r)
   4933 	}
   4934 }
   4935 func TestConstFolduint8add(t *testing.T) {
   4936 	var x, y, r uint8
   4937 	x = 0
   4938 	y = 0
   4939 	r = x + y
   4940 	if r != 0 {
   4941 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   4942 	}
   4943 	y = 1
   4944 	r = x + y
   4945 	if r != 1 {
   4946 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   4947 	}
   4948 	y = 255
   4949 	r = x + y
   4950 	if r != 255 {
   4951 		t.Errorf("0 %s 255 = %d, want 255", "+", r)
   4952 	}
   4953 	x = 1
   4954 	y = 0
   4955 	r = x + y
   4956 	if r != 1 {
   4957 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   4958 	}
   4959 	y = 1
   4960 	r = x + y
   4961 	if r != 2 {
   4962 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   4963 	}
   4964 	y = 255
   4965 	r = x + y
   4966 	if r != 0 {
   4967 		t.Errorf("1 %s 255 = %d, want 0", "+", r)
   4968 	}
   4969 	x = 255
   4970 	y = 0
   4971 	r = x + y
   4972 	if r != 255 {
   4973 		t.Errorf("255 %s 0 = %d, want 255", "+", r)
   4974 	}
   4975 	y = 1
   4976 	r = x + y
   4977 	if r != 0 {
   4978 		t.Errorf("255 %s 1 = %d, want 0", "+", r)
   4979 	}
   4980 	y = 255
   4981 	r = x + y
   4982 	if r != 254 {
   4983 		t.Errorf("255 %s 255 = %d, want 254", "+", r)
   4984 	}
   4985 }
   4986 func TestConstFolduint8sub(t *testing.T) {
   4987 	var x, y, r uint8
   4988 	x = 0
   4989 	y = 0
   4990 	r = x - y
   4991 	if r != 0 {
   4992 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   4993 	}
   4994 	y = 1
   4995 	r = x - y
   4996 	if r != 255 {
   4997 		t.Errorf("0 %s 1 = %d, want 255", "-", r)
   4998 	}
   4999 	y = 255
   5000 	r = x - y
   5001 	if r != 1 {
   5002 		t.Errorf("0 %s 255 = %d, want 1", "-", r)
   5003 	}
   5004 	x = 1
   5005 	y = 0
   5006 	r = x - y
   5007 	if r != 1 {
   5008 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   5009 	}
   5010 	y = 1
   5011 	r = x - y
   5012 	if r != 0 {
   5013 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   5014 	}
   5015 	y = 255
   5016 	r = x - y
   5017 	if r != 2 {
   5018 		t.Errorf("1 %s 255 = %d, want 2", "-", r)
   5019 	}
   5020 	x = 255
   5021 	y = 0
   5022 	r = x - y
   5023 	if r != 255 {
   5024 		t.Errorf("255 %s 0 = %d, want 255", "-", r)
   5025 	}
   5026 	y = 1
   5027 	r = x - y
   5028 	if r != 254 {
   5029 		t.Errorf("255 %s 1 = %d, want 254", "-", r)
   5030 	}
   5031 	y = 255
   5032 	r = x - y
   5033 	if r != 0 {
   5034 		t.Errorf("255 %s 255 = %d, want 0", "-", r)
   5035 	}
   5036 }
   5037 func TestConstFolduint8div(t *testing.T) {
   5038 	var x, y, r uint8
   5039 	x = 0
   5040 	y = 1
   5041 	r = x / y
   5042 	if r != 0 {
   5043 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   5044 	}
   5045 	y = 255
   5046 	r = x / y
   5047 	if r != 0 {
   5048 		t.Errorf("0 %s 255 = %d, want 0", "/", r)
   5049 	}
   5050 	x = 1
   5051 	y = 1
   5052 	r = x / y
   5053 	if r != 1 {
   5054 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   5055 	}
   5056 	y = 255
   5057 	r = x / y
   5058 	if r != 0 {
   5059 		t.Errorf("1 %s 255 = %d, want 0", "/", r)
   5060 	}
   5061 	x = 255
   5062 	y = 1
   5063 	r = x / y
   5064 	if r != 255 {
   5065 		t.Errorf("255 %s 1 = %d, want 255", "/", r)
   5066 	}
   5067 	y = 255
   5068 	r = x / y
   5069 	if r != 1 {
   5070 		t.Errorf("255 %s 255 = %d, want 1", "/", r)
   5071 	}
   5072 }
   5073 func TestConstFolduint8mul(t *testing.T) {
   5074 	var x, y, r uint8
   5075 	x = 0
   5076 	y = 0
   5077 	r = x * y
   5078 	if r != 0 {
   5079 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   5080 	}
   5081 	y = 1
   5082 	r = x * y
   5083 	if r != 0 {
   5084 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   5085 	}
   5086 	y = 255
   5087 	r = x * y
   5088 	if r != 0 {
   5089 		t.Errorf("0 %s 255 = %d, want 0", "*", r)
   5090 	}
   5091 	x = 1
   5092 	y = 0
   5093 	r = x * y
   5094 	if r != 0 {
   5095 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   5096 	}
   5097 	y = 1
   5098 	r = x * y
   5099 	if r != 1 {
   5100 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   5101 	}
   5102 	y = 255
   5103 	r = x * y
   5104 	if r != 255 {
   5105 		t.Errorf("1 %s 255 = %d, want 255", "*", r)
   5106 	}
   5107 	x = 255
   5108 	y = 0
   5109 	r = x * y
   5110 	if r != 0 {
   5111 		t.Errorf("255 %s 0 = %d, want 0", "*", r)
   5112 	}
   5113 	y = 1
   5114 	r = x * y
   5115 	if r != 255 {
   5116 		t.Errorf("255 %s 1 = %d, want 255", "*", r)
   5117 	}
   5118 	y = 255
   5119 	r = x * y
   5120 	if r != 1 {
   5121 		t.Errorf("255 %s 255 = %d, want 1", "*", r)
   5122 	}
   5123 }
   5124 func TestConstFolduint8mod(t *testing.T) {
   5125 	var x, y, r uint8
   5126 	x = 0
   5127 	y = 1
   5128 	r = x % y
   5129 	if r != 0 {
   5130 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   5131 	}
   5132 	y = 255
   5133 	r = x % y
   5134 	if r != 0 {
   5135 		t.Errorf("0 %s 255 = %d, want 0", "%", r)
   5136 	}
   5137 	x = 1
   5138 	y = 1
   5139 	r = x % y
   5140 	if r != 0 {
   5141 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   5142 	}
   5143 	y = 255
   5144 	r = x % y
   5145 	if r != 1 {
   5146 		t.Errorf("1 %s 255 = %d, want 1", "%", r)
   5147 	}
   5148 	x = 255
   5149 	y = 1
   5150 	r = x % y
   5151 	if r != 0 {
   5152 		t.Errorf("255 %s 1 = %d, want 0", "%", r)
   5153 	}
   5154 	y = 255
   5155 	r = x % y
   5156 	if r != 0 {
   5157 		t.Errorf("255 %s 255 = %d, want 0", "%", r)
   5158 	}
   5159 }
   5160 func TestConstFoldint8add(t *testing.T) {
   5161 	var x, y, r int8
   5162 	x = -128
   5163 	y = -128
   5164 	r = x + y
   5165 	if r != 0 {
   5166 		t.Errorf("-128 %s -128 = %d, want 0", "+", r)
   5167 	}
   5168 	y = -127
   5169 	r = x + y
   5170 	if r != 1 {
   5171 		t.Errorf("-128 %s -127 = %d, want 1", "+", r)
   5172 	}
   5173 	y = -1
   5174 	r = x + y
   5175 	if r != 127 {
   5176 		t.Errorf("-128 %s -1 = %d, want 127", "+", r)
   5177 	}
   5178 	y = 0
   5179 	r = x + y
   5180 	if r != -128 {
   5181 		t.Errorf("-128 %s 0 = %d, want -128", "+", r)
   5182 	}
   5183 	y = 1
   5184 	r = x + y
   5185 	if r != -127 {
   5186 		t.Errorf("-128 %s 1 = %d, want -127", "+", r)
   5187 	}
   5188 	y = 126
   5189 	r = x + y
   5190 	if r != -2 {
   5191 		t.Errorf("-128 %s 126 = %d, want -2", "+", r)
   5192 	}
   5193 	y = 127
   5194 	r = x + y
   5195 	if r != -1 {
   5196 		t.Errorf("-128 %s 127 = %d, want -1", "+", r)
   5197 	}
   5198 	x = -127
   5199 	y = -128
   5200 	r = x + y
   5201 	if r != 1 {
   5202 		t.Errorf("-127 %s -128 = %d, want 1", "+", r)
   5203 	}
   5204 	y = -127
   5205 	r = x + y
   5206 	if r != 2 {
   5207 		t.Errorf("-127 %s -127 = %d, want 2", "+", r)
   5208 	}
   5209 	y = -1
   5210 	r = x + y
   5211 	if r != -128 {
   5212 		t.Errorf("-127 %s -1 = %d, want -128", "+", r)
   5213 	}
   5214 	y = 0
   5215 	r = x + y
   5216 	if r != -127 {
   5217 		t.Errorf("-127 %s 0 = %d, want -127", "+", r)
   5218 	}
   5219 	y = 1
   5220 	r = x + y
   5221 	if r != -126 {
   5222 		t.Errorf("-127 %s 1 = %d, want -126", "+", r)
   5223 	}
   5224 	y = 126
   5225 	r = x + y
   5226 	if r != -1 {
   5227 		t.Errorf("-127 %s 126 = %d, want -1", "+", r)
   5228 	}
   5229 	y = 127
   5230 	r = x + y
   5231 	if r != 0 {
   5232 		t.Errorf("-127 %s 127 = %d, want 0", "+", r)
   5233 	}
   5234 	x = -1
   5235 	y = -128
   5236 	r = x + y
   5237 	if r != 127 {
   5238 		t.Errorf("-1 %s -128 = %d, want 127", "+", r)
   5239 	}
   5240 	y = -127
   5241 	r = x + y
   5242 	if r != -128 {
   5243 		t.Errorf("-1 %s -127 = %d, want -128", "+", r)
   5244 	}
   5245 	y = -1
   5246 	r = x + y
   5247 	if r != -2 {
   5248 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
   5249 	}
   5250 	y = 0
   5251 	r = x + y
   5252 	if r != -1 {
   5253 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
   5254 	}
   5255 	y = 1
   5256 	r = x + y
   5257 	if r != 0 {
   5258 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
   5259 	}
   5260 	y = 126
   5261 	r = x + y
   5262 	if r != 125 {
   5263 		t.Errorf("-1 %s 126 = %d, want 125", "+", r)
   5264 	}
   5265 	y = 127
   5266 	r = x + y
   5267 	if r != 126 {
   5268 		t.Errorf("-1 %s 127 = %d, want 126", "+", r)
   5269 	}
   5270 	x = 0
   5271 	y = -128
   5272 	r = x + y
   5273 	if r != -128 {
   5274 		t.Errorf("0 %s -128 = %d, want -128", "+", r)
   5275 	}
   5276 	y = -127
   5277 	r = x + y
   5278 	if r != -127 {
   5279 		t.Errorf("0 %s -127 = %d, want -127", "+", r)
   5280 	}
   5281 	y = -1
   5282 	r = x + y
   5283 	if r != -1 {
   5284 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
   5285 	}
   5286 	y = 0
   5287 	r = x + y
   5288 	if r != 0 {
   5289 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   5290 	}
   5291 	y = 1
   5292 	r = x + y
   5293 	if r != 1 {
   5294 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   5295 	}
   5296 	y = 126
   5297 	r = x + y
   5298 	if r != 126 {
   5299 		t.Errorf("0 %s 126 = %d, want 126", "+", r)
   5300 	}
   5301 	y = 127
   5302 	r = x + y
   5303 	if r != 127 {
   5304 		t.Errorf("0 %s 127 = %d, want 127", "+", r)
   5305 	}
   5306 	x = 1
   5307 	y = -128
   5308 	r = x + y
   5309 	if r != -127 {
   5310 		t.Errorf("1 %s -128 = %d, want -127", "+", r)
   5311 	}
   5312 	y = -127
   5313 	r = x + y
   5314 	if r != -126 {
   5315 		t.Errorf("1 %s -127 = %d, want -126", "+", r)
   5316 	}
   5317 	y = -1
   5318 	r = x + y
   5319 	if r != 0 {
   5320 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
   5321 	}
   5322 	y = 0
   5323 	r = x + y
   5324 	if r != 1 {
   5325 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   5326 	}
   5327 	y = 1
   5328 	r = x + y
   5329 	if r != 2 {
   5330 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   5331 	}
   5332 	y = 126
   5333 	r = x + y
   5334 	if r != 127 {
   5335 		t.Errorf("1 %s 126 = %d, want 127", "+", r)
   5336 	}
   5337 	y = 127
   5338 	r = x + y
   5339 	if r != -128 {
   5340 		t.Errorf("1 %s 127 = %d, want -128", "+", r)
   5341 	}
   5342 	x = 126
   5343 	y = -128
   5344 	r = x + y
   5345 	if r != -2 {
   5346 		t.Errorf("126 %s -128 = %d, want -2", "+", r)
   5347 	}
   5348 	y = -127
   5349 	r = x + y
   5350 	if r != -1 {
   5351 		t.Errorf("126 %s -127 = %d, want -1", "+", r)
   5352 	}
   5353 	y = -1
   5354 	r = x + y
   5355 	if r != 125 {
   5356 		t.Errorf("126 %s -1 = %d, want 125", "+", r)
   5357 	}
   5358 	y = 0
   5359 	r = x + y
   5360 	if r != 126 {
   5361 		t.Errorf("126 %s 0 = %d, want 126", "+", r)
   5362 	}
   5363 	y = 1
   5364 	r = x + y
   5365 	if r != 127 {
   5366 		t.Errorf("126 %s 1 = %d, want 127", "+", r)
   5367 	}
   5368 	y = 126
   5369 	r = x + y
   5370 	if r != -4 {
   5371 		t.Errorf("126 %s 126 = %d, want -4", "+", r)
   5372 	}
   5373 	y = 127
   5374 	r = x + y
   5375 	if r != -3 {
   5376 		t.Errorf("126 %s 127 = %d, want -3", "+", r)
   5377 	}
   5378 	x = 127
   5379 	y = -128
   5380 	r = x + y
   5381 	if r != -1 {
   5382 		t.Errorf("127 %s -128 = %d, want -1", "+", r)
   5383 	}
   5384 	y = -127
   5385 	r = x + y
   5386 	if r != 0 {
   5387 		t.Errorf("127 %s -127 = %d, want 0", "+", r)
   5388 	}
   5389 	y = -1
   5390 	r = x + y
   5391 	if r != 126 {
   5392 		t.Errorf("127 %s -1 = %d, want 126", "+", r)
   5393 	}
   5394 	y = 0
   5395 	r = x + y
   5396 	if r != 127 {
   5397 		t.Errorf("127 %s 0 = %d, want 127", "+", r)
   5398 	}
   5399 	y = 1
   5400 	r = x + y
   5401 	if r != -128 {
   5402 		t.Errorf("127 %s 1 = %d, want -128", "+", r)
   5403 	}
   5404 	y = 126
   5405 	r = x + y
   5406 	if r != -3 {
   5407 		t.Errorf("127 %s 126 = %d, want -3", "+", r)
   5408 	}
   5409 	y = 127
   5410 	r = x + y
   5411 	if r != -2 {
   5412 		t.Errorf("127 %s 127 = %d, want -2", "+", r)
   5413 	}
   5414 }
   5415 func TestConstFoldint8sub(t *testing.T) {
   5416 	var x, y, r int8
   5417 	x = -128
   5418 	y = -128
   5419 	r = x - y
   5420 	if r != 0 {
   5421 		t.Errorf("-128 %s -128 = %d, want 0", "-", r)
   5422 	}
   5423 	y = -127
   5424 	r = x - y
   5425 	if r != -1 {
   5426 		t.Errorf("-128 %s -127 = %d, want -1", "-", r)
   5427 	}
   5428 	y = -1
   5429 	r = x - y
   5430 	if r != -127 {
   5431 		t.Errorf("-128 %s -1 = %d, want -127", "-", r)
   5432 	}
   5433 	y = 0
   5434 	r = x - y
   5435 	if r != -128 {
   5436 		t.Errorf("-128 %s 0 = %d, want -128", "-", r)
   5437 	}
   5438 	y = 1
   5439 	r = x - y
   5440 	if r != 127 {
   5441 		t.Errorf("-128 %s 1 = %d, want 127", "-", r)
   5442 	}
   5443 	y = 126
   5444 	r = x - y
   5445 	if r != 2 {
   5446 		t.Errorf("-128 %s 126 = %d, want 2", "-", r)
   5447 	}
   5448 	y = 127
   5449 	r = x - y
   5450 	if r != 1 {
   5451 		t.Errorf("-128 %s 127 = %d, want 1", "-", r)
   5452 	}
   5453 	x = -127
   5454 	y = -128
   5455 	r = x - y
   5456 	if r != 1 {
   5457 		t.Errorf("-127 %s -128 = %d, want 1", "-", r)
   5458 	}
   5459 	y = -127
   5460 	r = x - y
   5461 	if r != 0 {
   5462 		t.Errorf("-127 %s -127 = %d, want 0", "-", r)
   5463 	}
   5464 	y = -1
   5465 	r = x - y
   5466 	if r != -126 {
   5467 		t.Errorf("-127 %s -1 = %d, want -126", "-", r)
   5468 	}
   5469 	y = 0
   5470 	r = x - y
   5471 	if r != -127 {
   5472 		t.Errorf("-127 %s 0 = %d, want -127", "-", r)
   5473 	}
   5474 	y = 1
   5475 	r = x - y
   5476 	if r != -128 {
   5477 		t.Errorf("-127 %s 1 = %d, want -128", "-", r)
   5478 	}
   5479 	y = 126
   5480 	r = x - y
   5481 	if r != 3 {
   5482 		t.Errorf("-127 %s 126 = %d, want 3", "-", r)
   5483 	}
   5484 	y = 127
   5485 	r = x - y
   5486 	if r != 2 {
   5487 		t.Errorf("-127 %s 127 = %d, want 2", "-", r)
   5488 	}
   5489 	x = -1
   5490 	y = -128
   5491 	r = x - y
   5492 	if r != 127 {
   5493 		t.Errorf("-1 %s -128 = %d, want 127", "-", r)
   5494 	}
   5495 	y = -127
   5496 	r = x - y
   5497 	if r != 126 {
   5498 		t.Errorf("-1 %s -127 = %d, want 126", "-", r)
   5499 	}
   5500 	y = -1
   5501 	r = x - y
   5502 	if r != 0 {
   5503 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
   5504 	}
   5505 	y = 0
   5506 	r = x - y
   5507 	if r != -1 {
   5508 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
   5509 	}
   5510 	y = 1
   5511 	r = x - y
   5512 	if r != -2 {
   5513 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
   5514 	}
   5515 	y = 126
   5516 	r = x - y
   5517 	if r != -127 {
   5518 		t.Errorf("-1 %s 126 = %d, want -127", "-", r)
   5519 	}
   5520 	y = 127
   5521 	r = x - y
   5522 	if r != -128 {
   5523 		t.Errorf("-1 %s 127 = %d, want -128", "-", r)
   5524 	}
   5525 	x = 0
   5526 	y = -128
   5527 	r = x - y
   5528 	if r != -128 {
   5529 		t.Errorf("0 %s -128 = %d, want -128", "-", r)
   5530 	}
   5531 	y = -127
   5532 	r = x - y
   5533 	if r != 127 {
   5534 		t.Errorf("0 %s -127 = %d, want 127", "-", r)
   5535 	}
   5536 	y = -1
   5537 	r = x - y
   5538 	if r != 1 {
   5539 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   5540 	}
   5541 	y = 0
   5542 	r = x - y
   5543 	if r != 0 {
   5544 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   5545 	}
   5546 	y = 1
   5547 	r = x - y
   5548 	if r != -1 {
   5549 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   5550 	}
   5551 	y = 126
   5552 	r = x - y
   5553 	if r != -126 {
   5554 		t.Errorf("0 %s 126 = %d, want -126", "-", r)
   5555 	}
   5556 	y = 127
   5557 	r = x - y
   5558 	if r != -127 {
   5559 		t.Errorf("0 %s 127 = %d, want -127", "-", r)
   5560 	}
   5561 	x = 1
   5562 	y = -128
   5563 	r = x - y
   5564 	if r != -127 {
   5565 		t.Errorf("1 %s -128 = %d, want -127", "-", r)
   5566 	}
   5567 	y = -127
   5568 	r = x - y
   5569 	if r != -128 {
   5570 		t.Errorf("1 %s -127 = %d, want -128", "-", r)
   5571 	}
   5572 	y = -1
   5573 	r = x - y
   5574 	if r != 2 {
   5575 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   5576 	}
   5577 	y = 0
   5578 	r = x - y
   5579 	if r != 1 {
   5580 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   5581 	}
   5582 	y = 1
   5583 	r = x - y
   5584 	if r != 0 {
   5585 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   5586 	}
   5587 	y = 126
   5588 	r = x - y
   5589 	if r != -125 {
   5590 		t.Errorf("1 %s 126 = %d, want -125", "-", r)
   5591 	}
   5592 	y = 127
   5593 	r = x - y
   5594 	if r != -126 {
   5595 		t.Errorf("1 %s 127 = %d, want -126", "-", r)
   5596 	}
   5597 	x = 126
   5598 	y = -128
   5599 	r = x - y
   5600 	if r != -2 {
   5601 		t.Errorf("126 %s -128 = %d, want -2", "-", r)
   5602 	}
   5603 	y = -127
   5604 	r = x - y
   5605 	if r != -3 {
   5606 		t.Errorf("126 %s -127 = %d, want -3", "-", r)
   5607 	}
   5608 	y = -1
   5609 	r = x - y
   5610 	if r != 127 {
   5611 		t.Errorf("126 %s -1 = %d, want 127", "-", r)
   5612 	}
   5613 	y = 0
   5614 	r = x - y
   5615 	if r != 126 {
   5616 		t.Errorf("126 %s 0 = %d, want 126", "-", r)
   5617 	}
   5618 	y = 1
   5619 	r = x - y
   5620 	if r != 125 {
   5621 		t.Errorf("126 %s 1 = %d, want 125", "-", r)
   5622 	}
   5623 	y = 126
   5624 	r = x - y
   5625 	if r != 0 {
   5626 		t.Errorf("126 %s 126 = %d, want 0", "-", r)
   5627 	}
   5628 	y = 127
   5629 	r = x - y
   5630 	if r != -1 {
   5631 		t.Errorf("126 %s 127 = %d, want -1", "-", r)
   5632 	}
   5633 	x = 127
   5634 	y = -128
   5635 	r = x - y
   5636 	if r != -1 {
   5637 		t.Errorf("127 %s -128 = %d, want -1", "-", r)
   5638 	}
   5639 	y = -127
   5640 	r = x - y
   5641 	if r != -2 {
   5642 		t.Errorf("127 %s -127 = %d, want -2", "-", r)
   5643 	}
   5644 	y = -1
   5645 	r = x - y
   5646 	if r != -128 {
   5647 		t.Errorf("127 %s -1 = %d, want -128", "-", r)
   5648 	}
   5649 	y = 0
   5650 	r = x - y
   5651 	if r != 127 {
   5652 		t.Errorf("127 %s 0 = %d, want 127", "-", r)
   5653 	}
   5654 	y = 1
   5655 	r = x - y
   5656 	if r != 126 {
   5657 		t.Errorf("127 %s 1 = %d, want 126", "-", r)
   5658 	}
   5659 	y = 126
   5660 	r = x - y
   5661 	if r != 1 {
   5662 		t.Errorf("127 %s 126 = %d, want 1", "-", r)
   5663 	}
   5664 	y = 127
   5665 	r = x - y
   5666 	if r != 0 {
   5667 		t.Errorf("127 %s 127 = %d, want 0", "-", r)
   5668 	}
   5669 }
   5670 func TestConstFoldint8div(t *testing.T) {
   5671 	var x, y, r int8
   5672 	x = -128
   5673 	y = -128
   5674 	r = x / y
   5675 	if r != 1 {
   5676 		t.Errorf("-128 %s -128 = %d, want 1", "/", r)
   5677 	}
   5678 	y = -127
   5679 	r = x / y
   5680 	if r != 1 {
   5681 		t.Errorf("-128 %s -127 = %d, want 1", "/", r)
   5682 	}
   5683 	y = -1
   5684 	r = x / y
   5685 	if r != -128 {
   5686 		t.Errorf("-128 %s -1 = %d, want -128", "/", r)
   5687 	}
   5688 	y = 1
   5689 	r = x / y
   5690 	if r != -128 {
   5691 		t.Errorf("-128 %s 1 = %d, want -128", "/", r)
   5692 	}
   5693 	y = 126
   5694 	r = x / y
   5695 	if r != -1 {
   5696 		t.Errorf("-128 %s 126 = %d, want -1", "/", r)
   5697 	}
   5698 	y = 127
   5699 	r = x / y
   5700 	if r != -1 {
   5701 		t.Errorf("-128 %s 127 = %d, want -1", "/", r)
   5702 	}
   5703 	x = -127
   5704 	y = -128
   5705 	r = x / y
   5706 	if r != 0 {
   5707 		t.Errorf("-127 %s -128 = %d, want 0", "/", r)
   5708 	}
   5709 	y = -127
   5710 	r = x / y
   5711 	if r != 1 {
   5712 		t.Errorf("-127 %s -127 = %d, want 1", "/", r)
   5713 	}
   5714 	y = -1
   5715 	r = x / y
   5716 	if r != 127 {
   5717 		t.Errorf("-127 %s -1 = %d, want 127", "/", r)
   5718 	}
   5719 	y = 1
   5720 	r = x / y
   5721 	if r != -127 {
   5722 		t.Errorf("-127 %s 1 = %d, want -127", "/", r)
   5723 	}
   5724 	y = 126
   5725 	r = x / y
   5726 	if r != -1 {
   5727 		t.Errorf("-127 %s 126 = %d, want -1", "/", r)
   5728 	}
   5729 	y = 127
   5730 	r = x / y
   5731 	if r != -1 {
   5732 		t.Errorf("-127 %s 127 = %d, want -1", "/", r)
   5733 	}
   5734 	x = -1
   5735 	y = -128
   5736 	r = x / y
   5737 	if r != 0 {
   5738 		t.Errorf("-1 %s -128 = %d, want 0", "/", r)
   5739 	}
   5740 	y = -127
   5741 	r = x / y
   5742 	if r != 0 {
   5743 		t.Errorf("-1 %s -127 = %d, want 0", "/", r)
   5744 	}
   5745 	y = -1
   5746 	r = x / y
   5747 	if r != 1 {
   5748 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   5749 	}
   5750 	y = 1
   5751 	r = x / y
   5752 	if r != -1 {
   5753 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   5754 	}
   5755 	y = 126
   5756 	r = x / y
   5757 	if r != 0 {
   5758 		t.Errorf("-1 %s 126 = %d, want 0", "/", r)
   5759 	}
   5760 	y = 127
   5761 	r = x / y
   5762 	if r != 0 {
   5763 		t.Errorf("-1 %s 127 = %d, want 0", "/", r)
   5764 	}
   5765 	x = 0
   5766 	y = -128
   5767 	r = x / y
   5768 	if r != 0 {
   5769 		t.Errorf("0 %s -128 = %d, want 0", "/", r)
   5770 	}
   5771 	y = -127
   5772 	r = x / y
   5773 	if r != 0 {
   5774 		t.Errorf("0 %s -127 = %d, want 0", "/", r)
   5775 	}
   5776 	y = -1
   5777 	r = x / y
   5778 	if r != 0 {
   5779 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   5780 	}
   5781 	y = 1
   5782 	r = x / y
   5783 	if r != 0 {
   5784 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   5785 	}
   5786 	y = 126
   5787 	r = x / y
   5788 	if r != 0 {
   5789 		t.Errorf("0 %s 126 = %d, want 0", "/", r)
   5790 	}
   5791 	y = 127
   5792 	r = x / y
   5793 	if r != 0 {
   5794 		t.Errorf("0 %s 127 = %d, want 0", "/", r)
   5795 	}
   5796 	x = 1
   5797 	y = -128
   5798 	r = x / y
   5799 	if r != 0 {
   5800 		t.Errorf("1 %s -128 = %d, want 0", "/", r)
   5801 	}
   5802 	y = -127
   5803 	r = x / y
   5804 	if r != 0 {
   5805 		t.Errorf("1 %s -127 = %d, want 0", "/", r)
   5806 	}
   5807 	y = -1
   5808 	r = x / y
   5809 	if r != -1 {
   5810 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   5811 	}
   5812 	y = 1
   5813 	r = x / y
   5814 	if r != 1 {
   5815 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   5816 	}
   5817 	y = 126
   5818 	r = x / y
   5819 	if r != 0 {
   5820 		t.Errorf("1 %s 126 = %d, want 0", "/", r)
   5821 	}
   5822 	y = 127
   5823 	r = x / y
   5824 	if r != 0 {
   5825 		t.Errorf("1 %s 127 = %d, want 0", "/", r)
   5826 	}
   5827 	x = 126
   5828 	y = -128
   5829 	r = x / y
   5830 	if r != 0 {
   5831 		t.Errorf("126 %s -128 = %d, want 0", "/", r)
   5832 	}
   5833 	y = -127
   5834 	r = x / y
   5835 	if r != 0 {
   5836 		t.Errorf("126 %s -127 = %d, want 0", "/", r)
   5837 	}
   5838 	y = -1
   5839 	r = x / y
   5840 	if r != -126 {
   5841 		t.Errorf("126 %s -1 = %d, want -126", "/", r)
   5842 	}
   5843 	y = 1
   5844 	r = x / y
   5845 	if r != 126 {
   5846 		t.Errorf("126 %s 1 = %d, want 126", "/", r)
   5847 	}
   5848 	y = 126
   5849 	r = x / y
   5850 	if r != 1 {
   5851 		t.Errorf("126 %s 126 = %d, want 1", "/", r)
   5852 	}
   5853 	y = 127
   5854 	r = x / y
   5855 	if r != 0 {
   5856 		t.Errorf("126 %s 127 = %d, want 0", "/", r)
   5857 	}
   5858 	x = 127
   5859 	y = -128
   5860 	r = x / y
   5861 	if r != 0 {
   5862 		t.Errorf("127 %s -128 = %d, want 0", "/", r)
   5863 	}
   5864 	y = -127
   5865 	r = x / y
   5866 	if r != -1 {
   5867 		t.Errorf("127 %s -127 = %d, want -1", "/", r)
   5868 	}
   5869 	y = -1
   5870 	r = x / y
   5871 	if r != -127 {
   5872 		t.Errorf("127 %s -1 = %d, want -127", "/", r)
   5873 	}
   5874 	y = 1
   5875 	r = x / y
   5876 	if r != 127 {
   5877 		t.Errorf("127 %s 1 = %d, want 127", "/", r)
   5878 	}
   5879 	y = 126
   5880 	r = x / y
   5881 	if r != 1 {
   5882 		t.Errorf("127 %s 126 = %d, want 1", "/", r)
   5883 	}
   5884 	y = 127
   5885 	r = x / y
   5886 	if r != 1 {
   5887 		t.Errorf("127 %s 127 = %d, want 1", "/", r)
   5888 	}
   5889 }
   5890 func TestConstFoldint8mul(t *testing.T) {
   5891 	var x, y, r int8
   5892 	x = -128
   5893 	y = -128
   5894 	r = x * y
   5895 	if r != 0 {
   5896 		t.Errorf("-128 %s -128 = %d, want 0", "*", r)
   5897 	}
   5898 	y = -127
   5899 	r = x * y
   5900 	if r != -128 {
   5901 		t.Errorf("-128 %s -127 = %d, want -128", "*", r)
   5902 	}
   5903 	y = -1
   5904 	r = x * y
   5905 	if r != -128 {
   5906 		t.Errorf("-128 %s -1 = %d, want -128", "*", r)
   5907 	}
   5908 	y = 0
   5909 	r = x * y
   5910 	if r != 0 {
   5911 		t.Errorf("-128 %s 0 = %d, want 0", "*", r)
   5912 	}
   5913 	y = 1
   5914 	r = x * y
   5915 	if r != -128 {
   5916 		t.Errorf("-128 %s 1 = %d, want -128", "*", r)
   5917 	}
   5918 	y = 126
   5919 	r = x * y
   5920 	if r != 0 {
   5921 		t.Errorf("-128 %s 126 = %d, want 0", "*", r)
   5922 	}
   5923 	y = 127
   5924 	r = x * y
   5925 	if r != -128 {
   5926 		t.Errorf("-128 %s 127 = %d, want -128", "*", r)
   5927 	}
   5928 	x = -127
   5929 	y = -128
   5930 	r = x * y
   5931 	if r != -128 {
   5932 		t.Errorf("-127 %s -128 = %d, want -128", "*", r)
   5933 	}
   5934 	y = -127
   5935 	r = x * y
   5936 	if r != 1 {
   5937 		t.Errorf("-127 %s -127 = %d, want 1", "*", r)
   5938 	}
   5939 	y = -1
   5940 	r = x * y
   5941 	if r != 127 {
   5942 		t.Errorf("-127 %s -1 = %d, want 127", "*", r)
   5943 	}
   5944 	y = 0
   5945 	r = x * y
   5946 	if r != 0 {
   5947 		t.Errorf("-127 %s 0 = %d, want 0", "*", r)
   5948 	}
   5949 	y = 1
   5950 	r = x * y
   5951 	if r != -127 {
   5952 		t.Errorf("-127 %s 1 = %d, want -127", "*", r)
   5953 	}
   5954 	y = 126
   5955 	r = x * y
   5956 	if r != 126 {
   5957 		t.Errorf("-127 %s 126 = %d, want 126", "*", r)
   5958 	}
   5959 	y = 127
   5960 	r = x * y
   5961 	if r != -1 {
   5962 		t.Errorf("-127 %s 127 = %d, want -1", "*", r)
   5963 	}
   5964 	x = -1
   5965 	y = -128
   5966 	r = x * y
   5967 	if r != -128 {
   5968 		t.Errorf("-1 %s -128 = %d, want -128", "*", r)
   5969 	}
   5970 	y = -127
   5971 	r = x * y
   5972 	if r != 127 {
   5973 		t.Errorf("-1 %s -127 = %d, want 127", "*", r)
   5974 	}
   5975 	y = -1
   5976 	r = x * y
   5977 	if r != 1 {
   5978 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   5979 	}
   5980 	y = 0
   5981 	r = x * y
   5982 	if r != 0 {
   5983 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   5984 	}
   5985 	y = 1
   5986 	r = x * y
   5987 	if r != -1 {
   5988 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   5989 	}
   5990 	y = 126
   5991 	r = x * y
   5992 	if r != -126 {
   5993 		t.Errorf("-1 %s 126 = %d, want -126", "*", r)
   5994 	}
   5995 	y = 127
   5996 	r = x * y
   5997 	if r != -127 {
   5998 		t.Errorf("-1 %s 127 = %d, want -127", "*", r)
   5999 	}
   6000 	x = 0
   6001 	y = -128
   6002 	r = x * y
   6003 	if r != 0 {
   6004 		t.Errorf("0 %s -128 = %d, want 0", "*", r)
   6005 	}
   6006 	y = -127
   6007 	r = x * y
   6008 	if r != 0 {
   6009 		t.Errorf("0 %s -127 = %d, want 0", "*", r)
   6010 	}
   6011 	y = -1
   6012 	r = x * y
   6013 	if r != 0 {
   6014 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   6015 	}
   6016 	y = 0
   6017 	r = x * y
   6018 	if r != 0 {
   6019 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   6020 	}
   6021 	y = 1
   6022 	r = x * y
   6023 	if r != 0 {
   6024 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   6025 	}
   6026 	y = 126
   6027 	r = x * y
   6028 	if r != 0 {
   6029 		t.Errorf("0 %s 126 = %d, want 0", "*", r)
   6030 	}
   6031 	y = 127
   6032 	r = x * y
   6033 	if r != 0 {
   6034 		t.Errorf("0 %s 127 = %d, want 0", "*", r)
   6035 	}
   6036 	x = 1
   6037 	y = -128
   6038 	r = x * y
   6039 	if r != -128 {
   6040 		t.Errorf("1 %s -128 = %d, want -128", "*", r)
   6041 	}
   6042 	y = -127
   6043 	r = x * y
   6044 	if r != -127 {
   6045 		t.Errorf("1 %s -127 = %d, want -127", "*", r)
   6046 	}
   6047 	y = -1
   6048 	r = x * y
   6049 	if r != -1 {
   6050 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   6051 	}
   6052 	y = 0
   6053 	r = x * y
   6054 	if r != 0 {
   6055 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   6056 	}
   6057 	y = 1
   6058 	r = x * y
   6059 	if r != 1 {
   6060 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   6061 	}
   6062 	y = 126
   6063 	r = x * y
   6064 	if r != 126 {
   6065 		t.Errorf("1 %s 126 = %d, want 126", "*", r)
   6066 	}
   6067 	y = 127
   6068 	r = x * y
   6069 	if r != 127 {
   6070 		t.Errorf("1 %s 127 = %d, want 127", "*", r)
   6071 	}
   6072 	x = 126
   6073 	y = -128
   6074 	r = x * y
   6075 	if r != 0 {
   6076 		t.Errorf("126 %s -128 = %d, want 0", "*", r)
   6077 	}
   6078 	y = -127
   6079 	r = x * y
   6080 	if r != 126 {
   6081 		t.Errorf("126 %s -127 = %d, want 126", "*", r)
   6082 	}
   6083 	y = -1
   6084 	r = x * y
   6085 	if r != -126 {
   6086 		t.Errorf("126 %s -1 = %d, want -126", "*", r)
   6087 	}
   6088 	y = 0
   6089 	r = x * y
   6090 	if r != 0 {
   6091 		t.Errorf("126 %s 0 = %d, want 0", "*", r)
   6092 	}
   6093 	y = 1
   6094 	r = x * y
   6095 	if r != 126 {
   6096 		t.Errorf("126 %s 1 = %d, want 126", "*", r)
   6097 	}
   6098 	y = 126
   6099 	r = x * y
   6100 	if r != 4 {
   6101 		t.Errorf("126 %s 126 = %d, want 4", "*", r)
   6102 	}
   6103 	y = 127
   6104 	r = x * y
   6105 	if r != -126 {
   6106 		t.Errorf("126 %s 127 = %d, want -126", "*", r)
   6107 	}
   6108 	x = 127
   6109 	y = -128
   6110 	r = x * y
   6111 	if r != -128 {
   6112 		t.Errorf("127 %s -128 = %d, want -128", "*", r)
   6113 	}
   6114 	y = -127
   6115 	r = x * y
   6116 	if r != -1 {
   6117 		t.Errorf("127 %s -127 = %d, want -1", "*", r)
   6118 	}
   6119 	y = -1
   6120 	r = x * y
   6121 	if r != -127 {
   6122 		t.Errorf("127 %s -1 = %d, want -127", "*", r)
   6123 	}
   6124 	y = 0
   6125 	r = x * y
   6126 	if r != 0 {
   6127 		t.Errorf("127 %s 0 = %d, want 0", "*", r)
   6128 	}
   6129 	y = 1
   6130 	r = x * y
   6131 	if r != 127 {
   6132 		t.Errorf("127 %s 1 = %d, want 127", "*", r)
   6133 	}
   6134 	y = 126
   6135 	r = x * y
   6136 	if r != -126 {
   6137 		t.Errorf("127 %s 126 = %d, want -126", "*", r)
   6138 	}
   6139 	y = 127
   6140 	r = x * y
   6141 	if r != 1 {
   6142 		t.Errorf("127 %s 127 = %d, want 1", "*", r)
   6143 	}
   6144 }
   6145 func TestConstFoldint8mod(t *testing.T) {
   6146 	var x, y, r int8
   6147 	x = -128
   6148 	y = -128
   6149 	r = x % y
   6150 	if r != 0 {
   6151 		t.Errorf("-128 %s -128 = %d, want 0", "%", r)
   6152 	}
   6153 	y = -127
   6154 	r = x % y
   6155 	if r != -1 {
   6156 		t.Errorf("-128 %s -127 = %d, want -1", "%", r)
   6157 	}
   6158 	y = -1
   6159 	r = x % y
   6160 	if r != 0 {
   6161 		t.Errorf("-128 %s -1 = %d, want 0", "%", r)
   6162 	}
   6163 	y = 1
   6164 	r = x % y
   6165 	if r != 0 {
   6166 		t.Errorf("-128 %s 1 = %d, want 0", "%", r)
   6167 	}
   6168 	y = 126
   6169 	r = x % y
   6170 	if r != -2 {
   6171 		t.Errorf("-128 %s 126 = %d, want -2", "%", r)
   6172 	}
   6173 	y = 127
   6174 	r = x % y
   6175 	if r != -1 {
   6176 		t.Errorf("-128 %s 127 = %d, want -1", "%", r)
   6177 	}
   6178 	x = -127
   6179 	y = -128
   6180 	r = x % y
   6181 	if r != -127 {
   6182 		t.Errorf("-127 %s -128 = %d, want -127", "%", r)
   6183 	}
   6184 	y = -127
   6185 	r = x % y
   6186 	if r != 0 {
   6187 		t.Errorf("-127 %s -127 = %d, want 0", "%", r)
   6188 	}
   6189 	y = -1
   6190 	r = x % y
   6191 	if r != 0 {
   6192 		t.Errorf("-127 %s -1 = %d, want 0", "%", r)
   6193 	}
   6194 	y = 1
   6195 	r = x % y
   6196 	if r != 0 {
   6197 		t.Errorf("-127 %s 1 = %d, want 0", "%", r)
   6198 	}
   6199 	y = 126
   6200 	r = x % y
   6201 	if r != -1 {
   6202 		t.Errorf("-127 %s 126 = %d, want -1", "%", r)
   6203 	}
   6204 	y = 127
   6205 	r = x % y
   6206 	if r != 0 {
   6207 		t.Errorf("-127 %s 127 = %d, want 0", "%", r)
   6208 	}
   6209 	x = -1
   6210 	y = -128
   6211 	r = x % y
   6212 	if r != -1 {
   6213 		t.Errorf("-1 %s -128 = %d, want -1", "%", r)
   6214 	}
   6215 	y = -127
   6216 	r = x % y
   6217 	if r != -1 {
   6218 		t.Errorf("-1 %s -127 = %d, want -1", "%", r)
   6219 	}
   6220 	y = -1
   6221 	r = x % y
   6222 	if r != 0 {
   6223 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   6224 	}
   6225 	y = 1
   6226 	r = x % y
   6227 	if r != 0 {
   6228 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   6229 	}
   6230 	y = 126
   6231 	r = x % y
   6232 	if r != -1 {
   6233 		t.Errorf("-1 %s 126 = %d, want -1", "%", r)
   6234 	}
   6235 	y = 127
   6236 	r = x % y
   6237 	if r != -1 {
   6238 		t.Errorf("-1 %s 127 = %d, want -1", "%", r)
   6239 	}
   6240 	x = 0
   6241 	y = -128
   6242 	r = x % y
   6243 	if r != 0 {
   6244 		t.Errorf("0 %s -128 = %d, want 0", "%", r)
   6245 	}
   6246 	y = -127
   6247 	r = x % y
   6248 	if r != 0 {
   6249 		t.Errorf("0 %s -127 = %d, want 0", "%", r)
   6250 	}
   6251 	y = -1
   6252 	r = x % y
   6253 	if r != 0 {
   6254 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   6255 	}
   6256 	y = 1
   6257 	r = x % y
   6258 	if r != 0 {
   6259 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   6260 	}
   6261 	y = 126
   6262 	r = x % y
   6263 	if r != 0 {
   6264 		t.Errorf("0 %s 126 = %d, want 0", "%", r)
   6265 	}
   6266 	y = 127
   6267 	r = x % y
   6268 	if r != 0 {
   6269 		t.Errorf("0 %s 127 = %d, want 0", "%", r)
   6270 	}
   6271 	x = 1
   6272 	y = -128
   6273 	r = x % y
   6274 	if r != 1 {
   6275 		t.Errorf("1 %s -128 = %d, want 1", "%", r)
   6276 	}
   6277 	y = -127
   6278 	r = x % y
   6279 	if r != 1 {
   6280 		t.Errorf("1 %s -127 = %d, want 1", "%", r)
   6281 	}
   6282 	y = -1
   6283 	r = x % y
   6284 	if r != 0 {
   6285 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   6286 	}
   6287 	y = 1
   6288 	r = x % y
   6289 	if r != 0 {
   6290 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   6291 	}
   6292 	y = 126
   6293 	r = x % y
   6294 	if r != 1 {
   6295 		t.Errorf("1 %s 126 = %d, want 1", "%", r)
   6296 	}
   6297 	y = 127
   6298 	r = x % y
   6299 	if r != 1 {
   6300 		t.Errorf("1 %s 127 = %d, want 1", "%", r)
   6301 	}
   6302 	x = 126
   6303 	y = -128
   6304 	r = x % y
   6305 	if r != 126 {
   6306 		t.Errorf("126 %s -128 = %d, want 126", "%", r)
   6307 	}
   6308 	y = -127
   6309 	r = x % y
   6310 	if r != 126 {
   6311 		t.Errorf("126 %s -127 = %d, want 126", "%", r)
   6312 	}
   6313 	y = -1
   6314 	r = x % y
   6315 	if r != 0 {
   6316 		t.Errorf("126 %s -1 = %d, want 0", "%", r)
   6317 	}
   6318 	y = 1
   6319 	r = x % y
   6320 	if r != 0 {
   6321 		t.Errorf("126 %s 1 = %d, want 0", "%", r)
   6322 	}
   6323 	y = 126
   6324 	r = x % y
   6325 	if r != 0 {
   6326 		t.Errorf("126 %s 126 = %d, want 0", "%", r)
   6327 	}
   6328 	y = 127
   6329 	r = x % y
   6330 	if r != 126 {
   6331 		t.Errorf("126 %s 127 = %d, want 126", "%", r)
   6332 	}
   6333 	x = 127
   6334 	y = -128
   6335 	r = x % y
   6336 	if r != 127 {
   6337 		t.Errorf("127 %s -128 = %d, want 127", "%", r)
   6338 	}
   6339 	y = -127
   6340 	r = x % y
   6341 	if r != 0 {
   6342 		t.Errorf("127 %s -127 = %d, want 0", "%", r)
   6343 	}
   6344 	y = -1
   6345 	r = x % y
   6346 	if r != 0 {
   6347 		t.Errorf("127 %s -1 = %d, want 0", "%", r)
   6348 	}
   6349 	y = 1
   6350 	r = x % y
   6351 	if r != 0 {
   6352 		t.Errorf("127 %s 1 = %d, want 0", "%", r)
   6353 	}
   6354 	y = 126
   6355 	r = x % y
   6356 	if r != 1 {
   6357 		t.Errorf("127 %s 126 = %d, want 1", "%", r)
   6358 	}
   6359 	y = 127
   6360 	r = x % y
   6361 	if r != 0 {
   6362 		t.Errorf("127 %s 127 = %d, want 0", "%", r)
   6363 	}
   6364 }
   6365 func TestConstFolduint64uint64lsh(t *testing.T) {
   6366 	var x, r uint64
   6367 	var y uint64
   6368 	x = 0
   6369 	y = 0
   6370 	r = x << y
   6371 	if r != 0 {
   6372 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6373 	}
   6374 	y = 1
   6375 	r = x << y
   6376 	if r != 0 {
   6377 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6378 	}
   6379 	y = 4294967296
   6380 	r = x << y
   6381 	if r != 0 {
   6382 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   6383 	}
   6384 	y = 18446744073709551615
   6385 	r = x << y
   6386 	if r != 0 {
   6387 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   6388 	}
   6389 	x = 1
   6390 	y = 0
   6391 	r = x << y
   6392 	if r != 1 {
   6393 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6394 	}
   6395 	y = 1
   6396 	r = x << y
   6397 	if r != 2 {
   6398 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6399 	}
   6400 	y = 4294967296
   6401 	r = x << y
   6402 	if r != 0 {
   6403 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   6404 	}
   6405 	y = 18446744073709551615
   6406 	r = x << y
   6407 	if r != 0 {
   6408 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   6409 	}
   6410 	x = 4294967296
   6411 	y = 0
   6412 	r = x << y
   6413 	if r != 4294967296 {
   6414 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6415 	}
   6416 	y = 1
   6417 	r = x << y
   6418 	if r != 8589934592 {
   6419 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6420 	}
   6421 	y = 4294967296
   6422 	r = x << y
   6423 	if r != 0 {
   6424 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "<<", r)
   6425 	}
   6426 	y = 18446744073709551615
   6427 	r = x << y
   6428 	if r != 0 {
   6429 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "<<", r)
   6430 	}
   6431 	x = 18446744073709551615
   6432 	y = 0
   6433 	r = x << y
   6434 	if r != 18446744073709551615 {
   6435 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6436 	}
   6437 	y = 1
   6438 	r = x << y
   6439 	if r != 18446744073709551614 {
   6440 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6441 	}
   6442 	y = 4294967296
   6443 	r = x << y
   6444 	if r != 0 {
   6445 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 0", "<<", r)
   6446 	}
   6447 	y = 18446744073709551615
   6448 	r = x << y
   6449 	if r != 0 {
   6450 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "<<", r)
   6451 	}
   6452 }
   6453 func TestConstFolduint64uint64rsh(t *testing.T) {
   6454 	var x, r uint64
   6455 	var y uint64
   6456 	x = 0
   6457 	y = 0
   6458 	r = x >> y
   6459 	if r != 0 {
   6460 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6461 	}
   6462 	y = 1
   6463 	r = x >> y
   6464 	if r != 0 {
   6465 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6466 	}
   6467 	y = 4294967296
   6468 	r = x >> y
   6469 	if r != 0 {
   6470 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   6471 	}
   6472 	y = 18446744073709551615
   6473 	r = x >> y
   6474 	if r != 0 {
   6475 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   6476 	}
   6477 	x = 1
   6478 	y = 0
   6479 	r = x >> y
   6480 	if r != 1 {
   6481 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6482 	}
   6483 	y = 1
   6484 	r = x >> y
   6485 	if r != 0 {
   6486 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6487 	}
   6488 	y = 4294967296
   6489 	r = x >> y
   6490 	if r != 0 {
   6491 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   6492 	}
   6493 	y = 18446744073709551615
   6494 	r = x >> y
   6495 	if r != 0 {
   6496 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   6497 	}
   6498 	x = 4294967296
   6499 	y = 0
   6500 	r = x >> y
   6501 	if r != 4294967296 {
   6502 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6503 	}
   6504 	y = 1
   6505 	r = x >> y
   6506 	if r != 2147483648 {
   6507 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6508 	}
   6509 	y = 4294967296
   6510 	r = x >> y
   6511 	if r != 0 {
   6512 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", ">>", r)
   6513 	}
   6514 	y = 18446744073709551615
   6515 	r = x >> y
   6516 	if r != 0 {
   6517 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", ">>", r)
   6518 	}
   6519 	x = 18446744073709551615
   6520 	y = 0
   6521 	r = x >> y
   6522 	if r != 18446744073709551615 {
   6523 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6524 	}
   6525 	y = 1
   6526 	r = x >> y
   6527 	if r != 9223372036854775807 {
   6528 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6529 	}
   6530 	y = 4294967296
   6531 	r = x >> y
   6532 	if r != 0 {
   6533 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 0", ">>", r)
   6534 	}
   6535 	y = 18446744073709551615
   6536 	r = x >> y
   6537 	if r != 0 {
   6538 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", ">>", r)
   6539 	}
   6540 }
   6541 func TestConstFolduint64uint32lsh(t *testing.T) {
   6542 	var x, r uint64
   6543 	var y uint32
   6544 	x = 0
   6545 	y = 0
   6546 	r = x << y
   6547 	if r != 0 {
   6548 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6549 	}
   6550 	y = 1
   6551 	r = x << y
   6552 	if r != 0 {
   6553 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6554 	}
   6555 	y = 4294967295
   6556 	r = x << y
   6557 	if r != 0 {
   6558 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   6559 	}
   6560 	x = 1
   6561 	y = 0
   6562 	r = x << y
   6563 	if r != 1 {
   6564 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6565 	}
   6566 	y = 1
   6567 	r = x << y
   6568 	if r != 2 {
   6569 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6570 	}
   6571 	y = 4294967295
   6572 	r = x << y
   6573 	if r != 0 {
   6574 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   6575 	}
   6576 	x = 4294967296
   6577 	y = 0
   6578 	r = x << y
   6579 	if r != 4294967296 {
   6580 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6581 	}
   6582 	y = 1
   6583 	r = x << y
   6584 	if r != 8589934592 {
   6585 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6586 	}
   6587 	y = 4294967295
   6588 	r = x << y
   6589 	if r != 0 {
   6590 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", "<<", r)
   6591 	}
   6592 	x = 18446744073709551615
   6593 	y = 0
   6594 	r = x << y
   6595 	if r != 18446744073709551615 {
   6596 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6597 	}
   6598 	y = 1
   6599 	r = x << y
   6600 	if r != 18446744073709551614 {
   6601 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6602 	}
   6603 	y = 4294967295
   6604 	r = x << y
   6605 	if r != 0 {
   6606 		t.Errorf("18446744073709551615 %s 4294967295 = %d, want 0", "<<", r)
   6607 	}
   6608 }
   6609 func TestConstFolduint64uint32rsh(t *testing.T) {
   6610 	var x, r uint64
   6611 	var y uint32
   6612 	x = 0
   6613 	y = 0
   6614 	r = x >> y
   6615 	if r != 0 {
   6616 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6617 	}
   6618 	y = 1
   6619 	r = x >> y
   6620 	if r != 0 {
   6621 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6622 	}
   6623 	y = 4294967295
   6624 	r = x >> y
   6625 	if r != 0 {
   6626 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   6627 	}
   6628 	x = 1
   6629 	y = 0
   6630 	r = x >> y
   6631 	if r != 1 {
   6632 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6633 	}
   6634 	y = 1
   6635 	r = x >> y
   6636 	if r != 0 {
   6637 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6638 	}
   6639 	y = 4294967295
   6640 	r = x >> y
   6641 	if r != 0 {
   6642 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   6643 	}
   6644 	x = 4294967296
   6645 	y = 0
   6646 	r = x >> y
   6647 	if r != 4294967296 {
   6648 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6649 	}
   6650 	y = 1
   6651 	r = x >> y
   6652 	if r != 2147483648 {
   6653 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6654 	}
   6655 	y = 4294967295
   6656 	r = x >> y
   6657 	if r != 0 {
   6658 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", ">>", r)
   6659 	}
   6660 	x = 18446744073709551615
   6661 	y = 0
   6662 	r = x >> y
   6663 	if r != 18446744073709551615 {
   6664 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6665 	}
   6666 	y = 1
   6667 	r = x >> y
   6668 	if r != 9223372036854775807 {
   6669 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6670 	}
   6671 	y = 4294967295
   6672 	r = x >> y
   6673 	if r != 0 {
   6674 		t.Errorf("18446744073709551615 %s 4294967295 = %d, want 0", ">>", r)
   6675 	}
   6676 }
   6677 func TestConstFolduint64uint16lsh(t *testing.T) {
   6678 	var x, r uint64
   6679 	var y uint16
   6680 	x = 0
   6681 	y = 0
   6682 	r = x << y
   6683 	if r != 0 {
   6684 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6685 	}
   6686 	y = 1
   6687 	r = x << y
   6688 	if r != 0 {
   6689 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6690 	}
   6691 	y = 65535
   6692 	r = x << y
   6693 	if r != 0 {
   6694 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   6695 	}
   6696 	x = 1
   6697 	y = 0
   6698 	r = x << y
   6699 	if r != 1 {
   6700 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6701 	}
   6702 	y = 1
   6703 	r = x << y
   6704 	if r != 2 {
   6705 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6706 	}
   6707 	y = 65535
   6708 	r = x << y
   6709 	if r != 0 {
   6710 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   6711 	}
   6712 	x = 4294967296
   6713 	y = 0
   6714 	r = x << y
   6715 	if r != 4294967296 {
   6716 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6717 	}
   6718 	y = 1
   6719 	r = x << y
   6720 	if r != 8589934592 {
   6721 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6722 	}
   6723 	y = 65535
   6724 	r = x << y
   6725 	if r != 0 {
   6726 		t.Errorf("4294967296 %s 65535 = %d, want 0", "<<", r)
   6727 	}
   6728 	x = 18446744073709551615
   6729 	y = 0
   6730 	r = x << y
   6731 	if r != 18446744073709551615 {
   6732 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6733 	}
   6734 	y = 1
   6735 	r = x << y
   6736 	if r != 18446744073709551614 {
   6737 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6738 	}
   6739 	y = 65535
   6740 	r = x << y
   6741 	if r != 0 {
   6742 		t.Errorf("18446744073709551615 %s 65535 = %d, want 0", "<<", r)
   6743 	}
   6744 }
   6745 func TestConstFolduint64uint16rsh(t *testing.T) {
   6746 	var x, r uint64
   6747 	var y uint16
   6748 	x = 0
   6749 	y = 0
   6750 	r = x >> y
   6751 	if r != 0 {
   6752 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6753 	}
   6754 	y = 1
   6755 	r = x >> y
   6756 	if r != 0 {
   6757 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6758 	}
   6759 	y = 65535
   6760 	r = x >> y
   6761 	if r != 0 {
   6762 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   6763 	}
   6764 	x = 1
   6765 	y = 0
   6766 	r = x >> y
   6767 	if r != 1 {
   6768 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6769 	}
   6770 	y = 1
   6771 	r = x >> y
   6772 	if r != 0 {
   6773 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6774 	}
   6775 	y = 65535
   6776 	r = x >> y
   6777 	if r != 0 {
   6778 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   6779 	}
   6780 	x = 4294967296
   6781 	y = 0
   6782 	r = x >> y
   6783 	if r != 4294967296 {
   6784 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6785 	}
   6786 	y = 1
   6787 	r = x >> y
   6788 	if r != 2147483648 {
   6789 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6790 	}
   6791 	y = 65535
   6792 	r = x >> y
   6793 	if r != 0 {
   6794 		t.Errorf("4294967296 %s 65535 = %d, want 0", ">>", r)
   6795 	}
   6796 	x = 18446744073709551615
   6797 	y = 0
   6798 	r = x >> y
   6799 	if r != 18446744073709551615 {
   6800 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6801 	}
   6802 	y = 1
   6803 	r = x >> y
   6804 	if r != 9223372036854775807 {
   6805 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6806 	}
   6807 	y = 65535
   6808 	r = x >> y
   6809 	if r != 0 {
   6810 		t.Errorf("18446744073709551615 %s 65535 = %d, want 0", ">>", r)
   6811 	}
   6812 }
   6813 func TestConstFolduint64uint8lsh(t *testing.T) {
   6814 	var x, r uint64
   6815 	var y uint8
   6816 	x = 0
   6817 	y = 0
   6818 	r = x << y
   6819 	if r != 0 {
   6820 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6821 	}
   6822 	y = 1
   6823 	r = x << y
   6824 	if r != 0 {
   6825 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6826 	}
   6827 	y = 255
   6828 	r = x << y
   6829 	if r != 0 {
   6830 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   6831 	}
   6832 	x = 1
   6833 	y = 0
   6834 	r = x << y
   6835 	if r != 1 {
   6836 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6837 	}
   6838 	y = 1
   6839 	r = x << y
   6840 	if r != 2 {
   6841 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6842 	}
   6843 	y = 255
   6844 	r = x << y
   6845 	if r != 0 {
   6846 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   6847 	}
   6848 	x = 4294967296
   6849 	y = 0
   6850 	r = x << y
   6851 	if r != 4294967296 {
   6852 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6853 	}
   6854 	y = 1
   6855 	r = x << y
   6856 	if r != 8589934592 {
   6857 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6858 	}
   6859 	y = 255
   6860 	r = x << y
   6861 	if r != 0 {
   6862 		t.Errorf("4294967296 %s 255 = %d, want 0", "<<", r)
   6863 	}
   6864 	x = 18446744073709551615
   6865 	y = 0
   6866 	r = x << y
   6867 	if r != 18446744073709551615 {
   6868 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6869 	}
   6870 	y = 1
   6871 	r = x << y
   6872 	if r != 18446744073709551614 {
   6873 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6874 	}
   6875 	y = 255
   6876 	r = x << y
   6877 	if r != 0 {
   6878 		t.Errorf("18446744073709551615 %s 255 = %d, want 0", "<<", r)
   6879 	}
   6880 }
   6881 func TestConstFolduint64uint8rsh(t *testing.T) {
   6882 	var x, r uint64
   6883 	var y uint8
   6884 	x = 0
   6885 	y = 0
   6886 	r = x >> y
   6887 	if r != 0 {
   6888 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6889 	}
   6890 	y = 1
   6891 	r = x >> y
   6892 	if r != 0 {
   6893 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6894 	}
   6895 	y = 255
   6896 	r = x >> y
   6897 	if r != 0 {
   6898 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   6899 	}
   6900 	x = 1
   6901 	y = 0
   6902 	r = x >> y
   6903 	if r != 1 {
   6904 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6905 	}
   6906 	y = 1
   6907 	r = x >> y
   6908 	if r != 0 {
   6909 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6910 	}
   6911 	y = 255
   6912 	r = x >> y
   6913 	if r != 0 {
   6914 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   6915 	}
   6916 	x = 4294967296
   6917 	y = 0
   6918 	r = x >> y
   6919 	if r != 4294967296 {
   6920 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6921 	}
   6922 	y = 1
   6923 	r = x >> y
   6924 	if r != 2147483648 {
   6925 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6926 	}
   6927 	y = 255
   6928 	r = x >> y
   6929 	if r != 0 {
   6930 		t.Errorf("4294967296 %s 255 = %d, want 0", ">>", r)
   6931 	}
   6932 	x = 18446744073709551615
   6933 	y = 0
   6934 	r = x >> y
   6935 	if r != 18446744073709551615 {
   6936 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6937 	}
   6938 	y = 1
   6939 	r = x >> y
   6940 	if r != 9223372036854775807 {
   6941 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6942 	}
   6943 	y = 255
   6944 	r = x >> y
   6945 	if r != 0 {
   6946 		t.Errorf("18446744073709551615 %s 255 = %d, want 0", ">>", r)
   6947 	}
   6948 }
   6949 func TestConstFoldint64uint64lsh(t *testing.T) {
   6950 	var x, r int64
   6951 	var y uint64
   6952 	x = -9223372036854775808
   6953 	y = 0
   6954 	r = x << y
   6955 	if r != -9223372036854775808 {
   6956 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   6957 	}
   6958 	y = 1
   6959 	r = x << y
   6960 	if r != 0 {
   6961 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   6962 	}
   6963 	y = 4294967296
   6964 	r = x << y
   6965 	if r != 0 {
   6966 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "<<", r)
   6967 	}
   6968 	y = 18446744073709551615
   6969 	r = x << y
   6970 	if r != 0 {
   6971 		t.Errorf("-9223372036854775808 %s 18446744073709551615 = %d, want 0", "<<", r)
   6972 	}
   6973 	x = -9223372036854775807
   6974 	y = 0
   6975 	r = x << y
   6976 	if r != -9223372036854775807 {
   6977 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   6978 	}
   6979 	y = 1
   6980 	r = x << y
   6981 	if r != 2 {
   6982 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   6983 	}
   6984 	y = 4294967296
   6985 	r = x << y
   6986 	if r != 0 {
   6987 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 0", "<<", r)
   6988 	}
   6989 	y = 18446744073709551615
   6990 	r = x << y
   6991 	if r != 0 {
   6992 		t.Errorf("-9223372036854775807 %s 18446744073709551615 = %d, want 0", "<<", r)
   6993 	}
   6994 	x = -4294967296
   6995 	y = 0
   6996 	r = x << y
   6997 	if r != -4294967296 {
   6998 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   6999 	}
   7000 	y = 1
   7001 	r = x << y
   7002 	if r != -8589934592 {
   7003 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7004 	}
   7005 	y = 4294967296
   7006 	r = x << y
   7007 	if r != 0 {
   7008 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "<<", r)
   7009 	}
   7010 	y = 18446744073709551615
   7011 	r = x << y
   7012 	if r != 0 {
   7013 		t.Errorf("-4294967296 %s 18446744073709551615 = %d, want 0", "<<", r)
   7014 	}
   7015 	x = -1
   7016 	y = 0
   7017 	r = x << y
   7018 	if r != -1 {
   7019 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7020 	}
   7021 	y = 1
   7022 	r = x << y
   7023 	if r != -2 {
   7024 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7025 	}
   7026 	y = 4294967296
   7027 	r = x << y
   7028 	if r != 0 {
   7029 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   7030 	}
   7031 	y = 18446744073709551615
   7032 	r = x << y
   7033 	if r != 0 {
   7034 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   7035 	}
   7036 	x = 0
   7037 	y = 0
   7038 	r = x << y
   7039 	if r != 0 {
   7040 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7041 	}
   7042 	y = 1
   7043 	r = x << y
   7044 	if r != 0 {
   7045 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   7046 	}
   7047 	y = 4294967296
   7048 	r = x << y
   7049 	if r != 0 {
   7050 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   7051 	}
   7052 	y = 18446744073709551615
   7053 	r = x << y
   7054 	if r != 0 {
   7055 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   7056 	}
   7057 	x = 1
   7058 	y = 0
   7059 	r = x << y
   7060 	if r != 1 {
   7061 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   7062 	}
   7063 	y = 1
   7064 	r = x << y
   7065 	if r != 2 {
   7066 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   7067 	}
   7068 	y = 4294967296
   7069 	r = x << y
   7070 	if r != 0 {
   7071 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   7072 	}
   7073 	y = 18446744073709551615
   7074 	r = x << y
   7075 	if r != 0 {
   7076 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   7077 	}
   7078 	x = 4294967296
   7079 	y = 0
   7080 	r = x << y
   7081 	if r != 4294967296 {
   7082 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   7083 	}
   7084 	y = 1
   7085 	r = x << y
   7086 	if r != 8589934592 {
   7087 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   7088 	}
   7089 	y = 4294967296
   7090 	r = x << y
   7091 	if r != 0 {
   7092 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "<<", r)
   7093 	}
   7094 	y = 18446744073709551615
   7095 	r = x << y
   7096 	if r != 0 {
   7097 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "<<", r)
   7098 	}
   7099 	x = 9223372036854775806
   7100 	y = 0
   7101 	r = x << y
   7102 	if r != 9223372036854775806 {
   7103 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   7104 	}
   7105 	y = 1
   7106 	r = x << y
   7107 	if r != -4 {
   7108 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   7109 	}
   7110 	y = 4294967296
   7111 	r = x << y
   7112 	if r != 0 {
   7113 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 0", "<<", r)
   7114 	}
   7115 	y = 18446744073709551615
   7116 	r = x << y
   7117 	if r != 0 {
   7118 		t.Errorf("9223372036854775806 %s 18446744073709551615 = %d, want 0", "<<", r)
   7119 	}
   7120 	x = 9223372036854775807
   7121 	y = 0
   7122 	r = x << y
   7123 	if r != 9223372036854775807 {
   7124 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   7125 	}
   7126 	y = 1
   7127 	r = x << y
   7128 	if r != -2 {
   7129 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   7130 	}
   7131 	y = 4294967296
   7132 	r = x << y
   7133 	if r != 0 {
   7134 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 0", "<<", r)
   7135 	}
   7136 	y = 18446744073709551615
   7137 	r = x << y
   7138 	if r != 0 {
   7139 		t.Errorf("9223372036854775807 %s 18446744073709551615 = %d, want 0", "<<", r)
   7140 	}
   7141 }
   7142 func TestConstFoldint64uint64rsh(t *testing.T) {
   7143 	var x, r int64
   7144 	var y uint64
   7145 	x = -9223372036854775808
   7146 	y = 0
   7147 	r = x >> y
   7148 	if r != -9223372036854775808 {
   7149 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   7150 	}
   7151 	y = 1
   7152 	r = x >> y
   7153 	if r != -4611686018427387904 {
   7154 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   7155 	}
   7156 	y = 4294967296
   7157 	r = x >> y
   7158 	if r != -1 {
   7159 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -1", ">>", r)
   7160 	}
   7161 	y = 18446744073709551615
   7162 	r = x >> y
   7163 	if r != -1 {
   7164 		t.Errorf("-9223372036854775808 %s 18446744073709551615 = %d, want -1", ">>", r)
   7165 	}
   7166 	x = -9223372036854775807
   7167 	y = 0
   7168 	r = x >> y
   7169 	if r != -9223372036854775807 {
   7170 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   7171 	}
   7172 	y = 1
   7173 	r = x >> y
   7174 	if r != -4611686018427387904 {
   7175 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   7176 	}
   7177 	y = 4294967296
   7178 	r = x >> y
   7179 	if r != -1 {
   7180 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -1", ">>", r)
   7181 	}
   7182 	y = 18446744073709551615
   7183 	r = x >> y
   7184 	if r != -1 {
   7185 		t.Errorf("-9223372036854775807 %s 18446744073709551615 = %d, want -1", ">>", r)
   7186 	}
   7187 	x = -4294967296
   7188 	y = 0
   7189 	r = x >> y
   7190 	if r != -4294967296 {
   7191 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   7192 	}
   7193 	y = 1
   7194 	r = x >> y
   7195 	if r != -2147483648 {
   7196 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   7197 	}
   7198 	y = 4294967296
   7199 	r = x >> y
   7200 	if r != -1 {
   7201 		t.Errorf("-4294967296 %s 4294967296 = %d, want -1", ">>", r)
   7202 	}
   7203 	y = 18446744073709551615
   7204 	r = x >> y
   7205 	if r != -1 {
   7206 		t.Errorf("-4294967296 %s 18446744073709551615 = %d, want -1", ">>", r)
   7207 	}
   7208 	x = -1
   7209 	y = 0
   7210 	r = x >> y
   7211 	if r != -1 {
   7212 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   7213 	}
   7214 	y = 1
   7215 	r = x >> y
   7216 	if r != -1 {
   7217 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   7218 	}
   7219 	y = 4294967296
   7220 	r = x >> y
   7221 	if r != -1 {
   7222 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   7223 	}
   7224 	y = 18446744073709551615
   7225 	r = x >> y
   7226 	if r != -1 {
   7227 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   7228 	}
   7229 	x = 0
   7230 	y = 0
   7231 	r = x >> y
   7232 	if r != 0 {
   7233 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   7234 	}
   7235 	y = 1
   7236 	r = x >> y
   7237 	if r != 0 {
   7238 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   7239 	}
   7240 	y = 4294967296
   7241 	r = x >> y
   7242 	if r != 0 {
   7243 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   7244 	}
   7245 	y = 18446744073709551615
   7246 	r = x >> y
   7247 	if r != 0 {
   7248 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   7249 	}
   7250 	x = 1
   7251 	y = 0
   7252 	r = x >> y
   7253 	if r != 1 {
   7254 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   7255 	}
   7256 	y = 1
   7257 	r = x >> y
   7258 	if r != 0 {
   7259 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   7260 	}
   7261 	y = 4294967296
   7262 	r = x >> y
   7263 	if r != 0 {
   7264 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   7265 	}
   7266 	y = 18446744073709551615
   7267 	r = x >> y
   7268 	if r != 0 {
   7269 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   7270 	}
   7271 	x = 4294967296
   7272 	y = 0
   7273 	r = x >> y
   7274 	if r != 4294967296 {
   7275 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   7276 	}
   7277 	y = 1
   7278 	r = x >> y
   7279 	if r != 2147483648 {
   7280 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   7281 	}
   7282 	y = 4294967296
   7283 	r = x >> y
   7284 	if r != 0 {
   7285 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", ">>", r)
   7286 	}
   7287 	y = 18446744073709551615
   7288 	r = x >> y
   7289 	if r != 0 {
   7290 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", ">>", r)
   7291 	}
   7292 	x = 9223372036854775806
   7293 	y = 0
   7294 	r = x >> y
   7295 	if r != 9223372036854775806 {
   7296 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   7297 	}
   7298 	y = 1
   7299 	r = x >> y
   7300 	if r != 4611686018427387903 {
   7301 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   7302 	}
   7303 	y = 4294967296
   7304 	r = x >> y
   7305 	if r != 0 {
   7306 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 0", ">>", r)
   7307 	}
   7308 	y = 18446744073709551615
   7309 	r = x >> y
   7310 	if r != 0 {
   7311 		t.Errorf("9223372036854775806 %s 18446744073709551615 = %d, want 0", ">>", r)
   7312 	}
   7313 	x = 9223372036854775807
   7314 	y = 0
   7315 	r = x >> y
   7316 	if r != 9223372036854775807 {
   7317 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   7318 	}
   7319 	y = 1
   7320 	r = x >> y
   7321 	if r != 4611686018427387903 {
   7322 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   7323 	}
   7324 	y = 4294967296
   7325 	r = x >> y
   7326 	if r != 0 {
   7327 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 0", ">>", r)
   7328 	}
   7329 	y = 18446744073709551615
   7330 	r = x >> y
   7331 	if r != 0 {
   7332 		t.Errorf("9223372036854775807 %s 18446744073709551615 = %d, want 0", ">>", r)
   7333 	}
   7334 }
   7335 func TestConstFoldint64uint32lsh(t *testing.T) {
   7336 	var x, r int64
   7337 	var y uint32
   7338 	x = -9223372036854775808
   7339 	y = 0
   7340 	r = x << y
   7341 	if r != -9223372036854775808 {
   7342 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   7343 	}
   7344 	y = 1
   7345 	r = x << y
   7346 	if r != 0 {
   7347 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   7348 	}
   7349 	y = 4294967295
   7350 	r = x << y
   7351 	if r != 0 {
   7352 		t.Errorf("-9223372036854775808 %s 4294967295 = %d, want 0", "<<", r)
   7353 	}
   7354 	x = -9223372036854775807
   7355 	y = 0
   7356 	r = x << y
   7357 	if r != -9223372036854775807 {
   7358 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   7359 	}
   7360 	y = 1
   7361 	r = x << y
   7362 	if r != 2 {
   7363 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   7364 	}
   7365 	y = 4294967295
   7366 	r = x << y
   7367 	if r != 0 {
   7368 		t.Errorf("-9223372036854775807 %s 4294967295 = %d, want 0", "<<", r)
   7369 	}
   7370 	x = -4294967296
   7371 	y = 0
   7372 	r = x << y
   7373 	if r != -4294967296 {
   7374 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7375 	}
   7376 	y = 1
   7377 	r = x << y
   7378 	if r != -8589934592 {
   7379 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7380 	}
   7381 	y = 4294967295
   7382 	r = x << y
   7383 	if r != 0 {
   7384 		t.Errorf("-4294967296 %s 4294967295 = %d, want 0", "<<", r)
   7385 	}
   7386 	x = -1
   7387 	y = 0
   7388 	r = x << y
   7389 	if r != -1 {
   7390 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7391 	}
   7392 	y = 1
   7393 	r = x << y
   7394 	if r != -2 {
   7395 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7396 	}
   7397 	y = 4294967295
   7398 	r = x << y
   7399 	if r != 0 {
   7400 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   7401 	}
   7402 	x = 0
   7403 	y = 0
   7404 	r = x << y
   7405 	if r != 0 {
   7406 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7407 	}
   7408 	y = 1
   7409 	r = x << y
   7410 	if r != 0 {
   7411 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   7412 	}
   7413 	y = 4294967295
   7414 	r = x << y
   7415 	if r != 0 {
   7416 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   7417 	}
   7418 	x = 1
   7419 	y = 0
   7420 	r = x << y
   7421 	if r != 1 {
   7422 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   7423 	}
   7424 	y = 1
   7425 	r = x << y
   7426 	if r != 2 {
   7427 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   7428 	}
   7429 	y = 4294967295
   7430 	r = x << y
   7431 	if r != 0 {
   7432 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   7433 	}
   7434 	x = 4294967296
   7435 	y = 0
   7436 	r = x << y
   7437 	if r != 4294967296 {
   7438 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   7439 	}
   7440 	y = 1
   7441 	r = x << y
   7442 	if r != 8589934592 {
   7443 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   7444 	}
   7445 	y = 4294967295
   7446 	r = x << y
   7447 	if r != 0 {
   7448 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", "<<", r)
   7449 	}
   7450 	x = 9223372036854775806
   7451 	y = 0
   7452 	r = x << y
   7453 	if r != 9223372036854775806 {
   7454 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   7455 	}
   7456 	y = 1
   7457 	r = x << y
   7458 	if r != -4 {
   7459 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   7460 	}
   7461 	y = 4294967295
   7462 	r = x << y
   7463 	if r != 0 {
   7464 		t.Errorf("9223372036854775806 %s 4294967295 = %d, want 0", "<<", r)
   7465 	}
   7466 	x = 9223372036854775807
   7467 	y = 0
   7468 	r = x << y
   7469 	if r != 9223372036854775807 {
   7470 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   7471 	}
   7472 	y = 1
   7473 	r = x << y
   7474 	if r != -2 {
   7475 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   7476 	}
   7477 	y = 4294967295
   7478 	r = x << y
   7479 	if r != 0 {
   7480 		t.Errorf("9223372036854775807 %s 4294967295 = %d, want 0", "<<", r)
   7481 	}
   7482 }
   7483 func TestConstFoldint64uint32rsh(t *testing.T) {
   7484 	var x, r int64
   7485 	var y uint32
   7486 	x = -9223372036854775808
   7487 	y = 0
   7488 	r = x >> y
   7489 	if r != -9223372036854775808 {
   7490 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   7491 	}
   7492 	y = 1
   7493 	r = x >> y
   7494 	if r != -4611686018427387904 {
   7495 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   7496 	}
   7497 	y = 4294967295
   7498 	r = x >> y
   7499 	if r != -1 {
   7500 		t.Errorf("-9223372036854775808 %s 4294967295 = %d, want -1", ">>", r)
   7501 	}
   7502 	x = -9223372036854775807
   7503 	y = 0
   7504 	r = x >> y
   7505 	if r != -9223372036854775807 {
   7506 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   7507 	}
   7508 	y = 1
   7509 	r = x >> y
   7510 	if r != -4611686018427387904 {
   7511 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   7512 	}
   7513 	y = 4294967295
   7514 	r = x >> y
   7515 	if r != -1 {
   7516 		t.Errorf("-9223372036854775807 %s 4294967295 = %d, want -1", ">>", r)
   7517 	}
   7518 	x = -4294967296
   7519 	y = 0
   7520 	r = x >> y
   7521 	if r != -4294967296 {
   7522 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   7523 	}
   7524 	y = 1
   7525 	r = x >> y
   7526 	if r != -2147483648 {
   7527 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   7528 	}
   7529 	y = 4294967295
   7530 	r = x >> y
   7531 	if r != -1 {
   7532 		t.Errorf("-4294967296 %s 4294967295 = %d, want -1", ">>", r)
   7533 	}
   7534 	x = -1
   7535 	y = 0
   7536 	r = x >> y
   7537 	if r != -1 {
   7538 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   7539 	}
   7540 	y = 1
   7541 	r = x >> y
   7542 	if r != -1 {
   7543 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   7544 	}
   7545 	y = 4294967295
   7546 	r = x >> y
   7547 	if r != -1 {
   7548 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   7549 	}
   7550 	x = 0
   7551 	y = 0
   7552 	r = x >> y
   7553 	if r != 0 {
   7554 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   7555 	}
   7556 	y = 1
   7557 	r = x >> y
   7558 	if r != 0 {
   7559 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   7560 	}
   7561 	y = 4294967295
   7562 	r = x >> y
   7563 	if r != 0 {
   7564 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   7565 	}
   7566 	x = 1
   7567 	y = 0
   7568 	r = x >> y
   7569 	if r != 1 {
   7570 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   7571 	}
   7572 	y = 1
   7573 	r = x >> y
   7574 	if r != 0 {
   7575 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   7576 	}
   7577 	y = 4294967295
   7578 	r = x >> y
   7579 	if r != 0 {
   7580 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   7581 	}
   7582 	x = 4294967296
   7583 	y = 0
   7584 	r = x >> y
   7585 	if r != 4294967296 {
   7586 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   7587 	}
   7588 	y = 1
   7589 	r = x >> y
   7590 	if r != 2147483648 {
   7591 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   7592 	}
   7593 	y = 4294967295
   7594 	r = x >> y
   7595 	if r != 0 {
   7596 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", ">>", r)
   7597 	}
   7598 	x = 9223372036854775806
   7599 	y = 0
   7600 	r = x >> y
   7601 	if r != 9223372036854775806 {
   7602 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   7603 	}
   7604 	y = 1
   7605 	r = x >> y
   7606 	if r != 4611686018427387903 {
   7607 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   7608 	}
   7609 	y = 4294967295
   7610 	r = x >> y
   7611 	if r != 0 {
   7612 		t.Errorf("9223372036854775806 %s 4294967295 = %d, want 0", ">>", r)
   7613 	}
   7614 	x = 9223372036854775807
   7615 	y = 0
   7616 	r = x >> y
   7617 	if r != 9223372036854775807 {
   7618 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   7619 	}
   7620 	y = 1
   7621 	r = x >> y
   7622 	if r != 4611686018427387903 {
   7623 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   7624 	}
   7625 	y = 4294967295
   7626 	r = x >> y
   7627 	if r != 0 {
   7628 		t.Errorf("9223372036854775807 %s 4294967295 = %d, want 0", ">>", r)
   7629 	}
   7630 }
   7631 func TestConstFoldint64uint16lsh(t *testing.T) {
   7632 	var x, r int64
   7633 	var y uint16
   7634 	x = -9223372036854775808
   7635 	y = 0
   7636 	r = x << y
   7637 	if r != -9223372036854775808 {
   7638 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   7639 	}
   7640 	y = 1
   7641 	r = x << y
   7642 	if r != 0 {
   7643 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   7644 	}
   7645 	y = 65535
   7646 	r = x << y
   7647 	if r != 0 {
   7648 		t.Errorf("-9223372036854775808 %s 65535 = %d, want 0", "<<", r)
   7649 	}
   7650 	x = -9223372036854775807
   7651 	y = 0
   7652 	r = x << y
   7653 	if r != -9223372036854775807 {
   7654 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   7655 	}
   7656 	y = 1
   7657 	r = x << y
   7658 	if r != 2 {
   7659 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   7660 	}
   7661 	y = 65535
   7662 	r = x << y
   7663 	if r != 0 {
   7664 		t.Errorf("-9223372036854775807 %s 65535 = %d, want 0", "<<", r)
   7665 	}
   7666 	x = -4294967296
   7667 	y = 0
   7668 	r = x << y
   7669 	if r != -4294967296 {
   7670 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7671 	}
   7672 	y = 1
   7673 	r = x << y
   7674 	if r != -8589934592 {
   7675 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7676 	}
   7677 	y = 65535
   7678 	r = x << y
   7679 	if r != 0 {
   7680 		t.Errorf("-4294967296 %s 65535 = %d, want 0", "<<", r)
   7681 	}
   7682 	x = -1
   7683 	y = 0
   7684 	r = x << y
   7685 	if r != -1 {
   7686 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7687 	}
   7688 	y = 1
   7689 	r = x << y
   7690 	if r != -2 {
   7691 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7692 	}
   7693 	y = 65535
   7694 	r = x << y
   7695 	if r != 0 {
   7696 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   7697 	}
   7698 	x = 0
   7699 	y = 0
   7700 	r = x << y
   7701 	if r != 0 {
   7702 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7703 	}
   7704 	y = 1
   7705 	r = x << y
   7706 	if r != 0 {
   7707 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   7708 	}
   7709 	y = 65535
   7710 	r = x << y
   7711 	if r != 0 {
   7712 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   7713 	}
   7714 	x = 1
   7715 	y = 0
   7716 	r = x << y
   7717 	if r != 1 {
   7718 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   7719 	}
   7720 	y = 1
   7721 	r = x << y
   7722 	if r != 2 {
   7723 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   7724 	}
   7725 	y = 65535
   7726 	r = x << y
   7727 	if r != 0 {
   7728 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   7729 	}
   7730 	x = 4294967296
   7731 	y = 0
   7732 	r = x << y
   7733 	if r != 4294967296 {
   7734 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   7735 	}
   7736 	y = 1
   7737 	r = x << y
   7738 	if r != 8589934592 {
   7739 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   7740 	}
   7741 	y = 65535
   7742 	r = x << y
   7743 	if r != 0 {
   7744 		t.Errorf("4294967296 %s 65535 = %d, want 0", "<<", r)
   7745 	}
   7746 	x = 9223372036854775806
   7747 	y = 0
   7748 	r = x << y
   7749 	if r != 9223372036854775806 {
   7750 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   7751 	}
   7752 	y = 1
   7753 	r = x << y
   7754 	if r != -4 {
   7755 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   7756 	}
   7757 	y = 65535
   7758 	r = x << y
   7759 	if r != 0 {
   7760 		t.Errorf("9223372036854775806 %s 65535 = %d, want 0", "<<", r)
   7761 	}
   7762 	x = 9223372036854775807
   7763 	y = 0
   7764 	r = x << y
   7765 	if r != 9223372036854775807 {
   7766 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   7767 	}
   7768 	y = 1
   7769 	r = x << y
   7770 	if r != -2 {
   7771 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   7772 	}
   7773 	y = 65535
   7774 	r = x << y
   7775 	if r != 0 {
   7776 		t.Errorf("9223372036854775807 %s 65535 = %d, want 0", "<<", r)
   7777 	}
   7778 }
   7779 func TestConstFoldint64uint16rsh(t *testing.T) {
   7780 	var x, r int64
   7781 	var y uint16
   7782 	x = -9223372036854775808
   7783 	y = 0
   7784 	r = x >> y
   7785 	if r != -9223372036854775808 {
   7786 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   7787 	}
   7788 	y = 1
   7789 	r = x >> y
   7790 	if r != -4611686018427387904 {
   7791 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   7792 	}
   7793 	y = 65535
   7794 	r = x >> y
   7795 	if r != -1 {
   7796 		t.Errorf("-9223372036854775808 %s 65535 = %d, want -1", ">>", r)
   7797 	}
   7798 	x = -9223372036854775807
   7799 	y = 0
   7800 	r = x >> y
   7801 	if r != -9223372036854775807 {
   7802 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   7803 	}
   7804 	y = 1
   7805 	r = x >> y
   7806 	if r != -4611686018427387904 {
   7807 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   7808 	}
   7809 	y = 65535
   7810 	r = x >> y
   7811 	if r != -1 {
   7812 		t.Errorf("-9223372036854775807 %s 65535 = %d, want -1", ">>", r)
   7813 	}
   7814 	x = -4294967296
   7815 	y = 0
   7816 	r = x >> y
   7817 	if r != -4294967296 {
   7818 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   7819 	}
   7820 	y = 1
   7821 	r = x >> y
   7822 	if r != -2147483648 {
   7823 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   7824 	}
   7825 	y = 65535
   7826 	r = x >> y
   7827 	if r != -1 {
   7828 		t.Errorf("-4294967296 %s 65535 = %d, want -1", ">>", r)
   7829 	}
   7830 	x = -1
   7831 	y = 0
   7832 	r = x >> y
   7833 	if r != -1 {
   7834 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   7835 	}
   7836 	y = 1
   7837 	r = x >> y
   7838 	if r != -1 {
   7839 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   7840 	}
   7841 	y = 65535
   7842 	r = x >> y
   7843 	if r != -1 {
   7844 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   7845 	}
   7846 	x = 0
   7847 	y = 0
   7848 	r = x >> y
   7849 	if r != 0 {
   7850 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   7851 	}
   7852 	y = 1
   7853 	r = x >> y
   7854 	if r != 0 {
   7855 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   7856 	}
   7857 	y = 65535
   7858 	r = x >> y
   7859 	if r != 0 {
   7860 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   7861 	}
   7862 	x = 1
   7863 	y = 0
   7864 	r = x >> y
   7865 	if r != 1 {
   7866 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   7867 	}
   7868 	y = 1
   7869 	r = x >> y
   7870 	if r != 0 {
   7871 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   7872 	}
   7873 	y = 65535
   7874 	r = x >> y
   7875 	if r != 0 {
   7876 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   7877 	}
   7878 	x = 4294967296
   7879 	y = 0
   7880 	r = x >> y
   7881 	if r != 4294967296 {
   7882 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   7883 	}
   7884 	y = 1
   7885 	r = x >> y
   7886 	if r != 2147483648 {
   7887 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   7888 	}
   7889 	y = 65535
   7890 	r = x >> y
   7891 	if r != 0 {
   7892 		t.Errorf("4294967296 %s 65535 = %d, want 0", ">>", r)
   7893 	}
   7894 	x = 9223372036854775806
   7895 	y = 0
   7896 	r = x >> y
   7897 	if r != 9223372036854775806 {
   7898 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   7899 	}
   7900 	y = 1
   7901 	r = x >> y
   7902 	if r != 4611686018427387903 {
   7903 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   7904 	}
   7905 	y = 65535
   7906 	r = x >> y
   7907 	if r != 0 {
   7908 		t.Errorf("9223372036854775806 %s 65535 = %d, want 0", ">>", r)
   7909 	}
   7910 	x = 9223372036854775807
   7911 	y = 0
   7912 	r = x >> y
   7913 	if r != 9223372036854775807 {
   7914 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   7915 	}
   7916 	y = 1
   7917 	r = x >> y
   7918 	if r != 4611686018427387903 {
   7919 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   7920 	}
   7921 	y = 65535
   7922 	r = x >> y
   7923 	if r != 0 {
   7924 		t.Errorf("9223372036854775807 %s 65535 = %d, want 0", ">>", r)
   7925 	}
   7926 }
   7927 func TestConstFoldint64uint8lsh(t *testing.T) {
   7928 	var x, r int64
   7929 	var y uint8
   7930 	x = -9223372036854775808
   7931 	y = 0
   7932 	r = x << y
   7933 	if r != -9223372036854775808 {
   7934 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   7935 	}
   7936 	y = 1
   7937 	r = x << y
   7938 	if r != 0 {
   7939 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   7940 	}
   7941 	y = 255
   7942 	r = x << y
   7943 	if r != 0 {
   7944 		t.Errorf("-9223372036854775808 %s 255 = %d, want 0", "<<", r)
   7945 	}
   7946 	x = -9223372036854775807
   7947 	y = 0
   7948 	r = x << y
   7949 	if r != -9223372036854775807 {
   7950 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   7951 	}
   7952 	y = 1
   7953 	r = x << y
   7954 	if r != 2 {
   7955 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   7956 	}
   7957 	y = 255
   7958 	r = x << y
   7959 	if r != 0 {
   7960 		t.Errorf("-9223372036854775807 %s 255 = %d, want 0", "<<", r)
   7961 	}
   7962 	x = -4294967296
   7963 	y = 0
   7964 	r = x << y
   7965 	if r != -4294967296 {
   7966 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7967 	}
   7968 	y = 1
   7969 	r = x << y
   7970 	if r != -8589934592 {
   7971 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7972 	}
   7973 	y = 255
   7974 	r = x << y
   7975 	if r != 0 {
   7976 		t.Errorf("-4294967296 %s 255 = %d, want 0", "<<", r)
   7977 	}
   7978 	x = -1
   7979 	y = 0
   7980 	r = x << y
   7981 	if r != -1 {
   7982 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7983 	}
   7984 	y = 1
   7985 	r = x << y
   7986 	if r != -2 {
   7987 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7988 	}
   7989 	y = 255
   7990 	r = x << y
   7991 	if r != 0 {
   7992 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   7993 	}
   7994 	x = 0
   7995 	y = 0
   7996 	r = x << y
   7997 	if r != 0 {
   7998 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7999 	}
   8000 	y = 1
   8001 	r = x << y
   8002 	if r != 0 {
   8003 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8004 	}
   8005 	y = 255
   8006 	r = x << y
   8007 	if r != 0 {
   8008 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   8009 	}
   8010 	x = 1
   8011 	y = 0
   8012 	r = x << y
   8013 	if r != 1 {
   8014 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8015 	}
   8016 	y = 1
   8017 	r = x << y
   8018 	if r != 2 {
   8019 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8020 	}
   8021 	y = 255
   8022 	r = x << y
   8023 	if r != 0 {
   8024 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   8025 	}
   8026 	x = 4294967296
   8027 	y = 0
   8028 	r = x << y
   8029 	if r != 4294967296 {
   8030 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   8031 	}
   8032 	y = 1
   8033 	r = x << y
   8034 	if r != 8589934592 {
   8035 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   8036 	}
   8037 	y = 255
   8038 	r = x << y
   8039 	if r != 0 {
   8040 		t.Errorf("4294967296 %s 255 = %d, want 0", "<<", r)
   8041 	}
   8042 	x = 9223372036854775806
   8043 	y = 0
   8044 	r = x << y
   8045 	if r != 9223372036854775806 {
   8046 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   8047 	}
   8048 	y = 1
   8049 	r = x << y
   8050 	if r != -4 {
   8051 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   8052 	}
   8053 	y = 255
   8054 	r = x << y
   8055 	if r != 0 {
   8056 		t.Errorf("9223372036854775806 %s 255 = %d, want 0", "<<", r)
   8057 	}
   8058 	x = 9223372036854775807
   8059 	y = 0
   8060 	r = x << y
   8061 	if r != 9223372036854775807 {
   8062 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   8063 	}
   8064 	y = 1
   8065 	r = x << y
   8066 	if r != -2 {
   8067 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   8068 	}
   8069 	y = 255
   8070 	r = x << y
   8071 	if r != 0 {
   8072 		t.Errorf("9223372036854775807 %s 255 = %d, want 0", "<<", r)
   8073 	}
   8074 }
   8075 func TestConstFoldint64uint8rsh(t *testing.T) {
   8076 	var x, r int64
   8077 	var y uint8
   8078 	x = -9223372036854775808
   8079 	y = 0
   8080 	r = x >> y
   8081 	if r != -9223372036854775808 {
   8082 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   8083 	}
   8084 	y = 1
   8085 	r = x >> y
   8086 	if r != -4611686018427387904 {
   8087 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   8088 	}
   8089 	y = 255
   8090 	r = x >> y
   8091 	if r != -1 {
   8092 		t.Errorf("-9223372036854775808 %s 255 = %d, want -1", ">>", r)
   8093 	}
   8094 	x = -9223372036854775807
   8095 	y = 0
   8096 	r = x >> y
   8097 	if r != -9223372036854775807 {
   8098 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   8099 	}
   8100 	y = 1
   8101 	r = x >> y
   8102 	if r != -4611686018427387904 {
   8103 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   8104 	}
   8105 	y = 255
   8106 	r = x >> y
   8107 	if r != -1 {
   8108 		t.Errorf("-9223372036854775807 %s 255 = %d, want -1", ">>", r)
   8109 	}
   8110 	x = -4294967296
   8111 	y = 0
   8112 	r = x >> y
   8113 	if r != -4294967296 {
   8114 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   8115 	}
   8116 	y = 1
   8117 	r = x >> y
   8118 	if r != -2147483648 {
   8119 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   8120 	}
   8121 	y = 255
   8122 	r = x >> y
   8123 	if r != -1 {
   8124 		t.Errorf("-4294967296 %s 255 = %d, want -1", ">>", r)
   8125 	}
   8126 	x = -1
   8127 	y = 0
   8128 	r = x >> y
   8129 	if r != -1 {
   8130 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   8131 	}
   8132 	y = 1
   8133 	r = x >> y
   8134 	if r != -1 {
   8135 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   8136 	}
   8137 	y = 255
   8138 	r = x >> y
   8139 	if r != -1 {
   8140 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   8141 	}
   8142 	x = 0
   8143 	y = 0
   8144 	r = x >> y
   8145 	if r != 0 {
   8146 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8147 	}
   8148 	y = 1
   8149 	r = x >> y
   8150 	if r != 0 {
   8151 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8152 	}
   8153 	y = 255
   8154 	r = x >> y
   8155 	if r != 0 {
   8156 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   8157 	}
   8158 	x = 1
   8159 	y = 0
   8160 	r = x >> y
   8161 	if r != 1 {
   8162 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8163 	}
   8164 	y = 1
   8165 	r = x >> y
   8166 	if r != 0 {
   8167 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8168 	}
   8169 	y = 255
   8170 	r = x >> y
   8171 	if r != 0 {
   8172 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   8173 	}
   8174 	x = 4294967296
   8175 	y = 0
   8176 	r = x >> y
   8177 	if r != 4294967296 {
   8178 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   8179 	}
   8180 	y = 1
   8181 	r = x >> y
   8182 	if r != 2147483648 {
   8183 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   8184 	}
   8185 	y = 255
   8186 	r = x >> y
   8187 	if r != 0 {
   8188 		t.Errorf("4294967296 %s 255 = %d, want 0", ">>", r)
   8189 	}
   8190 	x = 9223372036854775806
   8191 	y = 0
   8192 	r = x >> y
   8193 	if r != 9223372036854775806 {
   8194 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   8195 	}
   8196 	y = 1
   8197 	r = x >> y
   8198 	if r != 4611686018427387903 {
   8199 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   8200 	}
   8201 	y = 255
   8202 	r = x >> y
   8203 	if r != 0 {
   8204 		t.Errorf("9223372036854775806 %s 255 = %d, want 0", ">>", r)
   8205 	}
   8206 	x = 9223372036854775807
   8207 	y = 0
   8208 	r = x >> y
   8209 	if r != 9223372036854775807 {
   8210 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   8211 	}
   8212 	y = 1
   8213 	r = x >> y
   8214 	if r != 4611686018427387903 {
   8215 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   8216 	}
   8217 	y = 255
   8218 	r = x >> y
   8219 	if r != 0 {
   8220 		t.Errorf("9223372036854775807 %s 255 = %d, want 0", ">>", r)
   8221 	}
   8222 }
   8223 func TestConstFolduint32uint64lsh(t *testing.T) {
   8224 	var x, r uint32
   8225 	var y uint64
   8226 	x = 0
   8227 	y = 0
   8228 	r = x << y
   8229 	if r != 0 {
   8230 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8231 	}
   8232 	y = 1
   8233 	r = x << y
   8234 	if r != 0 {
   8235 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8236 	}
   8237 	y = 4294967296
   8238 	r = x << y
   8239 	if r != 0 {
   8240 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   8241 	}
   8242 	y = 18446744073709551615
   8243 	r = x << y
   8244 	if r != 0 {
   8245 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   8246 	}
   8247 	x = 1
   8248 	y = 0
   8249 	r = x << y
   8250 	if r != 1 {
   8251 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8252 	}
   8253 	y = 1
   8254 	r = x << y
   8255 	if r != 2 {
   8256 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8257 	}
   8258 	y = 4294967296
   8259 	r = x << y
   8260 	if r != 0 {
   8261 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   8262 	}
   8263 	y = 18446744073709551615
   8264 	r = x << y
   8265 	if r != 0 {
   8266 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   8267 	}
   8268 	x = 4294967295
   8269 	y = 0
   8270 	r = x << y
   8271 	if r != 4294967295 {
   8272 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8273 	}
   8274 	y = 1
   8275 	r = x << y
   8276 	if r != 4294967294 {
   8277 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8278 	}
   8279 	y = 4294967296
   8280 	r = x << y
   8281 	if r != 0 {
   8282 		t.Errorf("4294967295 %s 4294967296 = %d, want 0", "<<", r)
   8283 	}
   8284 	y = 18446744073709551615
   8285 	r = x << y
   8286 	if r != 0 {
   8287 		t.Errorf("4294967295 %s 18446744073709551615 = %d, want 0", "<<", r)
   8288 	}
   8289 }
   8290 func TestConstFolduint32uint64rsh(t *testing.T) {
   8291 	var x, r uint32
   8292 	var y uint64
   8293 	x = 0
   8294 	y = 0
   8295 	r = x >> y
   8296 	if r != 0 {
   8297 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8298 	}
   8299 	y = 1
   8300 	r = x >> y
   8301 	if r != 0 {
   8302 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8303 	}
   8304 	y = 4294967296
   8305 	r = x >> y
   8306 	if r != 0 {
   8307 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   8308 	}
   8309 	y = 18446744073709551615
   8310 	r = x >> y
   8311 	if r != 0 {
   8312 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   8313 	}
   8314 	x = 1
   8315 	y = 0
   8316 	r = x >> y
   8317 	if r != 1 {
   8318 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8319 	}
   8320 	y = 1
   8321 	r = x >> y
   8322 	if r != 0 {
   8323 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8324 	}
   8325 	y = 4294967296
   8326 	r = x >> y
   8327 	if r != 0 {
   8328 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   8329 	}
   8330 	y = 18446744073709551615
   8331 	r = x >> y
   8332 	if r != 0 {
   8333 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   8334 	}
   8335 	x = 4294967295
   8336 	y = 0
   8337 	r = x >> y
   8338 	if r != 4294967295 {
   8339 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8340 	}
   8341 	y = 1
   8342 	r = x >> y
   8343 	if r != 2147483647 {
   8344 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8345 	}
   8346 	y = 4294967296
   8347 	r = x >> y
   8348 	if r != 0 {
   8349 		t.Errorf("4294967295 %s 4294967296 = %d, want 0", ">>", r)
   8350 	}
   8351 	y = 18446744073709551615
   8352 	r = x >> y
   8353 	if r != 0 {
   8354 		t.Errorf("4294967295 %s 18446744073709551615 = %d, want 0", ">>", r)
   8355 	}
   8356 }
   8357 func TestConstFolduint32uint32lsh(t *testing.T) {
   8358 	var x, r uint32
   8359 	var y uint32
   8360 	x = 0
   8361 	y = 0
   8362 	r = x << y
   8363 	if r != 0 {
   8364 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8365 	}
   8366 	y = 1
   8367 	r = x << y
   8368 	if r != 0 {
   8369 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8370 	}
   8371 	y = 4294967295
   8372 	r = x << y
   8373 	if r != 0 {
   8374 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   8375 	}
   8376 	x = 1
   8377 	y = 0
   8378 	r = x << y
   8379 	if r != 1 {
   8380 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8381 	}
   8382 	y = 1
   8383 	r = x << y
   8384 	if r != 2 {
   8385 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8386 	}
   8387 	y = 4294967295
   8388 	r = x << y
   8389 	if r != 0 {
   8390 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   8391 	}
   8392 	x = 4294967295
   8393 	y = 0
   8394 	r = x << y
   8395 	if r != 4294967295 {
   8396 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8397 	}
   8398 	y = 1
   8399 	r = x << y
   8400 	if r != 4294967294 {
   8401 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8402 	}
   8403 	y = 4294967295
   8404 	r = x << y
   8405 	if r != 0 {
   8406 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", "<<", r)
   8407 	}
   8408 }
   8409 func TestConstFolduint32uint32rsh(t *testing.T) {
   8410 	var x, r uint32
   8411 	var y uint32
   8412 	x = 0
   8413 	y = 0
   8414 	r = x >> y
   8415 	if r != 0 {
   8416 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8417 	}
   8418 	y = 1
   8419 	r = x >> y
   8420 	if r != 0 {
   8421 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8422 	}
   8423 	y = 4294967295
   8424 	r = x >> y
   8425 	if r != 0 {
   8426 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   8427 	}
   8428 	x = 1
   8429 	y = 0
   8430 	r = x >> y
   8431 	if r != 1 {
   8432 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8433 	}
   8434 	y = 1
   8435 	r = x >> y
   8436 	if r != 0 {
   8437 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8438 	}
   8439 	y = 4294967295
   8440 	r = x >> y
   8441 	if r != 0 {
   8442 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   8443 	}
   8444 	x = 4294967295
   8445 	y = 0
   8446 	r = x >> y
   8447 	if r != 4294967295 {
   8448 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8449 	}
   8450 	y = 1
   8451 	r = x >> y
   8452 	if r != 2147483647 {
   8453 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8454 	}
   8455 	y = 4294967295
   8456 	r = x >> y
   8457 	if r != 0 {
   8458 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", ">>", r)
   8459 	}
   8460 }
   8461 func TestConstFolduint32uint16lsh(t *testing.T) {
   8462 	var x, r uint32
   8463 	var y uint16
   8464 	x = 0
   8465 	y = 0
   8466 	r = x << y
   8467 	if r != 0 {
   8468 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8469 	}
   8470 	y = 1
   8471 	r = x << y
   8472 	if r != 0 {
   8473 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8474 	}
   8475 	y = 65535
   8476 	r = x << y
   8477 	if r != 0 {
   8478 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   8479 	}
   8480 	x = 1
   8481 	y = 0
   8482 	r = x << y
   8483 	if r != 1 {
   8484 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8485 	}
   8486 	y = 1
   8487 	r = x << y
   8488 	if r != 2 {
   8489 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8490 	}
   8491 	y = 65535
   8492 	r = x << y
   8493 	if r != 0 {
   8494 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   8495 	}
   8496 	x = 4294967295
   8497 	y = 0
   8498 	r = x << y
   8499 	if r != 4294967295 {
   8500 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8501 	}
   8502 	y = 1
   8503 	r = x << y
   8504 	if r != 4294967294 {
   8505 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8506 	}
   8507 	y = 65535
   8508 	r = x << y
   8509 	if r != 0 {
   8510 		t.Errorf("4294967295 %s 65535 = %d, want 0", "<<", r)
   8511 	}
   8512 }
   8513 func TestConstFolduint32uint16rsh(t *testing.T) {
   8514 	var x, r uint32
   8515 	var y uint16
   8516 	x = 0
   8517 	y = 0
   8518 	r = x >> y
   8519 	if r != 0 {
   8520 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8521 	}
   8522 	y = 1
   8523 	r = x >> y
   8524 	if r != 0 {
   8525 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8526 	}
   8527 	y = 65535
   8528 	r = x >> y
   8529 	if r != 0 {
   8530 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   8531 	}
   8532 	x = 1
   8533 	y = 0
   8534 	r = x >> y
   8535 	if r != 1 {
   8536 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8537 	}
   8538 	y = 1
   8539 	r = x >> y
   8540 	if r != 0 {
   8541 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8542 	}
   8543 	y = 65535
   8544 	r = x >> y
   8545 	if r != 0 {
   8546 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   8547 	}
   8548 	x = 4294967295
   8549 	y = 0
   8550 	r = x >> y
   8551 	if r != 4294967295 {
   8552 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8553 	}
   8554 	y = 1
   8555 	r = x >> y
   8556 	if r != 2147483647 {
   8557 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8558 	}
   8559 	y = 65535
   8560 	r = x >> y
   8561 	if r != 0 {
   8562 		t.Errorf("4294967295 %s 65535 = %d, want 0", ">>", r)
   8563 	}
   8564 }
   8565 func TestConstFolduint32uint8lsh(t *testing.T) {
   8566 	var x, r uint32
   8567 	var y uint8
   8568 	x = 0
   8569 	y = 0
   8570 	r = x << y
   8571 	if r != 0 {
   8572 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8573 	}
   8574 	y = 1
   8575 	r = x << y
   8576 	if r != 0 {
   8577 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8578 	}
   8579 	y = 255
   8580 	r = x << y
   8581 	if r != 0 {
   8582 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   8583 	}
   8584 	x = 1
   8585 	y = 0
   8586 	r = x << y
   8587 	if r != 1 {
   8588 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8589 	}
   8590 	y = 1
   8591 	r = x << y
   8592 	if r != 2 {
   8593 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8594 	}
   8595 	y = 255
   8596 	r = x << y
   8597 	if r != 0 {
   8598 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   8599 	}
   8600 	x = 4294967295
   8601 	y = 0
   8602 	r = x << y
   8603 	if r != 4294967295 {
   8604 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8605 	}
   8606 	y = 1
   8607 	r = x << y
   8608 	if r != 4294967294 {
   8609 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8610 	}
   8611 	y = 255
   8612 	r = x << y
   8613 	if r != 0 {
   8614 		t.Errorf("4294967295 %s 255 = %d, want 0", "<<", r)
   8615 	}
   8616 }
   8617 func TestConstFolduint32uint8rsh(t *testing.T) {
   8618 	var x, r uint32
   8619 	var y uint8
   8620 	x = 0
   8621 	y = 0
   8622 	r = x >> y
   8623 	if r != 0 {
   8624 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8625 	}
   8626 	y = 1
   8627 	r = x >> y
   8628 	if r != 0 {
   8629 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8630 	}
   8631 	y = 255
   8632 	r = x >> y
   8633 	if r != 0 {
   8634 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   8635 	}
   8636 	x = 1
   8637 	y = 0
   8638 	r = x >> y
   8639 	if r != 1 {
   8640 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8641 	}
   8642 	y = 1
   8643 	r = x >> y
   8644 	if r != 0 {
   8645 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8646 	}
   8647 	y = 255
   8648 	r = x >> y
   8649 	if r != 0 {
   8650 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   8651 	}
   8652 	x = 4294967295
   8653 	y = 0
   8654 	r = x >> y
   8655 	if r != 4294967295 {
   8656 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8657 	}
   8658 	y = 1
   8659 	r = x >> y
   8660 	if r != 2147483647 {
   8661 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8662 	}
   8663 	y = 255
   8664 	r = x >> y
   8665 	if r != 0 {
   8666 		t.Errorf("4294967295 %s 255 = %d, want 0", ">>", r)
   8667 	}
   8668 }
   8669 func TestConstFoldint32uint64lsh(t *testing.T) {
   8670 	var x, r int32
   8671 	var y uint64
   8672 	x = -2147483648
   8673 	y = 0
   8674 	r = x << y
   8675 	if r != -2147483648 {
   8676 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   8677 	}
   8678 	y = 1
   8679 	r = x << y
   8680 	if r != 0 {
   8681 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   8682 	}
   8683 	y = 4294967296
   8684 	r = x << y
   8685 	if r != 0 {
   8686 		t.Errorf("-2147483648 %s 4294967296 = %d, want 0", "<<", r)
   8687 	}
   8688 	y = 18446744073709551615
   8689 	r = x << y
   8690 	if r != 0 {
   8691 		t.Errorf("-2147483648 %s 18446744073709551615 = %d, want 0", "<<", r)
   8692 	}
   8693 	x = -2147483647
   8694 	y = 0
   8695 	r = x << y
   8696 	if r != -2147483647 {
   8697 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   8698 	}
   8699 	y = 1
   8700 	r = x << y
   8701 	if r != 2 {
   8702 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   8703 	}
   8704 	y = 4294967296
   8705 	r = x << y
   8706 	if r != 0 {
   8707 		t.Errorf("-2147483647 %s 4294967296 = %d, want 0", "<<", r)
   8708 	}
   8709 	y = 18446744073709551615
   8710 	r = x << y
   8711 	if r != 0 {
   8712 		t.Errorf("-2147483647 %s 18446744073709551615 = %d, want 0", "<<", r)
   8713 	}
   8714 	x = -1
   8715 	y = 0
   8716 	r = x << y
   8717 	if r != -1 {
   8718 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   8719 	}
   8720 	y = 1
   8721 	r = x << y
   8722 	if r != -2 {
   8723 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   8724 	}
   8725 	y = 4294967296
   8726 	r = x << y
   8727 	if r != 0 {
   8728 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   8729 	}
   8730 	y = 18446744073709551615
   8731 	r = x << y
   8732 	if r != 0 {
   8733 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   8734 	}
   8735 	x = 0
   8736 	y = 0
   8737 	r = x << y
   8738 	if r != 0 {
   8739 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8740 	}
   8741 	y = 1
   8742 	r = x << y
   8743 	if r != 0 {
   8744 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8745 	}
   8746 	y = 4294967296
   8747 	r = x << y
   8748 	if r != 0 {
   8749 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   8750 	}
   8751 	y = 18446744073709551615
   8752 	r = x << y
   8753 	if r != 0 {
   8754 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   8755 	}
   8756 	x = 1
   8757 	y = 0
   8758 	r = x << y
   8759 	if r != 1 {
   8760 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8761 	}
   8762 	y = 1
   8763 	r = x << y
   8764 	if r != 2 {
   8765 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8766 	}
   8767 	y = 4294967296
   8768 	r = x << y
   8769 	if r != 0 {
   8770 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   8771 	}
   8772 	y = 18446744073709551615
   8773 	r = x << y
   8774 	if r != 0 {
   8775 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   8776 	}
   8777 	x = 2147483647
   8778 	y = 0
   8779 	r = x << y
   8780 	if r != 2147483647 {
   8781 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   8782 	}
   8783 	y = 1
   8784 	r = x << y
   8785 	if r != -2 {
   8786 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   8787 	}
   8788 	y = 4294967296
   8789 	r = x << y
   8790 	if r != 0 {
   8791 		t.Errorf("2147483647 %s 4294967296 = %d, want 0", "<<", r)
   8792 	}
   8793 	y = 18446744073709551615
   8794 	r = x << y
   8795 	if r != 0 {
   8796 		t.Errorf("2147483647 %s 18446744073709551615 = %d, want 0", "<<", r)
   8797 	}
   8798 }
   8799 func TestConstFoldint32uint64rsh(t *testing.T) {
   8800 	var x, r int32
   8801 	var y uint64
   8802 	x = -2147483648
   8803 	y = 0
   8804 	r = x >> y
   8805 	if r != -2147483648 {
   8806 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   8807 	}
   8808 	y = 1
   8809 	r = x >> y
   8810 	if r != -1073741824 {
   8811 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   8812 	}
   8813 	y = 4294967296
   8814 	r = x >> y
   8815 	if r != -1 {
   8816 		t.Errorf("-2147483648 %s 4294967296 = %d, want -1", ">>", r)
   8817 	}
   8818 	y = 18446744073709551615
   8819 	r = x >> y
   8820 	if r != -1 {
   8821 		t.Errorf("-2147483648 %s 18446744073709551615 = %d, want -1", ">>", r)
   8822 	}
   8823 	x = -2147483647
   8824 	y = 0
   8825 	r = x >> y
   8826 	if r != -2147483647 {
   8827 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   8828 	}
   8829 	y = 1
   8830 	r = x >> y
   8831 	if r != -1073741824 {
   8832 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   8833 	}
   8834 	y = 4294967296
   8835 	r = x >> y
   8836 	if r != -1 {
   8837 		t.Errorf("-2147483647 %s 4294967296 = %d, want -1", ">>", r)
   8838 	}
   8839 	y = 18446744073709551615
   8840 	r = x >> y
   8841 	if r != -1 {
   8842 		t.Errorf("-2147483647 %s 18446744073709551615 = %d, want -1", ">>", r)
   8843 	}
   8844 	x = -1
   8845 	y = 0
   8846 	r = x >> y
   8847 	if r != -1 {
   8848 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   8849 	}
   8850 	y = 1
   8851 	r = x >> y
   8852 	if r != -1 {
   8853 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   8854 	}
   8855 	y = 4294967296
   8856 	r = x >> y
   8857 	if r != -1 {
   8858 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   8859 	}
   8860 	y = 18446744073709551615
   8861 	r = x >> y
   8862 	if r != -1 {
   8863 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   8864 	}
   8865 	x = 0
   8866 	y = 0
   8867 	r = x >> y
   8868 	if r != 0 {
   8869 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8870 	}
   8871 	y = 1
   8872 	r = x >> y
   8873 	if r != 0 {
   8874 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8875 	}
   8876 	y = 4294967296
   8877 	r = x >> y
   8878 	if r != 0 {
   8879 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   8880 	}
   8881 	y = 18446744073709551615
   8882 	r = x >> y
   8883 	if r != 0 {
   8884 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   8885 	}
   8886 	x = 1
   8887 	y = 0
   8888 	r = x >> y
   8889 	if r != 1 {
   8890 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8891 	}
   8892 	y = 1
   8893 	r = x >> y
   8894 	if r != 0 {
   8895 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8896 	}
   8897 	y = 4294967296
   8898 	r = x >> y
   8899 	if r != 0 {
   8900 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   8901 	}
   8902 	y = 18446744073709551615
   8903 	r = x >> y
   8904 	if r != 0 {
   8905 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   8906 	}
   8907 	x = 2147483647
   8908 	y = 0
   8909 	r = x >> y
   8910 	if r != 2147483647 {
   8911 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   8912 	}
   8913 	y = 1
   8914 	r = x >> y
   8915 	if r != 1073741823 {
   8916 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   8917 	}
   8918 	y = 4294967296
   8919 	r = x >> y
   8920 	if r != 0 {
   8921 		t.Errorf("2147483647 %s 4294967296 = %d, want 0", ">>", r)
   8922 	}
   8923 	y = 18446744073709551615
   8924 	r = x >> y
   8925 	if r != 0 {
   8926 		t.Errorf("2147483647 %s 18446744073709551615 = %d, want 0", ">>", r)
   8927 	}
   8928 }
   8929 func TestConstFoldint32uint32lsh(t *testing.T) {
   8930 	var x, r int32
   8931 	var y uint32
   8932 	x = -2147483648
   8933 	y = 0
   8934 	r = x << y
   8935 	if r != -2147483648 {
   8936 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   8937 	}
   8938 	y = 1
   8939 	r = x << y
   8940 	if r != 0 {
   8941 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   8942 	}
   8943 	y = 4294967295
   8944 	r = x << y
   8945 	if r != 0 {
   8946 		t.Errorf("-2147483648 %s 4294967295 = %d, want 0", "<<", r)
   8947 	}
   8948 	x = -2147483647
   8949 	y = 0
   8950 	r = x << y
   8951 	if r != -2147483647 {
   8952 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   8953 	}
   8954 	y = 1
   8955 	r = x << y
   8956 	if r != 2 {
   8957 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   8958 	}
   8959 	y = 4294967295
   8960 	r = x << y
   8961 	if r != 0 {
   8962 		t.Errorf("-2147483647 %s 4294967295 = %d, want 0", "<<", r)
   8963 	}
   8964 	x = -1
   8965 	y = 0
   8966 	r = x << y
   8967 	if r != -1 {
   8968 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   8969 	}
   8970 	y = 1
   8971 	r = x << y
   8972 	if r != -2 {
   8973 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   8974 	}
   8975 	y = 4294967295
   8976 	r = x << y
   8977 	if r != 0 {
   8978 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   8979 	}
   8980 	x = 0
   8981 	y = 0
   8982 	r = x << y
   8983 	if r != 0 {
   8984 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8985 	}
   8986 	y = 1
   8987 	r = x << y
   8988 	if r != 0 {
   8989 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8990 	}
   8991 	y = 4294967295
   8992 	r = x << y
   8993 	if r != 0 {
   8994 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   8995 	}
   8996 	x = 1
   8997 	y = 0
   8998 	r = x << y
   8999 	if r != 1 {
   9000 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9001 	}
   9002 	y = 1
   9003 	r = x << y
   9004 	if r != 2 {
   9005 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9006 	}
   9007 	y = 4294967295
   9008 	r = x << y
   9009 	if r != 0 {
   9010 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   9011 	}
   9012 	x = 2147483647
   9013 	y = 0
   9014 	r = x << y
   9015 	if r != 2147483647 {
   9016 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   9017 	}
   9018 	y = 1
   9019 	r = x << y
   9020 	if r != -2 {
   9021 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   9022 	}
   9023 	y = 4294967295
   9024 	r = x << y
   9025 	if r != 0 {
   9026 		t.Errorf("2147483647 %s 4294967295 = %d, want 0", "<<", r)
   9027 	}
   9028 }
   9029 func TestConstFoldint32uint32rsh(t *testing.T) {
   9030 	var x, r int32
   9031 	var y uint32
   9032 	x = -2147483648
   9033 	y = 0
   9034 	r = x >> y
   9035 	if r != -2147483648 {
   9036 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   9037 	}
   9038 	y = 1
   9039 	r = x >> y
   9040 	if r != -1073741824 {
   9041 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   9042 	}
   9043 	y = 4294967295
   9044 	r = x >> y
   9045 	if r != -1 {
   9046 		t.Errorf("-2147483648 %s 4294967295 = %d, want -1", ">>", r)
   9047 	}
   9048 	x = -2147483647
   9049 	y = 0
   9050 	r = x >> y
   9051 	if r != -2147483647 {
   9052 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   9053 	}
   9054 	y = 1
   9055 	r = x >> y
   9056 	if r != -1073741824 {
   9057 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   9058 	}
   9059 	y = 4294967295
   9060 	r = x >> y
   9061 	if r != -1 {
   9062 		t.Errorf("-2147483647 %s 4294967295 = %d, want -1", ">>", r)
   9063 	}
   9064 	x = -1
   9065 	y = 0
   9066 	r = x >> y
   9067 	if r != -1 {
   9068 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   9069 	}
   9070 	y = 1
   9071 	r = x >> y
   9072 	if r != -1 {
   9073 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   9074 	}
   9075 	y = 4294967295
   9076 	r = x >> y
   9077 	if r != -1 {
   9078 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   9079 	}
   9080 	x = 0
   9081 	y = 0
   9082 	r = x >> y
   9083 	if r != 0 {
   9084 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9085 	}
   9086 	y = 1
   9087 	r = x >> y
   9088 	if r != 0 {
   9089 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9090 	}
   9091 	y = 4294967295
   9092 	r = x >> y
   9093 	if r != 0 {
   9094 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   9095 	}
   9096 	x = 1
   9097 	y = 0
   9098 	r = x >> y
   9099 	if r != 1 {
   9100 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9101 	}
   9102 	y = 1
   9103 	r = x >> y
   9104 	if r != 0 {
   9105 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9106 	}
   9107 	y = 4294967295
   9108 	r = x >> y
   9109 	if r != 0 {
   9110 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   9111 	}
   9112 	x = 2147483647
   9113 	y = 0
   9114 	r = x >> y
   9115 	if r != 2147483647 {
   9116 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   9117 	}
   9118 	y = 1
   9119 	r = x >> y
   9120 	if r != 1073741823 {
   9121 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   9122 	}
   9123 	y = 4294967295
   9124 	r = x >> y
   9125 	if r != 0 {
   9126 		t.Errorf("2147483647 %s 4294967295 = %d, want 0", ">>", r)
   9127 	}
   9128 }
   9129 func TestConstFoldint32uint16lsh(t *testing.T) {
   9130 	var x, r int32
   9131 	var y uint16
   9132 	x = -2147483648
   9133 	y = 0
   9134 	r = x << y
   9135 	if r != -2147483648 {
   9136 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   9137 	}
   9138 	y = 1
   9139 	r = x << y
   9140 	if r != 0 {
   9141 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   9142 	}
   9143 	y = 65535
   9144 	r = x << y
   9145 	if r != 0 {
   9146 		t.Errorf("-2147483648 %s 65535 = %d, want 0", "<<", r)
   9147 	}
   9148 	x = -2147483647
   9149 	y = 0
   9150 	r = x << y
   9151 	if r != -2147483647 {
   9152 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   9153 	}
   9154 	y = 1
   9155 	r = x << y
   9156 	if r != 2 {
   9157 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   9158 	}
   9159 	y = 65535
   9160 	r = x << y
   9161 	if r != 0 {
   9162 		t.Errorf("-2147483647 %s 65535 = %d, want 0", "<<", r)
   9163 	}
   9164 	x = -1
   9165 	y = 0
   9166 	r = x << y
   9167 	if r != -1 {
   9168 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   9169 	}
   9170 	y = 1
   9171 	r = x << y
   9172 	if r != -2 {
   9173 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   9174 	}
   9175 	y = 65535
   9176 	r = x << y
   9177 	if r != 0 {
   9178 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   9179 	}
   9180 	x = 0
   9181 	y = 0
   9182 	r = x << y
   9183 	if r != 0 {
   9184 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9185 	}
   9186 	y = 1
   9187 	r = x << y
   9188 	if r != 0 {
   9189 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9190 	}
   9191 	y = 65535
   9192 	r = x << y
   9193 	if r != 0 {
   9194 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   9195 	}
   9196 	x = 1
   9197 	y = 0
   9198 	r = x << y
   9199 	if r != 1 {
   9200 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9201 	}
   9202 	y = 1
   9203 	r = x << y
   9204 	if r != 2 {
   9205 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9206 	}
   9207 	y = 65535
   9208 	r = x << y
   9209 	if r != 0 {
   9210 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   9211 	}
   9212 	x = 2147483647
   9213 	y = 0
   9214 	r = x << y
   9215 	if r != 2147483647 {
   9216 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   9217 	}
   9218 	y = 1
   9219 	r = x << y
   9220 	if r != -2 {
   9221 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   9222 	}
   9223 	y = 65535
   9224 	r = x << y
   9225 	if r != 0 {
   9226 		t.Errorf("2147483647 %s 65535 = %d, want 0", "<<", r)
   9227 	}
   9228 }
   9229 func TestConstFoldint32uint16rsh(t *testing.T) {
   9230 	var x, r int32
   9231 	var y uint16
   9232 	x = -2147483648
   9233 	y = 0
   9234 	r = x >> y
   9235 	if r != -2147483648 {
   9236 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   9237 	}
   9238 	y = 1
   9239 	r = x >> y
   9240 	if r != -1073741824 {
   9241 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   9242 	}
   9243 	y = 65535
   9244 	r = x >> y
   9245 	if r != -1 {
   9246 		t.Errorf("-2147483648 %s 65535 = %d, want -1", ">>", r)
   9247 	}
   9248 	x = -2147483647
   9249 	y = 0
   9250 	r = x >> y
   9251 	if r != -2147483647 {
   9252 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   9253 	}
   9254 	y = 1
   9255 	r = x >> y
   9256 	if r != -1073741824 {
   9257 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   9258 	}
   9259 	y = 65535
   9260 	r = x >> y
   9261 	if r != -1 {
   9262 		t.Errorf("-2147483647 %s 65535 = %d, want -1", ">>", r)
   9263 	}
   9264 	x = -1
   9265 	y = 0
   9266 	r = x >> y
   9267 	if r != -1 {
   9268 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   9269 	}
   9270 	y = 1
   9271 	r = x >> y
   9272 	if r != -1 {
   9273 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   9274 	}
   9275 	y = 65535
   9276 	r = x >> y
   9277 	if r != -1 {
   9278 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   9279 	}
   9280 	x = 0
   9281 	y = 0
   9282 	r = x >> y
   9283 	if r != 0 {
   9284 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9285 	}
   9286 	y = 1
   9287 	r = x >> y
   9288 	if r != 0 {
   9289 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9290 	}
   9291 	y = 65535
   9292 	r = x >> y
   9293 	if r != 0 {
   9294 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   9295 	}
   9296 	x = 1
   9297 	y = 0
   9298 	r = x >> y
   9299 	if r != 1 {
   9300 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9301 	}
   9302 	y = 1
   9303 	r = x >> y
   9304 	if r != 0 {
   9305 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9306 	}
   9307 	y = 65535
   9308 	r = x >> y
   9309 	if r != 0 {
   9310 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   9311 	}
   9312 	x = 2147483647
   9313 	y = 0
   9314 	r = x >> y
   9315 	if r != 2147483647 {
   9316 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   9317 	}
   9318 	y = 1
   9319 	r = x >> y
   9320 	if r != 1073741823 {
   9321 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   9322 	}
   9323 	y = 65535
   9324 	r = x >> y
   9325 	if r != 0 {
   9326 		t.Errorf("2147483647 %s 65535 = %d, want 0", ">>", r)
   9327 	}
   9328 }
   9329 func TestConstFoldint32uint8lsh(t *testing.T) {
   9330 	var x, r int32
   9331 	var y uint8
   9332 	x = -2147483648
   9333 	y = 0
   9334 	r = x << y
   9335 	if r != -2147483648 {
   9336 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   9337 	}
   9338 	y = 1
   9339 	r = x << y
   9340 	if r != 0 {
   9341 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   9342 	}
   9343 	y = 255
   9344 	r = x << y
   9345 	if r != 0 {
   9346 		t.Errorf("-2147483648 %s 255 = %d, want 0", "<<", r)
   9347 	}
   9348 	x = -2147483647
   9349 	y = 0
   9350 	r = x << y
   9351 	if r != -2147483647 {
   9352 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   9353 	}
   9354 	y = 1
   9355 	r = x << y
   9356 	if r != 2 {
   9357 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   9358 	}
   9359 	y = 255
   9360 	r = x << y
   9361 	if r != 0 {
   9362 		t.Errorf("-2147483647 %s 255 = %d, want 0", "<<", r)
   9363 	}
   9364 	x = -1
   9365 	y = 0
   9366 	r = x << y
   9367 	if r != -1 {
   9368 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   9369 	}
   9370 	y = 1
   9371 	r = x << y
   9372 	if r != -2 {
   9373 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   9374 	}
   9375 	y = 255
   9376 	r = x << y
   9377 	if r != 0 {
   9378 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   9379 	}
   9380 	x = 0
   9381 	y = 0
   9382 	r = x << y
   9383 	if r != 0 {
   9384 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9385 	}
   9386 	y = 1
   9387 	r = x << y
   9388 	if r != 0 {
   9389 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9390 	}
   9391 	y = 255
   9392 	r = x << y
   9393 	if r != 0 {
   9394 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   9395 	}
   9396 	x = 1
   9397 	y = 0
   9398 	r = x << y
   9399 	if r != 1 {
   9400 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9401 	}
   9402 	y = 1
   9403 	r = x << y
   9404 	if r != 2 {
   9405 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9406 	}
   9407 	y = 255
   9408 	r = x << y
   9409 	if r != 0 {
   9410 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   9411 	}
   9412 	x = 2147483647
   9413 	y = 0
   9414 	r = x << y
   9415 	if r != 2147483647 {
   9416 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   9417 	}
   9418 	y = 1
   9419 	r = x << y
   9420 	if r != -2 {
   9421 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   9422 	}
   9423 	y = 255
   9424 	r = x << y
   9425 	if r != 0 {
   9426 		t.Errorf("2147483647 %s 255 = %d, want 0", "<<", r)
   9427 	}
   9428 }
   9429 func TestConstFoldint32uint8rsh(t *testing.T) {
   9430 	var x, r int32
   9431 	var y uint8
   9432 	x = -2147483648
   9433 	y = 0
   9434 	r = x >> y
   9435 	if r != -2147483648 {
   9436 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   9437 	}
   9438 	y = 1
   9439 	r = x >> y
   9440 	if r != -1073741824 {
   9441 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   9442 	}
   9443 	y = 255
   9444 	r = x >> y
   9445 	if r != -1 {
   9446 		t.Errorf("-2147483648 %s 255 = %d, want -1", ">>", r)
   9447 	}
   9448 	x = -2147483647
   9449 	y = 0
   9450 	r = x >> y
   9451 	if r != -2147483647 {
   9452 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   9453 	}
   9454 	y = 1
   9455 	r = x >> y
   9456 	if r != -1073741824 {
   9457 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   9458 	}
   9459 	y = 255
   9460 	r = x >> y
   9461 	if r != -1 {
   9462 		t.Errorf("-2147483647 %s 255 = %d, want -1", ">>", r)
   9463 	}
   9464 	x = -1
   9465 	y = 0
   9466 	r = x >> y
   9467 	if r != -1 {
   9468 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   9469 	}
   9470 	y = 1
   9471 	r = x >> y
   9472 	if r != -1 {
   9473 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   9474 	}
   9475 	y = 255
   9476 	r = x >> y
   9477 	if r != -1 {
   9478 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   9479 	}
   9480 	x = 0
   9481 	y = 0
   9482 	r = x >> y
   9483 	if r != 0 {
   9484 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9485 	}
   9486 	y = 1
   9487 	r = x >> y
   9488 	if r != 0 {
   9489 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9490 	}
   9491 	y = 255
   9492 	r = x >> y
   9493 	if r != 0 {
   9494 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   9495 	}
   9496 	x = 1
   9497 	y = 0
   9498 	r = x >> y
   9499 	if r != 1 {
   9500 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9501 	}
   9502 	y = 1
   9503 	r = x >> y
   9504 	if r != 0 {
   9505 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9506 	}
   9507 	y = 255
   9508 	r = x >> y
   9509 	if r != 0 {
   9510 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   9511 	}
   9512 	x = 2147483647
   9513 	y = 0
   9514 	r = x >> y
   9515 	if r != 2147483647 {
   9516 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   9517 	}
   9518 	y = 1
   9519 	r = x >> y
   9520 	if r != 1073741823 {
   9521 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   9522 	}
   9523 	y = 255
   9524 	r = x >> y
   9525 	if r != 0 {
   9526 		t.Errorf("2147483647 %s 255 = %d, want 0", ">>", r)
   9527 	}
   9528 }
   9529 func TestConstFolduint16uint64lsh(t *testing.T) {
   9530 	var x, r uint16
   9531 	var y uint64
   9532 	x = 0
   9533 	y = 0
   9534 	r = x << y
   9535 	if r != 0 {
   9536 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9537 	}
   9538 	y = 1
   9539 	r = x << y
   9540 	if r != 0 {
   9541 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9542 	}
   9543 	y = 4294967296
   9544 	r = x << y
   9545 	if r != 0 {
   9546 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   9547 	}
   9548 	y = 18446744073709551615
   9549 	r = x << y
   9550 	if r != 0 {
   9551 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   9552 	}
   9553 	x = 1
   9554 	y = 0
   9555 	r = x << y
   9556 	if r != 1 {
   9557 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9558 	}
   9559 	y = 1
   9560 	r = x << y
   9561 	if r != 2 {
   9562 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9563 	}
   9564 	y = 4294967296
   9565 	r = x << y
   9566 	if r != 0 {
   9567 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   9568 	}
   9569 	y = 18446744073709551615
   9570 	r = x << y
   9571 	if r != 0 {
   9572 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   9573 	}
   9574 	x = 65535
   9575 	y = 0
   9576 	r = x << y
   9577 	if r != 65535 {
   9578 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9579 	}
   9580 	y = 1
   9581 	r = x << y
   9582 	if r != 65534 {
   9583 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9584 	}
   9585 	y = 4294967296
   9586 	r = x << y
   9587 	if r != 0 {
   9588 		t.Errorf("65535 %s 4294967296 = %d, want 0", "<<", r)
   9589 	}
   9590 	y = 18446744073709551615
   9591 	r = x << y
   9592 	if r != 0 {
   9593 		t.Errorf("65535 %s 18446744073709551615 = %d, want 0", "<<", r)
   9594 	}
   9595 }
   9596 func TestConstFolduint16uint64rsh(t *testing.T) {
   9597 	var x, r uint16
   9598 	var y uint64
   9599 	x = 0
   9600 	y = 0
   9601 	r = x >> y
   9602 	if r != 0 {
   9603 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9604 	}
   9605 	y = 1
   9606 	r = x >> y
   9607 	if r != 0 {
   9608 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9609 	}
   9610 	y = 4294967296
   9611 	r = x >> y
   9612 	if r != 0 {
   9613 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   9614 	}
   9615 	y = 18446744073709551615
   9616 	r = x >> y
   9617 	if r != 0 {
   9618 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   9619 	}
   9620 	x = 1
   9621 	y = 0
   9622 	r = x >> y
   9623 	if r != 1 {
   9624 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9625 	}
   9626 	y = 1
   9627 	r = x >> y
   9628 	if r != 0 {
   9629 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9630 	}
   9631 	y = 4294967296
   9632 	r = x >> y
   9633 	if r != 0 {
   9634 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   9635 	}
   9636 	y = 18446744073709551615
   9637 	r = x >> y
   9638 	if r != 0 {
   9639 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   9640 	}
   9641 	x = 65535
   9642 	y = 0
   9643 	r = x >> y
   9644 	if r != 65535 {
   9645 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9646 	}
   9647 	y = 1
   9648 	r = x >> y
   9649 	if r != 32767 {
   9650 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9651 	}
   9652 	y = 4294967296
   9653 	r = x >> y
   9654 	if r != 0 {
   9655 		t.Errorf("65535 %s 4294967296 = %d, want 0", ">>", r)
   9656 	}
   9657 	y = 18446744073709551615
   9658 	r = x >> y
   9659 	if r != 0 {
   9660 		t.Errorf("65535 %s 18446744073709551615 = %d, want 0", ">>", r)
   9661 	}
   9662 }
   9663 func TestConstFolduint16uint32lsh(t *testing.T) {
   9664 	var x, r uint16
   9665 	var y uint32
   9666 	x = 0
   9667 	y = 0
   9668 	r = x << y
   9669 	if r != 0 {
   9670 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9671 	}
   9672 	y = 1
   9673 	r = x << y
   9674 	if r != 0 {
   9675 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9676 	}
   9677 	y = 4294967295
   9678 	r = x << y
   9679 	if r != 0 {
   9680 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   9681 	}
   9682 	x = 1
   9683 	y = 0
   9684 	r = x << y
   9685 	if r != 1 {
   9686 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9687 	}
   9688 	y = 1
   9689 	r = x << y
   9690 	if r != 2 {
   9691 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9692 	}
   9693 	y = 4294967295
   9694 	r = x << y
   9695 	if r != 0 {
   9696 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   9697 	}
   9698 	x = 65535
   9699 	y = 0
   9700 	r = x << y
   9701 	if r != 65535 {
   9702 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9703 	}
   9704 	y = 1
   9705 	r = x << y
   9706 	if r != 65534 {
   9707 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9708 	}
   9709 	y = 4294967295
   9710 	r = x << y
   9711 	if r != 0 {
   9712 		t.Errorf("65535 %s 4294967295 = %d, want 0", "<<", r)
   9713 	}
   9714 }
   9715 func TestConstFolduint16uint32rsh(t *testing.T) {
   9716 	var x, r uint16
   9717 	var y uint32
   9718 	x = 0
   9719 	y = 0
   9720 	r = x >> y
   9721 	if r != 0 {
   9722 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9723 	}
   9724 	y = 1
   9725 	r = x >> y
   9726 	if r != 0 {
   9727 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9728 	}
   9729 	y = 4294967295
   9730 	r = x >> y
   9731 	if r != 0 {
   9732 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   9733 	}
   9734 	x = 1
   9735 	y = 0
   9736 	r = x >> y
   9737 	if r != 1 {
   9738 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9739 	}
   9740 	y = 1
   9741 	r = x >> y
   9742 	if r != 0 {
   9743 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9744 	}
   9745 	y = 4294967295
   9746 	r = x >> y
   9747 	if r != 0 {
   9748 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   9749 	}
   9750 	x = 65535
   9751 	y = 0
   9752 	r = x >> y
   9753 	if r != 65535 {
   9754 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9755 	}
   9756 	y = 1
   9757 	r = x >> y
   9758 	if r != 32767 {
   9759 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9760 	}
   9761 	y = 4294967295
   9762 	r = x >> y
   9763 	if r != 0 {
   9764 		t.Errorf("65535 %s 4294967295 = %d, want 0", ">>", r)
   9765 	}
   9766 }
   9767 func TestConstFolduint16uint16lsh(t *testing.T) {
   9768 	var x, r uint16
   9769 	var y uint16
   9770 	x = 0
   9771 	y = 0
   9772 	r = x << y
   9773 	if r != 0 {
   9774 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9775 	}
   9776 	y = 1
   9777 	r = x << y
   9778 	if r != 0 {
   9779 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9780 	}
   9781 	y = 65535
   9782 	r = x << y
   9783 	if r != 0 {
   9784 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   9785 	}
   9786 	x = 1
   9787 	y = 0
   9788 	r = x << y
   9789 	if r != 1 {
   9790 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9791 	}
   9792 	y = 1
   9793 	r = x << y
   9794 	if r != 2 {
   9795 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9796 	}
   9797 	y = 65535
   9798 	r = x << y
   9799 	if r != 0 {
   9800 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   9801 	}
   9802 	x = 65535
   9803 	y = 0
   9804 	r = x << y
   9805 	if r != 65535 {
   9806 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9807 	}
   9808 	y = 1
   9809 	r = x << y
   9810 	if r != 65534 {
   9811 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9812 	}
   9813 	y = 65535
   9814 	r = x << y
   9815 	if r != 0 {
   9816 		t.Errorf("65535 %s 65535 = %d, want 0", "<<", r)
   9817 	}
   9818 }
   9819 func TestConstFolduint16uint16rsh(t *testing.T) {
   9820 	var x, r uint16
   9821 	var y uint16
   9822 	x = 0
   9823 	y = 0
   9824 	r = x >> y
   9825 	if r != 0 {
   9826 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9827 	}
   9828 	y = 1
   9829 	r = x >> y
   9830 	if r != 0 {
   9831 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9832 	}
   9833 	y = 65535
   9834 	r = x >> y
   9835 	if r != 0 {
   9836 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   9837 	}
   9838 	x = 1
   9839 	y = 0
   9840 	r = x >> y
   9841 	if r != 1 {
   9842 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9843 	}
   9844 	y = 1
   9845 	r = x >> y
   9846 	if r != 0 {
   9847 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9848 	}
   9849 	y = 65535
   9850 	r = x >> y
   9851 	if r != 0 {
   9852 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   9853 	}
   9854 	x = 65535
   9855 	y = 0
   9856 	r = x >> y
   9857 	if r != 65535 {
   9858 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9859 	}
   9860 	y = 1
   9861 	r = x >> y
   9862 	if r != 32767 {
   9863 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9864 	}
   9865 	y = 65535
   9866 	r = x >> y
   9867 	if r != 0 {
   9868 		t.Errorf("65535 %s 65535 = %d, want 0", ">>", r)
   9869 	}
   9870 }
   9871 func TestConstFolduint16uint8lsh(t *testing.T) {
   9872 	var x, r uint16
   9873 	var y uint8
   9874 	x = 0
   9875 	y = 0
   9876 	r = x << y
   9877 	if r != 0 {
   9878 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9879 	}
   9880 	y = 1
   9881 	r = x << y
   9882 	if r != 0 {
   9883 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9884 	}
   9885 	y = 255
   9886 	r = x << y
   9887 	if r != 0 {
   9888 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   9889 	}
   9890 	x = 1
   9891 	y = 0
   9892 	r = x << y
   9893 	if r != 1 {
   9894 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9895 	}
   9896 	y = 1
   9897 	r = x << y
   9898 	if r != 2 {
   9899 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9900 	}
   9901 	y = 255
   9902 	r = x << y
   9903 	if r != 0 {
   9904 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   9905 	}
   9906 	x = 65535
   9907 	y = 0
   9908 	r = x << y
   9909 	if r != 65535 {
   9910 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9911 	}
   9912 	y = 1
   9913 	r = x << y
   9914 	if r != 65534 {
   9915 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9916 	}
   9917 	y = 255
   9918 	r = x << y
   9919 	if r != 0 {
   9920 		t.Errorf("65535 %s 255 = %d, want 0", "<<", r)
   9921 	}
   9922 }
   9923 func TestConstFolduint16uint8rsh(t *testing.T) {
   9924 	var x, r uint16
   9925 	var y uint8
   9926 	x = 0
   9927 	y = 0
   9928 	r = x >> y
   9929 	if r != 0 {
   9930 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9931 	}
   9932 	y = 1
   9933 	r = x >> y
   9934 	if r != 0 {
   9935 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9936 	}
   9937 	y = 255
   9938 	r = x >> y
   9939 	if r != 0 {
   9940 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   9941 	}
   9942 	x = 1
   9943 	y = 0
   9944 	r = x >> y
   9945 	if r != 1 {
   9946 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9947 	}
   9948 	y = 1
   9949 	r = x >> y
   9950 	if r != 0 {
   9951 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9952 	}
   9953 	y = 255
   9954 	r = x >> y
   9955 	if r != 0 {
   9956 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   9957 	}
   9958 	x = 65535
   9959 	y = 0
   9960 	r = x >> y
   9961 	if r != 65535 {
   9962 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9963 	}
   9964 	y = 1
   9965 	r = x >> y
   9966 	if r != 32767 {
   9967 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9968 	}
   9969 	y = 255
   9970 	r = x >> y
   9971 	if r != 0 {
   9972 		t.Errorf("65535 %s 255 = %d, want 0", ">>", r)
   9973 	}
   9974 }
   9975 func TestConstFoldint16uint64lsh(t *testing.T) {
   9976 	var x, r int16
   9977 	var y uint64
   9978 	x = -32768
   9979 	y = 0
   9980 	r = x << y
   9981 	if r != -32768 {
   9982 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   9983 	}
   9984 	y = 1
   9985 	r = x << y
   9986 	if r != 0 {
   9987 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   9988 	}
   9989 	y = 4294967296
   9990 	r = x << y
   9991 	if r != 0 {
   9992 		t.Errorf("-32768 %s 4294967296 = %d, want 0", "<<", r)
   9993 	}
   9994 	y = 18446744073709551615
   9995 	r = x << y
   9996 	if r != 0 {
   9997 		t.Errorf("-32768 %s 18446744073709551615 = %d, want 0", "<<", r)
   9998 	}
   9999 	x = -32767
   10000 	y = 0
   10001 	r = x << y
   10002 	if r != -32767 {
   10003 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10004 	}
   10005 	y = 1
   10006 	r = x << y
   10007 	if r != 2 {
   10008 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10009 	}
   10010 	y = 4294967296
   10011 	r = x << y
   10012 	if r != 0 {
   10013 		t.Errorf("-32767 %s 4294967296 = %d, want 0", "<<", r)
   10014 	}
   10015 	y = 18446744073709551615
   10016 	r = x << y
   10017 	if r != 0 {
   10018 		t.Errorf("-32767 %s 18446744073709551615 = %d, want 0", "<<", r)
   10019 	}
   10020 	x = -1
   10021 	y = 0
   10022 	r = x << y
   10023 	if r != -1 {
   10024 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10025 	}
   10026 	y = 1
   10027 	r = x << y
   10028 	if r != -2 {
   10029 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10030 	}
   10031 	y = 4294967296
   10032 	r = x << y
   10033 	if r != 0 {
   10034 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   10035 	}
   10036 	y = 18446744073709551615
   10037 	r = x << y
   10038 	if r != 0 {
   10039 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   10040 	}
   10041 	x = 0
   10042 	y = 0
   10043 	r = x << y
   10044 	if r != 0 {
   10045 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10046 	}
   10047 	y = 1
   10048 	r = x << y
   10049 	if r != 0 {
   10050 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10051 	}
   10052 	y = 4294967296
   10053 	r = x << y
   10054 	if r != 0 {
   10055 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   10056 	}
   10057 	y = 18446744073709551615
   10058 	r = x << y
   10059 	if r != 0 {
   10060 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   10061 	}
   10062 	x = 1
   10063 	y = 0
   10064 	r = x << y
   10065 	if r != 1 {
   10066 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10067 	}
   10068 	y = 1
   10069 	r = x << y
   10070 	if r != 2 {
   10071 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10072 	}
   10073 	y = 4294967296
   10074 	r = x << y
   10075 	if r != 0 {
   10076 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   10077 	}
   10078 	y = 18446744073709551615
   10079 	r = x << y
   10080 	if r != 0 {
   10081 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   10082 	}
   10083 	x = 32766
   10084 	y = 0
   10085 	r = x << y
   10086 	if r != 32766 {
   10087 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10088 	}
   10089 	y = 1
   10090 	r = x << y
   10091 	if r != -4 {
   10092 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10093 	}
   10094 	y = 4294967296
   10095 	r = x << y
   10096 	if r != 0 {
   10097 		t.Errorf("32766 %s 4294967296 = %d, want 0", "<<", r)
   10098 	}
   10099 	y = 18446744073709551615
   10100 	r = x << y
   10101 	if r != 0 {
   10102 		t.Errorf("32766 %s 18446744073709551615 = %d, want 0", "<<", r)
   10103 	}
   10104 	x = 32767
   10105 	y = 0
   10106 	r = x << y
   10107 	if r != 32767 {
   10108 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10109 	}
   10110 	y = 1
   10111 	r = x << y
   10112 	if r != -2 {
   10113 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10114 	}
   10115 	y = 4294967296
   10116 	r = x << y
   10117 	if r != 0 {
   10118 		t.Errorf("32767 %s 4294967296 = %d, want 0", "<<", r)
   10119 	}
   10120 	y = 18446744073709551615
   10121 	r = x << y
   10122 	if r != 0 {
   10123 		t.Errorf("32767 %s 18446744073709551615 = %d, want 0", "<<", r)
   10124 	}
   10125 }
   10126 func TestConstFoldint16uint64rsh(t *testing.T) {
   10127 	var x, r int16
   10128 	var y uint64
   10129 	x = -32768
   10130 	y = 0
   10131 	r = x >> y
   10132 	if r != -32768 {
   10133 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10134 	}
   10135 	y = 1
   10136 	r = x >> y
   10137 	if r != -16384 {
   10138 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10139 	}
   10140 	y = 4294967296
   10141 	r = x >> y
   10142 	if r != -1 {
   10143 		t.Errorf("-32768 %s 4294967296 = %d, want -1", ">>", r)
   10144 	}
   10145 	y = 18446744073709551615
   10146 	r = x >> y
   10147 	if r != -1 {
   10148 		t.Errorf("-32768 %s 18446744073709551615 = %d, want -1", ">>", r)
   10149 	}
   10150 	x = -32767
   10151 	y = 0
   10152 	r = x >> y
   10153 	if r != -32767 {
   10154 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10155 	}
   10156 	y = 1
   10157 	r = x >> y
   10158 	if r != -16384 {
   10159 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10160 	}
   10161 	y = 4294967296
   10162 	r = x >> y
   10163 	if r != -1 {
   10164 		t.Errorf("-32767 %s 4294967296 = %d, want -1", ">>", r)
   10165 	}
   10166 	y = 18446744073709551615
   10167 	r = x >> y
   10168 	if r != -1 {
   10169 		t.Errorf("-32767 %s 18446744073709551615 = %d, want -1", ">>", r)
   10170 	}
   10171 	x = -1
   10172 	y = 0
   10173 	r = x >> y
   10174 	if r != -1 {
   10175 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10176 	}
   10177 	y = 1
   10178 	r = x >> y
   10179 	if r != -1 {
   10180 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10181 	}
   10182 	y = 4294967296
   10183 	r = x >> y
   10184 	if r != -1 {
   10185 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   10186 	}
   10187 	y = 18446744073709551615
   10188 	r = x >> y
   10189 	if r != -1 {
   10190 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   10191 	}
   10192 	x = 0
   10193 	y = 0
   10194 	r = x >> y
   10195 	if r != 0 {
   10196 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10197 	}
   10198 	y = 1
   10199 	r = x >> y
   10200 	if r != 0 {
   10201 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10202 	}
   10203 	y = 4294967296
   10204 	r = x >> y
   10205 	if r != 0 {
   10206 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   10207 	}
   10208 	y = 18446744073709551615
   10209 	r = x >> y
   10210 	if r != 0 {
   10211 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   10212 	}
   10213 	x = 1
   10214 	y = 0
   10215 	r = x >> y
   10216 	if r != 1 {
   10217 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10218 	}
   10219 	y = 1
   10220 	r = x >> y
   10221 	if r != 0 {
   10222 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10223 	}
   10224 	y = 4294967296
   10225 	r = x >> y
   10226 	if r != 0 {
   10227 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   10228 	}
   10229 	y = 18446744073709551615
   10230 	r = x >> y
   10231 	if r != 0 {
   10232 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   10233 	}
   10234 	x = 32766
   10235 	y = 0
   10236 	r = x >> y
   10237 	if r != 32766 {
   10238 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10239 	}
   10240 	y = 1
   10241 	r = x >> y
   10242 	if r != 16383 {
   10243 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10244 	}
   10245 	y = 4294967296
   10246 	r = x >> y
   10247 	if r != 0 {
   10248 		t.Errorf("32766 %s 4294967296 = %d, want 0", ">>", r)
   10249 	}
   10250 	y = 18446744073709551615
   10251 	r = x >> y
   10252 	if r != 0 {
   10253 		t.Errorf("32766 %s 18446744073709551615 = %d, want 0", ">>", r)
   10254 	}
   10255 	x = 32767
   10256 	y = 0
   10257 	r = x >> y
   10258 	if r != 32767 {
   10259 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10260 	}
   10261 	y = 1
   10262 	r = x >> y
   10263 	if r != 16383 {
   10264 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10265 	}
   10266 	y = 4294967296
   10267 	r = x >> y
   10268 	if r != 0 {
   10269 		t.Errorf("32767 %s 4294967296 = %d, want 0", ">>", r)
   10270 	}
   10271 	y = 18446744073709551615
   10272 	r = x >> y
   10273 	if r != 0 {
   10274 		t.Errorf("32767 %s 18446744073709551615 = %d, want 0", ">>", r)
   10275 	}
   10276 }
   10277 func TestConstFoldint16uint32lsh(t *testing.T) {
   10278 	var x, r int16
   10279 	var y uint32
   10280 	x = -32768
   10281 	y = 0
   10282 	r = x << y
   10283 	if r != -32768 {
   10284 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   10285 	}
   10286 	y = 1
   10287 	r = x << y
   10288 	if r != 0 {
   10289 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   10290 	}
   10291 	y = 4294967295
   10292 	r = x << y
   10293 	if r != 0 {
   10294 		t.Errorf("-32768 %s 4294967295 = %d, want 0", "<<", r)
   10295 	}
   10296 	x = -32767
   10297 	y = 0
   10298 	r = x << y
   10299 	if r != -32767 {
   10300 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10301 	}
   10302 	y = 1
   10303 	r = x << y
   10304 	if r != 2 {
   10305 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10306 	}
   10307 	y = 4294967295
   10308 	r = x << y
   10309 	if r != 0 {
   10310 		t.Errorf("-32767 %s 4294967295 = %d, want 0", "<<", r)
   10311 	}
   10312 	x = -1
   10313 	y = 0
   10314 	r = x << y
   10315 	if r != -1 {
   10316 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10317 	}
   10318 	y = 1
   10319 	r = x << y
   10320 	if r != -2 {
   10321 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10322 	}
   10323 	y = 4294967295
   10324 	r = x << y
   10325 	if r != 0 {
   10326 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   10327 	}
   10328 	x = 0
   10329 	y = 0
   10330 	r = x << y
   10331 	if r != 0 {
   10332 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10333 	}
   10334 	y = 1
   10335 	r = x << y
   10336 	if r != 0 {
   10337 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10338 	}
   10339 	y = 4294967295
   10340 	r = x << y
   10341 	if r != 0 {
   10342 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   10343 	}
   10344 	x = 1
   10345 	y = 0
   10346 	r = x << y
   10347 	if r != 1 {
   10348 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10349 	}
   10350 	y = 1
   10351 	r = x << y
   10352 	if r != 2 {
   10353 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10354 	}
   10355 	y = 4294967295
   10356 	r = x << y
   10357 	if r != 0 {
   10358 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   10359 	}
   10360 	x = 32766
   10361 	y = 0
   10362 	r = x << y
   10363 	if r != 32766 {
   10364 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10365 	}
   10366 	y = 1
   10367 	r = x << y
   10368 	if r != -4 {
   10369 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10370 	}
   10371 	y = 4294967295
   10372 	r = x << y
   10373 	if r != 0 {
   10374 		t.Errorf("32766 %s 4294967295 = %d, want 0", "<<", r)
   10375 	}
   10376 	x = 32767
   10377 	y = 0
   10378 	r = x << y
   10379 	if r != 32767 {
   10380 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10381 	}
   10382 	y = 1
   10383 	r = x << y
   10384 	if r != -2 {
   10385 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10386 	}
   10387 	y = 4294967295
   10388 	r = x << y
   10389 	if r != 0 {
   10390 		t.Errorf("32767 %s 4294967295 = %d, want 0", "<<", r)
   10391 	}
   10392 }
   10393 func TestConstFoldint16uint32rsh(t *testing.T) {
   10394 	var x, r int16
   10395 	var y uint32
   10396 	x = -32768
   10397 	y = 0
   10398 	r = x >> y
   10399 	if r != -32768 {
   10400 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10401 	}
   10402 	y = 1
   10403 	r = x >> y
   10404 	if r != -16384 {
   10405 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10406 	}
   10407 	y = 4294967295
   10408 	r = x >> y
   10409 	if r != -1 {
   10410 		t.Errorf("-32768 %s 4294967295 = %d, want -1", ">>", r)
   10411 	}
   10412 	x = -32767
   10413 	y = 0
   10414 	r = x >> y
   10415 	if r != -32767 {
   10416 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10417 	}
   10418 	y = 1
   10419 	r = x >> y
   10420 	if r != -16384 {
   10421 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10422 	}
   10423 	y = 4294967295
   10424 	r = x >> y
   10425 	if r != -1 {
   10426 		t.Errorf("-32767 %s 4294967295 = %d, want -1", ">>", r)
   10427 	}
   10428 	x = -1
   10429 	y = 0
   10430 	r = x >> y
   10431 	if r != -1 {
   10432 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10433 	}
   10434 	y = 1
   10435 	r = x >> y
   10436 	if r != -1 {
   10437 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10438 	}
   10439 	y = 4294967295
   10440 	r = x >> y
   10441 	if r != -1 {
   10442 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   10443 	}
   10444 	x = 0
   10445 	y = 0
   10446 	r = x >> y
   10447 	if r != 0 {
   10448 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10449 	}
   10450 	y = 1
   10451 	r = x >> y
   10452 	if r != 0 {
   10453 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10454 	}
   10455 	y = 4294967295
   10456 	r = x >> y
   10457 	if r != 0 {
   10458 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   10459 	}
   10460 	x = 1
   10461 	y = 0
   10462 	r = x >> y
   10463 	if r != 1 {
   10464 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10465 	}
   10466 	y = 1
   10467 	r = x >> y
   10468 	if r != 0 {
   10469 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10470 	}
   10471 	y = 4294967295
   10472 	r = x >> y
   10473 	if r != 0 {
   10474 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   10475 	}
   10476 	x = 32766
   10477 	y = 0
   10478 	r = x >> y
   10479 	if r != 32766 {
   10480 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10481 	}
   10482 	y = 1
   10483 	r = x >> y
   10484 	if r != 16383 {
   10485 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10486 	}
   10487 	y = 4294967295
   10488 	r = x >> y
   10489 	if r != 0 {
   10490 		t.Errorf("32766 %s 4294967295 = %d, want 0", ">>", r)
   10491 	}
   10492 	x = 32767
   10493 	y = 0
   10494 	r = x >> y
   10495 	if r != 32767 {
   10496 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10497 	}
   10498 	y = 1
   10499 	r = x >> y
   10500 	if r != 16383 {
   10501 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10502 	}
   10503 	y = 4294967295
   10504 	r = x >> y
   10505 	if r != 0 {
   10506 		t.Errorf("32767 %s 4294967295 = %d, want 0", ">>", r)
   10507 	}
   10508 }
   10509 func TestConstFoldint16uint16lsh(t *testing.T) {
   10510 	var x, r int16
   10511 	var y uint16
   10512 	x = -32768
   10513 	y = 0
   10514 	r = x << y
   10515 	if r != -32768 {
   10516 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   10517 	}
   10518 	y = 1
   10519 	r = x << y
   10520 	if r != 0 {
   10521 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   10522 	}
   10523 	y = 65535
   10524 	r = x << y
   10525 	if r != 0 {
   10526 		t.Errorf("-32768 %s 65535 = %d, want 0", "<<", r)
   10527 	}
   10528 	x = -32767
   10529 	y = 0
   10530 	r = x << y
   10531 	if r != -32767 {
   10532 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10533 	}
   10534 	y = 1
   10535 	r = x << y
   10536 	if r != 2 {
   10537 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10538 	}
   10539 	y = 65535
   10540 	r = x << y
   10541 	if r != 0 {
   10542 		t.Errorf("-32767 %s 65535 = %d, want 0", "<<", r)
   10543 	}
   10544 	x = -1
   10545 	y = 0
   10546 	r = x << y
   10547 	if r != -1 {
   10548 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10549 	}
   10550 	y = 1
   10551 	r = x << y
   10552 	if r != -2 {
   10553 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10554 	}
   10555 	y = 65535
   10556 	r = x << y
   10557 	if r != 0 {
   10558 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   10559 	}
   10560 	x = 0
   10561 	y = 0
   10562 	r = x << y
   10563 	if r != 0 {
   10564 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10565 	}
   10566 	y = 1
   10567 	r = x << y
   10568 	if r != 0 {
   10569 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10570 	}
   10571 	y = 65535
   10572 	r = x << y
   10573 	if r != 0 {
   10574 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   10575 	}
   10576 	x = 1
   10577 	y = 0
   10578 	r = x << y
   10579 	if r != 1 {
   10580 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10581 	}
   10582 	y = 1
   10583 	r = x << y
   10584 	if r != 2 {
   10585 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10586 	}
   10587 	y = 65535
   10588 	r = x << y
   10589 	if r != 0 {
   10590 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   10591 	}
   10592 	x = 32766
   10593 	y = 0
   10594 	r = x << y
   10595 	if r != 32766 {
   10596 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10597 	}
   10598 	y = 1
   10599 	r = x << y
   10600 	if r != -4 {
   10601 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10602 	}
   10603 	y = 65535
   10604 	r = x << y
   10605 	if r != 0 {
   10606 		t.Errorf("32766 %s 65535 = %d, want 0", "<<", r)
   10607 	}
   10608 	x = 32767
   10609 	y = 0
   10610 	r = x << y
   10611 	if r != 32767 {
   10612 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10613 	}
   10614 	y = 1
   10615 	r = x << y
   10616 	if r != -2 {
   10617 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10618 	}
   10619 	y = 65535
   10620 	r = x << y
   10621 	if r != 0 {
   10622 		t.Errorf("32767 %s 65535 = %d, want 0", "<<", r)
   10623 	}
   10624 }
   10625 func TestConstFoldint16uint16rsh(t *testing.T) {
   10626 	var x, r int16
   10627 	var y uint16
   10628 	x = -32768
   10629 	y = 0
   10630 	r = x >> y
   10631 	if r != -32768 {
   10632 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10633 	}
   10634 	y = 1
   10635 	r = x >> y
   10636 	if r != -16384 {
   10637 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10638 	}
   10639 	y = 65535
   10640 	r = x >> y
   10641 	if r != -1 {
   10642 		t.Errorf("-32768 %s 65535 = %d, want -1", ">>", r)
   10643 	}
   10644 	x = -32767
   10645 	y = 0
   10646 	r = x >> y
   10647 	if r != -32767 {
   10648 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10649 	}
   10650 	y = 1
   10651 	r = x >> y
   10652 	if r != -16384 {
   10653 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10654 	}
   10655 	y = 65535
   10656 	r = x >> y
   10657 	if r != -1 {
   10658 		t.Errorf("-32767 %s 65535 = %d, want -1", ">>", r)
   10659 	}
   10660 	x = -1
   10661 	y = 0
   10662 	r = x >> y
   10663 	if r != -1 {
   10664 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10665 	}
   10666 	y = 1
   10667 	r = x >> y
   10668 	if r != -1 {
   10669 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10670 	}
   10671 	y = 65535
   10672 	r = x >> y
   10673 	if r != -1 {
   10674 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   10675 	}
   10676 	x = 0
   10677 	y = 0
   10678 	r = x >> y
   10679 	if r != 0 {
   10680 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10681 	}
   10682 	y = 1
   10683 	r = x >> y
   10684 	if r != 0 {
   10685 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10686 	}
   10687 	y = 65535
   10688 	r = x >> y
   10689 	if r != 0 {
   10690 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   10691 	}
   10692 	x = 1
   10693 	y = 0
   10694 	r = x >> y
   10695 	if r != 1 {
   10696 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10697 	}
   10698 	y = 1
   10699 	r = x >> y
   10700 	if r != 0 {
   10701 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10702 	}
   10703 	y = 65535
   10704 	r = x >> y
   10705 	if r != 0 {
   10706 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   10707 	}
   10708 	x = 32766
   10709 	y = 0
   10710 	r = x >> y
   10711 	if r != 32766 {
   10712 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10713 	}
   10714 	y = 1
   10715 	r = x >> y
   10716 	if r != 16383 {
   10717 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10718 	}
   10719 	y = 65535
   10720 	r = x >> y
   10721 	if r != 0 {
   10722 		t.Errorf("32766 %s 65535 = %d, want 0", ">>", r)
   10723 	}
   10724 	x = 32767
   10725 	y = 0
   10726 	r = x >> y
   10727 	if r != 32767 {
   10728 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10729 	}
   10730 	y = 1
   10731 	r = x >> y
   10732 	if r != 16383 {
   10733 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10734 	}
   10735 	y = 65535
   10736 	r = x >> y
   10737 	if r != 0 {
   10738 		t.Errorf("32767 %s 65535 = %d, want 0", ">>", r)
   10739 	}
   10740 }
   10741 func TestConstFoldint16uint8lsh(t *testing.T) {
   10742 	var x, r int16
   10743 	var y uint8
   10744 	x = -32768
   10745 	y = 0
   10746 	r = x << y
   10747 	if r != -32768 {
   10748 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   10749 	}
   10750 	y = 1
   10751 	r = x << y
   10752 	if r != 0 {
   10753 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   10754 	}
   10755 	y = 255
   10756 	r = x << y
   10757 	if r != 0 {
   10758 		t.Errorf("-32768 %s 255 = %d, want 0", "<<", r)
   10759 	}
   10760 	x = -32767
   10761 	y = 0
   10762 	r = x << y
   10763 	if r != -32767 {
   10764 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10765 	}
   10766 	y = 1
   10767 	r = x << y
   10768 	if r != 2 {
   10769 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10770 	}
   10771 	y = 255
   10772 	r = x << y
   10773 	if r != 0 {
   10774 		t.Errorf("-32767 %s 255 = %d, want 0", "<<", r)
   10775 	}
   10776 	x = -1
   10777 	y = 0
   10778 	r = x << y
   10779 	if r != -1 {
   10780 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10781 	}
   10782 	y = 1
   10783 	r = x << y
   10784 	if r != -2 {
   10785 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10786 	}
   10787 	y = 255
   10788 	r = x << y
   10789 	if r != 0 {
   10790 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   10791 	}
   10792 	x = 0
   10793 	y = 0
   10794 	r = x << y
   10795 	if r != 0 {
   10796 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10797 	}
   10798 	y = 1
   10799 	r = x << y
   10800 	if r != 0 {
   10801 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10802 	}
   10803 	y = 255
   10804 	r = x << y
   10805 	if r != 0 {
   10806 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   10807 	}
   10808 	x = 1
   10809 	y = 0
   10810 	r = x << y
   10811 	if r != 1 {
   10812 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10813 	}
   10814 	y = 1
   10815 	r = x << y
   10816 	if r != 2 {
   10817 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10818 	}
   10819 	y = 255
   10820 	r = x << y
   10821 	if r != 0 {
   10822 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   10823 	}
   10824 	x = 32766
   10825 	y = 0
   10826 	r = x << y
   10827 	if r != 32766 {
   10828 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10829 	}
   10830 	y = 1
   10831 	r = x << y
   10832 	if r != -4 {
   10833 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10834 	}
   10835 	y = 255
   10836 	r = x << y
   10837 	if r != 0 {
   10838 		t.Errorf("32766 %s 255 = %d, want 0", "<<", r)
   10839 	}
   10840 	x = 32767
   10841 	y = 0
   10842 	r = x << y
   10843 	if r != 32767 {
   10844 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10845 	}
   10846 	y = 1
   10847 	r = x << y
   10848 	if r != -2 {
   10849 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10850 	}
   10851 	y = 255
   10852 	r = x << y
   10853 	if r != 0 {
   10854 		t.Errorf("32767 %s 255 = %d, want 0", "<<", r)
   10855 	}
   10856 }
   10857 func TestConstFoldint16uint8rsh(t *testing.T) {
   10858 	var x, r int16
   10859 	var y uint8
   10860 	x = -32768
   10861 	y = 0
   10862 	r = x >> y
   10863 	if r != -32768 {
   10864 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10865 	}
   10866 	y = 1
   10867 	r = x >> y
   10868 	if r != -16384 {
   10869 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10870 	}
   10871 	y = 255
   10872 	r = x >> y
   10873 	if r != -1 {
   10874 		t.Errorf("-32768 %s 255 = %d, want -1", ">>", r)
   10875 	}
   10876 	x = -32767
   10877 	y = 0
   10878 	r = x >> y
   10879 	if r != -32767 {
   10880 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10881 	}
   10882 	y = 1
   10883 	r = x >> y
   10884 	if r != -16384 {
   10885 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10886 	}
   10887 	y = 255
   10888 	r = x >> y
   10889 	if r != -1 {
   10890 		t.Errorf("-32767 %s 255 = %d, want -1", ">>", r)
   10891 	}
   10892 	x = -1
   10893 	y = 0
   10894 	r = x >> y
   10895 	if r != -1 {
   10896 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10897 	}
   10898 	y = 1
   10899 	r = x >> y
   10900 	if r != -1 {
   10901 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10902 	}
   10903 	y = 255
   10904 	r = x >> y
   10905 	if r != -1 {
   10906 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   10907 	}
   10908 	x = 0
   10909 	y = 0
   10910 	r = x >> y
   10911 	if r != 0 {
   10912 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10913 	}
   10914 	y = 1
   10915 	r = x >> y
   10916 	if r != 0 {
   10917 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10918 	}
   10919 	y = 255
   10920 	r = x >> y
   10921 	if r != 0 {
   10922 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   10923 	}
   10924 	x = 1
   10925 	y = 0
   10926 	r = x >> y
   10927 	if r != 1 {
   10928 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10929 	}
   10930 	y = 1
   10931 	r = x >> y
   10932 	if r != 0 {
   10933 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10934 	}
   10935 	y = 255
   10936 	r = x >> y
   10937 	if r != 0 {
   10938 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   10939 	}
   10940 	x = 32766
   10941 	y = 0
   10942 	r = x >> y
   10943 	if r != 32766 {
   10944 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10945 	}
   10946 	y = 1
   10947 	r = x >> y
   10948 	if r != 16383 {
   10949 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10950 	}
   10951 	y = 255
   10952 	r = x >> y
   10953 	if r != 0 {
   10954 		t.Errorf("32766 %s 255 = %d, want 0", ">>", r)
   10955 	}
   10956 	x = 32767
   10957 	y = 0
   10958 	r = x >> y
   10959 	if r != 32767 {
   10960 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10961 	}
   10962 	y = 1
   10963 	r = x >> y
   10964 	if r != 16383 {
   10965 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10966 	}
   10967 	y = 255
   10968 	r = x >> y
   10969 	if r != 0 {
   10970 		t.Errorf("32767 %s 255 = %d, want 0", ">>", r)
   10971 	}
   10972 }
   10973 func TestConstFolduint8uint64lsh(t *testing.T) {
   10974 	var x, r uint8
   10975 	var y uint64
   10976 	x = 0
   10977 	y = 0
   10978 	r = x << y
   10979 	if r != 0 {
   10980 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10981 	}
   10982 	y = 1
   10983 	r = x << y
   10984 	if r != 0 {
   10985 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10986 	}
   10987 	y = 4294967296
   10988 	r = x << y
   10989 	if r != 0 {
   10990 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   10991 	}
   10992 	y = 18446744073709551615
   10993 	r = x << y
   10994 	if r != 0 {
   10995 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   10996 	}
   10997 	x = 1
   10998 	y = 0
   10999 	r = x << y
   11000 	if r != 1 {
   11001 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11002 	}
   11003 	y = 1
   11004 	r = x << y
   11005 	if r != 2 {
   11006 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11007 	}
   11008 	y = 4294967296
   11009 	r = x << y
   11010 	if r != 0 {
   11011 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   11012 	}
   11013 	y = 18446744073709551615
   11014 	r = x << y
   11015 	if r != 0 {
   11016 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   11017 	}
   11018 	x = 255
   11019 	y = 0
   11020 	r = x << y
   11021 	if r != 255 {
   11022 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11023 	}
   11024 	y = 1
   11025 	r = x << y
   11026 	if r != 254 {
   11027 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11028 	}
   11029 	y = 4294967296
   11030 	r = x << y
   11031 	if r != 0 {
   11032 		t.Errorf("255 %s 4294967296 = %d, want 0", "<<", r)
   11033 	}
   11034 	y = 18446744073709551615
   11035 	r = x << y
   11036 	if r != 0 {
   11037 		t.Errorf("255 %s 18446744073709551615 = %d, want 0", "<<", r)
   11038 	}
   11039 }
   11040 func TestConstFolduint8uint64rsh(t *testing.T) {
   11041 	var x, r uint8
   11042 	var y uint64
   11043 	x = 0
   11044 	y = 0
   11045 	r = x >> y
   11046 	if r != 0 {
   11047 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11048 	}
   11049 	y = 1
   11050 	r = x >> y
   11051 	if r != 0 {
   11052 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11053 	}
   11054 	y = 4294967296
   11055 	r = x >> y
   11056 	if r != 0 {
   11057 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   11058 	}
   11059 	y = 18446744073709551615
   11060 	r = x >> y
   11061 	if r != 0 {
   11062 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   11063 	}
   11064 	x = 1
   11065 	y = 0
   11066 	r = x >> y
   11067 	if r != 1 {
   11068 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11069 	}
   11070 	y = 1
   11071 	r = x >> y
   11072 	if r != 0 {
   11073 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11074 	}
   11075 	y = 4294967296
   11076 	r = x >> y
   11077 	if r != 0 {
   11078 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   11079 	}
   11080 	y = 18446744073709551615
   11081 	r = x >> y
   11082 	if r != 0 {
   11083 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   11084 	}
   11085 	x = 255
   11086 	y = 0
   11087 	r = x >> y
   11088 	if r != 255 {
   11089 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11090 	}
   11091 	y = 1
   11092 	r = x >> y
   11093 	if r != 127 {
   11094 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11095 	}
   11096 	y = 4294967296
   11097 	r = x >> y
   11098 	if r != 0 {
   11099 		t.Errorf("255 %s 4294967296 = %d, want 0", ">>", r)
   11100 	}
   11101 	y = 18446744073709551615
   11102 	r = x >> y
   11103 	if r != 0 {
   11104 		t.Errorf("255 %s 18446744073709551615 = %d, want 0", ">>", r)
   11105 	}
   11106 }
   11107 func TestConstFolduint8uint32lsh(t *testing.T) {
   11108 	var x, r uint8
   11109 	var y uint32
   11110 	x = 0
   11111 	y = 0
   11112 	r = x << y
   11113 	if r != 0 {
   11114 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11115 	}
   11116 	y = 1
   11117 	r = x << y
   11118 	if r != 0 {
   11119 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11120 	}
   11121 	y = 4294967295
   11122 	r = x << y
   11123 	if r != 0 {
   11124 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   11125 	}
   11126 	x = 1
   11127 	y = 0
   11128 	r = x << y
   11129 	if r != 1 {
   11130 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11131 	}
   11132 	y = 1
   11133 	r = x << y
   11134 	if r != 2 {
   11135 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11136 	}
   11137 	y = 4294967295
   11138 	r = x << y
   11139 	if r != 0 {
   11140 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   11141 	}
   11142 	x = 255
   11143 	y = 0
   11144 	r = x << y
   11145 	if r != 255 {
   11146 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11147 	}
   11148 	y = 1
   11149 	r = x << y
   11150 	if r != 254 {
   11151 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11152 	}
   11153 	y = 4294967295
   11154 	r = x << y
   11155 	if r != 0 {
   11156 		t.Errorf("255 %s 4294967295 = %d, want 0", "<<", r)
   11157 	}
   11158 }
   11159 func TestConstFolduint8uint32rsh(t *testing.T) {
   11160 	var x, r uint8
   11161 	var y uint32
   11162 	x = 0
   11163 	y = 0
   11164 	r = x >> y
   11165 	if r != 0 {
   11166 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11167 	}
   11168 	y = 1
   11169 	r = x >> y
   11170 	if r != 0 {
   11171 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11172 	}
   11173 	y = 4294967295
   11174 	r = x >> y
   11175 	if r != 0 {
   11176 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   11177 	}
   11178 	x = 1
   11179 	y = 0
   11180 	r = x >> y
   11181 	if r != 1 {
   11182 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11183 	}
   11184 	y = 1
   11185 	r = x >> y
   11186 	if r != 0 {
   11187 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11188 	}
   11189 	y = 4294967295
   11190 	r = x >> y
   11191 	if r != 0 {
   11192 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   11193 	}
   11194 	x = 255
   11195 	y = 0
   11196 	r = x >> y
   11197 	if r != 255 {
   11198 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11199 	}
   11200 	y = 1
   11201 	r = x >> y
   11202 	if r != 127 {
   11203 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11204 	}
   11205 	y = 4294967295
   11206 	r = x >> y
   11207 	if r != 0 {
   11208 		t.Errorf("255 %s 4294967295 = %d, want 0", ">>", r)
   11209 	}
   11210 }
   11211 func TestConstFolduint8uint16lsh(t *testing.T) {
   11212 	var x, r uint8
   11213 	var y uint16
   11214 	x = 0
   11215 	y = 0
   11216 	r = x << y
   11217 	if r != 0 {
   11218 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11219 	}
   11220 	y = 1
   11221 	r = x << y
   11222 	if r != 0 {
   11223 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11224 	}
   11225 	y = 65535
   11226 	r = x << y
   11227 	if r != 0 {
   11228 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   11229 	}
   11230 	x = 1
   11231 	y = 0
   11232 	r = x << y
   11233 	if r != 1 {
   11234 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11235 	}
   11236 	y = 1
   11237 	r = x << y
   11238 	if r != 2 {
   11239 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11240 	}
   11241 	y = 65535
   11242 	r = x << y
   11243 	if r != 0 {
   11244 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   11245 	}
   11246 	x = 255
   11247 	y = 0
   11248 	r = x << y
   11249 	if r != 255 {
   11250 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11251 	}
   11252 	y = 1
   11253 	r = x << y
   11254 	if r != 254 {
   11255 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11256 	}
   11257 	y = 65535
   11258 	r = x << y
   11259 	if r != 0 {
   11260 		t.Errorf("255 %s 65535 = %d, want 0", "<<", r)
   11261 	}
   11262 }
   11263 func TestConstFolduint8uint16rsh(t *testing.T) {
   11264 	var x, r uint8
   11265 	var y uint16
   11266 	x = 0
   11267 	y = 0
   11268 	r = x >> y
   11269 	if r != 0 {
   11270 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11271 	}
   11272 	y = 1
   11273 	r = x >> y
   11274 	if r != 0 {
   11275 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11276 	}
   11277 	y = 65535
   11278 	r = x >> y
   11279 	if r != 0 {
   11280 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   11281 	}
   11282 	x = 1
   11283 	y = 0
   11284 	r = x >> y
   11285 	if r != 1 {
   11286 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11287 	}
   11288 	y = 1
   11289 	r = x >> y
   11290 	if r != 0 {
   11291 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11292 	}
   11293 	y = 65535
   11294 	r = x >> y
   11295 	if r != 0 {
   11296 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   11297 	}
   11298 	x = 255
   11299 	y = 0
   11300 	r = x >> y
   11301 	if r != 255 {
   11302 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11303 	}
   11304 	y = 1
   11305 	r = x >> y
   11306 	if r != 127 {
   11307 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11308 	}
   11309 	y = 65535
   11310 	r = x >> y
   11311 	if r != 0 {
   11312 		t.Errorf("255 %s 65535 = %d, want 0", ">>", r)
   11313 	}
   11314 }
   11315 func TestConstFolduint8uint8lsh(t *testing.T) {
   11316 	var x, r uint8
   11317 	var y uint8
   11318 	x = 0
   11319 	y = 0
   11320 	r = x << y
   11321 	if r != 0 {
   11322 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11323 	}
   11324 	y = 1
   11325 	r = x << y
   11326 	if r != 0 {
   11327 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11328 	}
   11329 	y = 255
   11330 	r = x << y
   11331 	if r != 0 {
   11332 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   11333 	}
   11334 	x = 1
   11335 	y = 0
   11336 	r = x << y
   11337 	if r != 1 {
   11338 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11339 	}
   11340 	y = 1
   11341 	r = x << y
   11342 	if r != 2 {
   11343 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11344 	}
   11345 	y = 255
   11346 	r = x << y
   11347 	if r != 0 {
   11348 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   11349 	}
   11350 	x = 255
   11351 	y = 0
   11352 	r = x << y
   11353 	if r != 255 {
   11354 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11355 	}
   11356 	y = 1
   11357 	r = x << y
   11358 	if r != 254 {
   11359 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11360 	}
   11361 	y = 255
   11362 	r = x << y
   11363 	if r != 0 {
   11364 		t.Errorf("255 %s 255 = %d, want 0", "<<", r)
   11365 	}
   11366 }
   11367 func TestConstFolduint8uint8rsh(t *testing.T) {
   11368 	var x, r uint8
   11369 	var y uint8
   11370 	x = 0
   11371 	y = 0
   11372 	r = x >> y
   11373 	if r != 0 {
   11374 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11375 	}
   11376 	y = 1
   11377 	r = x >> y
   11378 	if r != 0 {
   11379 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11380 	}
   11381 	y = 255
   11382 	r = x >> y
   11383 	if r != 0 {
   11384 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   11385 	}
   11386 	x = 1
   11387 	y = 0
   11388 	r = x >> y
   11389 	if r != 1 {
   11390 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11391 	}
   11392 	y = 1
   11393 	r = x >> y
   11394 	if r != 0 {
   11395 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11396 	}
   11397 	y = 255
   11398 	r = x >> y
   11399 	if r != 0 {
   11400 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   11401 	}
   11402 	x = 255
   11403 	y = 0
   11404 	r = x >> y
   11405 	if r != 255 {
   11406 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11407 	}
   11408 	y = 1
   11409 	r = x >> y
   11410 	if r != 127 {
   11411 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11412 	}
   11413 	y = 255
   11414 	r = x >> y
   11415 	if r != 0 {
   11416 		t.Errorf("255 %s 255 = %d, want 0", ">>", r)
   11417 	}
   11418 }
   11419 func TestConstFoldint8uint64lsh(t *testing.T) {
   11420 	var x, r int8
   11421 	var y uint64
   11422 	x = -128
   11423 	y = 0
   11424 	r = x << y
   11425 	if r != -128 {
   11426 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   11427 	}
   11428 	y = 1
   11429 	r = x << y
   11430 	if r != 0 {
   11431 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   11432 	}
   11433 	y = 4294967296
   11434 	r = x << y
   11435 	if r != 0 {
   11436 		t.Errorf("-128 %s 4294967296 = %d, want 0", "<<", r)
   11437 	}
   11438 	y = 18446744073709551615
   11439 	r = x << y
   11440 	if r != 0 {
   11441 		t.Errorf("-128 %s 18446744073709551615 = %d, want 0", "<<", r)
   11442 	}
   11443 	x = -127
   11444 	y = 0
   11445 	r = x << y
   11446 	if r != -127 {
   11447 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   11448 	}
   11449 	y = 1
   11450 	r = x << y
   11451 	if r != 2 {
   11452 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   11453 	}
   11454 	y = 4294967296
   11455 	r = x << y
   11456 	if r != 0 {
   11457 		t.Errorf("-127 %s 4294967296 = %d, want 0", "<<", r)
   11458 	}
   11459 	y = 18446744073709551615
   11460 	r = x << y
   11461 	if r != 0 {
   11462 		t.Errorf("-127 %s 18446744073709551615 = %d, want 0", "<<", r)
   11463 	}
   11464 	x = -1
   11465 	y = 0
   11466 	r = x << y
   11467 	if r != -1 {
   11468 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   11469 	}
   11470 	y = 1
   11471 	r = x << y
   11472 	if r != -2 {
   11473 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   11474 	}
   11475 	y = 4294967296
   11476 	r = x << y
   11477 	if r != 0 {
   11478 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   11479 	}
   11480 	y = 18446744073709551615
   11481 	r = x << y
   11482 	if r != 0 {
   11483 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   11484 	}
   11485 	x = 0
   11486 	y = 0
   11487 	r = x << y
   11488 	if r != 0 {
   11489 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11490 	}
   11491 	y = 1
   11492 	r = x << y
   11493 	if r != 0 {
   11494 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11495 	}
   11496 	y = 4294967296
   11497 	r = x << y
   11498 	if r != 0 {
   11499 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   11500 	}
   11501 	y = 18446744073709551615
   11502 	r = x << y
   11503 	if r != 0 {
   11504 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   11505 	}
   11506 	x = 1
   11507 	y = 0
   11508 	r = x << y
   11509 	if r != 1 {
   11510 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11511 	}
   11512 	y = 1
   11513 	r = x << y
   11514 	if r != 2 {
   11515 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11516 	}
   11517 	y = 4294967296
   11518 	r = x << y
   11519 	if r != 0 {
   11520 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   11521 	}
   11522 	y = 18446744073709551615
   11523 	r = x << y
   11524 	if r != 0 {
   11525 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   11526 	}
   11527 	x = 126
   11528 	y = 0
   11529 	r = x << y
   11530 	if r != 126 {
   11531 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   11532 	}
   11533 	y = 1
   11534 	r = x << y
   11535 	if r != -4 {
   11536 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   11537 	}
   11538 	y = 4294967296
   11539 	r = x << y
   11540 	if r != 0 {
   11541 		t.Errorf("126 %s 4294967296 = %d, want 0", "<<", r)
   11542 	}
   11543 	y = 18446744073709551615
   11544 	r = x << y
   11545 	if r != 0 {
   11546 		t.Errorf("126 %s 18446744073709551615 = %d, want 0", "<<", r)
   11547 	}
   11548 	x = 127
   11549 	y = 0
   11550 	r = x << y
   11551 	if r != 127 {
   11552 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   11553 	}
   11554 	y = 1
   11555 	r = x << y
   11556 	if r != -2 {
   11557 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   11558 	}
   11559 	y = 4294967296
   11560 	r = x << y
   11561 	if r != 0 {
   11562 		t.Errorf("127 %s 4294967296 = %d, want 0", "<<", r)
   11563 	}
   11564 	y = 18446744073709551615
   11565 	r = x << y
   11566 	if r != 0 {
   11567 		t.Errorf("127 %s 18446744073709551615 = %d, want 0", "<<", r)
   11568 	}
   11569 }
   11570 func TestConstFoldint8uint64rsh(t *testing.T) {
   11571 	var x, r int8
   11572 	var y uint64
   11573 	x = -128
   11574 	y = 0
   11575 	r = x >> y
   11576 	if r != -128 {
   11577 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   11578 	}
   11579 	y = 1
   11580 	r = x >> y
   11581 	if r != -64 {
   11582 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   11583 	}
   11584 	y = 4294967296
   11585 	r = x >> y
   11586 	if r != -1 {
   11587 		t.Errorf("-128 %s 4294967296 = %d, want -1", ">>", r)
   11588 	}
   11589 	y = 18446744073709551615
   11590 	r = x >> y
   11591 	if r != -1 {
   11592 		t.Errorf("-128 %s 18446744073709551615 = %d, want -1", ">>", r)
   11593 	}
   11594 	x = -127
   11595 	y = 0
   11596 	r = x >> y
   11597 	if r != -127 {
   11598 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   11599 	}
   11600 	y = 1
   11601 	r = x >> y
   11602 	if r != -64 {
   11603 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   11604 	}
   11605 	y = 4294967296
   11606 	r = x >> y
   11607 	if r != -1 {
   11608 		t.Errorf("-127 %s 4294967296 = %d, want -1", ">>", r)
   11609 	}
   11610 	y = 18446744073709551615
   11611 	r = x >> y
   11612 	if r != -1 {
   11613 		t.Errorf("-127 %s 18446744073709551615 = %d, want -1", ">>", r)
   11614 	}
   11615 	x = -1
   11616 	y = 0
   11617 	r = x >> y
   11618 	if r != -1 {
   11619 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   11620 	}
   11621 	y = 1
   11622 	r = x >> y
   11623 	if r != -1 {
   11624 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   11625 	}
   11626 	y = 4294967296
   11627 	r = x >> y
   11628 	if r != -1 {
   11629 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   11630 	}
   11631 	y = 18446744073709551615
   11632 	r = x >> y
   11633 	if r != -1 {
   11634 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   11635 	}
   11636 	x = 0
   11637 	y = 0
   11638 	r = x >> y
   11639 	if r != 0 {
   11640 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11641 	}
   11642 	y = 1
   11643 	r = x >> y
   11644 	if r != 0 {
   11645 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11646 	}
   11647 	y = 4294967296
   11648 	r = x >> y
   11649 	if r != 0 {
   11650 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   11651 	}
   11652 	y = 18446744073709551615
   11653 	r = x >> y
   11654 	if r != 0 {
   11655 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   11656 	}
   11657 	x = 1
   11658 	y = 0
   11659 	r = x >> y
   11660 	if r != 1 {
   11661 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11662 	}
   11663 	y = 1
   11664 	r = x >> y
   11665 	if r != 0 {
   11666 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11667 	}
   11668 	y = 4294967296
   11669 	r = x >> y
   11670 	if r != 0 {
   11671 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   11672 	}
   11673 	y = 18446744073709551615
   11674 	r = x >> y
   11675 	if r != 0 {
   11676 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   11677 	}
   11678 	x = 126
   11679 	y = 0
   11680 	r = x >> y
   11681 	if r != 126 {
   11682 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   11683 	}
   11684 	y = 1
   11685 	r = x >> y
   11686 	if r != 63 {
   11687 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   11688 	}
   11689 	y = 4294967296
   11690 	r = x >> y
   11691 	if r != 0 {
   11692 		t.Errorf("126 %s 4294967296 = %d, want 0", ">>", r)
   11693 	}
   11694 	y = 18446744073709551615
   11695 	r = x >> y
   11696 	if r != 0 {
   11697 		t.Errorf("126 %s 18446744073709551615 = %d, want 0", ">>", r)
   11698 	}
   11699 	x = 127
   11700 	y = 0
   11701 	r = x >> y
   11702 	if r != 127 {
   11703 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   11704 	}
   11705 	y = 1
   11706 	r = x >> y
   11707 	if r != 63 {
   11708 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   11709 	}
   11710 	y = 4294967296
   11711 	r = x >> y
   11712 	if r != 0 {
   11713 		t.Errorf("127 %s 4294967296 = %d, want 0", ">>", r)
   11714 	}
   11715 	y = 18446744073709551615
   11716 	r = x >> y
   11717 	if r != 0 {
   11718 		t.Errorf("127 %s 18446744073709551615 = %d, want 0", ">>", r)
   11719 	}
   11720 }
   11721 func TestConstFoldint8uint32lsh(t *testing.T) {
   11722 	var x, r int8
   11723 	var y uint32
   11724 	x = -128
   11725 	y = 0
   11726 	r = x << y
   11727 	if r != -128 {
   11728 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   11729 	}
   11730 	y = 1
   11731 	r = x << y
   11732 	if r != 0 {
   11733 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   11734 	}
   11735 	y = 4294967295
   11736 	r = x << y
   11737 	if r != 0 {
   11738 		t.Errorf("-128 %s 4294967295 = %d, want 0", "<<", r)
   11739 	}
   11740 	x = -127
   11741 	y = 0
   11742 	r = x << y
   11743 	if r != -127 {
   11744 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   11745 	}
   11746 	y = 1
   11747 	r = x << y
   11748 	if r != 2 {
   11749 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   11750 	}
   11751 	y = 4294967295
   11752 	r = x << y
   11753 	if r != 0 {
   11754 		t.Errorf("-127 %s 4294967295 = %d, want 0", "<<", r)
   11755 	}
   11756 	x = -1
   11757 	y = 0
   11758 	r = x << y
   11759 	if r != -1 {
   11760 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   11761 	}
   11762 	y = 1
   11763 	r = x << y
   11764 	if r != -2 {
   11765 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   11766 	}
   11767 	y = 4294967295
   11768 	r = x << y
   11769 	if r != 0 {
   11770 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   11771 	}
   11772 	x = 0
   11773 	y = 0
   11774 	r = x << y
   11775 	if r != 0 {
   11776 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11777 	}
   11778 	y = 1
   11779 	r = x << y
   11780 	if r != 0 {
   11781 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11782 	}
   11783 	y = 4294967295
   11784 	r = x << y
   11785 	if r != 0 {
   11786 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   11787 	}
   11788 	x = 1
   11789 	y = 0
   11790 	r = x << y
   11791 	if r != 1 {
   11792 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11793 	}
   11794 	y = 1
   11795 	r = x << y
   11796 	if r != 2 {
   11797 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11798 	}
   11799 	y = 4294967295
   11800 	r = x << y
   11801 	if r != 0 {
   11802 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   11803 	}
   11804 	x = 126
   11805 	y = 0
   11806 	r = x << y
   11807 	if r != 126 {
   11808 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   11809 	}
   11810 	y = 1
   11811 	r = x << y
   11812 	if r != -4 {
   11813 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   11814 	}
   11815 	y = 4294967295
   11816 	r = x << y
   11817 	if r != 0 {
   11818 		t.Errorf("126 %s 4294967295 = %d, want 0", "<<", r)
   11819 	}
   11820 	x = 127
   11821 	y = 0
   11822 	r = x << y
   11823 	if r != 127 {
   11824 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   11825 	}
   11826 	y = 1
   11827 	r = x << y
   11828 	if r != -2 {
   11829 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   11830 	}
   11831 	y = 4294967295
   11832 	r = x << y
   11833 	if r != 0 {
   11834 		t.Errorf("127 %s 4294967295 = %d, want 0", "<<", r)
   11835 	}
   11836 }
   11837 func TestConstFoldint8uint32rsh(t *testing.T) {
   11838 	var x, r int8
   11839 	var y uint32
   11840 	x = -128
   11841 	y = 0
   11842 	r = x >> y
   11843 	if r != -128 {
   11844 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   11845 	}
   11846 	y = 1
   11847 	r = x >> y
   11848 	if r != -64 {
   11849 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   11850 	}
   11851 	y = 4294967295
   11852 	r = x >> y
   11853 	if r != -1 {
   11854 		t.Errorf("-128 %s 4294967295 = %d, want -1", ">>", r)
   11855 	}
   11856 	x = -127
   11857 	y = 0
   11858 	r = x >> y
   11859 	if r != -127 {
   11860 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   11861 	}
   11862 	y = 1
   11863 	r = x >> y
   11864 	if r != -64 {
   11865 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   11866 	}
   11867 	y = 4294967295
   11868 	r = x >> y
   11869 	if r != -1 {
   11870 		t.Errorf("-127 %s 4294967295 = %d, want -1", ">>", r)
   11871 	}
   11872 	x = -1
   11873 	y = 0
   11874 	r = x >> y
   11875 	if r != -1 {
   11876 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   11877 	}
   11878 	y = 1
   11879 	r = x >> y
   11880 	if r != -1 {
   11881 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   11882 	}
   11883 	y = 4294967295
   11884 	r = x >> y
   11885 	if r != -1 {
   11886 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   11887 	}
   11888 	x = 0
   11889 	y = 0
   11890 	r = x >> y
   11891 	if r != 0 {
   11892 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11893 	}
   11894 	y = 1
   11895 	r = x >> y
   11896 	if r != 0 {
   11897 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11898 	}
   11899 	y = 4294967295
   11900 	r = x >> y
   11901 	if r != 0 {
   11902 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   11903 	}
   11904 	x = 1
   11905 	y = 0
   11906 	r = x >> y
   11907 	if r != 1 {
   11908 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11909 	}
   11910 	y = 1
   11911 	r = x >> y
   11912 	if r != 0 {
   11913 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11914 	}
   11915 	y = 4294967295
   11916 	r = x >> y
   11917 	if r != 0 {
   11918 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   11919 	}
   11920 	x = 126
   11921 	y = 0
   11922 	r = x >> y
   11923 	if r != 126 {
   11924 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   11925 	}
   11926 	y = 1
   11927 	r = x >> y
   11928 	if r != 63 {
   11929 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   11930 	}
   11931 	y = 4294967295
   11932 	r = x >> y
   11933 	if r != 0 {
   11934 		t.Errorf("126 %s 4294967295 = %d, want 0", ">>", r)
   11935 	}
   11936 	x = 127
   11937 	y = 0
   11938 	r = x >> y
   11939 	if r != 127 {
   11940 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   11941 	}
   11942 	y = 1
   11943 	r = x >> y
   11944 	if r != 63 {
   11945 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   11946 	}
   11947 	y = 4294967295
   11948 	r = x >> y
   11949 	if r != 0 {
   11950 		t.Errorf("127 %s 4294967295 = %d, want 0", ">>", r)
   11951 	}
   11952 }
   11953 func TestConstFoldint8uint16lsh(t *testing.T) {
   11954 	var x, r int8
   11955 	var y uint16
   11956 	x = -128
   11957 	y = 0
   11958 	r = x << y
   11959 	if r != -128 {
   11960 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   11961 	}
   11962 	y = 1
   11963 	r = x << y
   11964 	if r != 0 {
   11965 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   11966 	}
   11967 	y = 65535
   11968 	r = x << y
   11969 	if r != 0 {
   11970 		t.Errorf("-128 %s 65535 = %d, want 0", "<<", r)
   11971 	}
   11972 	x = -127
   11973 	y = 0
   11974 	r = x << y
   11975 	if r != -127 {
   11976 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   11977 	}
   11978 	y = 1
   11979 	r = x << y
   11980 	if r != 2 {
   11981 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   11982 	}
   11983 	y = 65535
   11984 	r = x << y
   11985 	if r != 0 {
   11986 		t.Errorf("-127 %s 65535 = %d, want 0", "<<", r)
   11987 	}
   11988 	x = -1
   11989 	y = 0
   11990 	r = x << y
   11991 	if r != -1 {
   11992 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   11993 	}
   11994 	y = 1
   11995 	r = x << y
   11996 	if r != -2 {
   11997 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   11998 	}
   11999 	y = 65535
   12000 	r = x << y
   12001 	if r != 0 {
   12002 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   12003 	}
   12004 	x = 0
   12005 	y = 0
   12006 	r = x << y
   12007 	if r != 0 {
   12008 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   12009 	}
   12010 	y = 1
   12011 	r = x << y
   12012 	if r != 0 {
   12013 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   12014 	}
   12015 	y = 65535
   12016 	r = x << y
   12017 	if r != 0 {
   12018 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   12019 	}
   12020 	x = 1
   12021 	y = 0
   12022 	r = x << y
   12023 	if r != 1 {
   12024 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   12025 	}
   12026 	y = 1
   12027 	r = x << y
   12028 	if r != 2 {
   12029 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   12030 	}
   12031 	y = 65535
   12032 	r = x << y
   12033 	if r != 0 {
   12034 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   12035 	}
   12036 	x = 126
   12037 	y = 0
   12038 	r = x << y
   12039 	if r != 126 {
   12040 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   12041 	}
   12042 	y = 1
   12043 	r = x << y
   12044 	if r != -4 {
   12045 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   12046 	}
   12047 	y = 65535
   12048 	r = x << y
   12049 	if r != 0 {
   12050 		t.Errorf("126 %s 65535 = %d, want 0", "<<", r)
   12051 	}
   12052 	x = 127
   12053 	y = 0
   12054 	r = x << y
   12055 	if r != 127 {
   12056 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   12057 	}
   12058 	y = 1
   12059 	r = x << y
   12060 	if r != -2 {
   12061 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   12062 	}
   12063 	y = 65535
   12064 	r = x << y
   12065 	if r != 0 {
   12066 		t.Errorf("127 %s 65535 = %d, want 0", "<<", r)
   12067 	}
   12068 }
   12069 func TestConstFoldint8uint16rsh(t *testing.T) {
   12070 	var x, r int8
   12071 	var y uint16
   12072 	x = -128
   12073 	y = 0
   12074 	r = x >> y
   12075 	if r != -128 {
   12076 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   12077 	}
   12078 	y = 1
   12079 	r = x >> y
   12080 	if r != -64 {
   12081 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   12082 	}
   12083 	y = 65535
   12084 	r = x >> y
   12085 	if r != -1 {
   12086 		t.Errorf("-128 %s 65535 = %d, want -1", ">>", r)
   12087 	}
   12088 	x = -127
   12089 	y = 0
   12090 	r = x >> y
   12091 	if r != -127 {
   12092 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   12093 	}
   12094 	y = 1
   12095 	r = x >> y
   12096 	if r != -64 {
   12097 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   12098 	}
   12099 	y = 65535
   12100 	r = x >> y
   12101 	if r != -1 {
   12102 		t.Errorf("-127 %s 65535 = %d, want -1", ">>", r)
   12103 	}
   12104 	x = -1
   12105 	y = 0
   12106 	r = x >> y
   12107 	if r != -1 {
   12108 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   12109 	}
   12110 	y = 1
   12111 	r = x >> y
   12112 	if r != -1 {
   12113 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   12114 	}
   12115 	y = 65535
   12116 	r = x >> y
   12117 	if r != -1 {
   12118 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   12119 	}
   12120 	x = 0
   12121 	y = 0
   12122 	r = x >> y
   12123 	if r != 0 {
   12124 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   12125 	}
   12126 	y = 1
   12127 	r = x >> y
   12128 	if r != 0 {
   12129 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   12130 	}
   12131 	y = 65535
   12132 	r = x >> y
   12133 	if r != 0 {
   12134 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   12135 	}
   12136 	x = 1
   12137 	y = 0
   12138 	r = x >> y
   12139 	if r != 1 {
   12140 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   12141 	}
   12142 	y = 1
   12143 	r = x >> y
   12144 	if r != 0 {
   12145 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   12146 	}
   12147 	y = 65535
   12148 	r = x >> y
   12149 	if r != 0 {
   12150 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   12151 	}
   12152 	x = 126
   12153 	y = 0
   12154 	r = x >> y
   12155 	if r != 126 {
   12156 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   12157 	}
   12158 	y = 1
   12159 	r = x >> y
   12160 	if r != 63 {
   12161 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   12162 	}
   12163 	y = 65535
   12164 	r = x >> y
   12165 	if r != 0 {
   12166 		t.Errorf("126 %s 65535 = %d, want 0", ">>", r)
   12167 	}
   12168 	x = 127
   12169 	y = 0
   12170 	r = x >> y
   12171 	if r != 127 {
   12172 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   12173 	}
   12174 	y = 1
   12175 	r = x >> y
   12176 	if r != 63 {
   12177 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   12178 	}
   12179 	y = 65535
   12180 	r = x >> y
   12181 	if r != 0 {
   12182 		t.Errorf("127 %s 65535 = %d, want 0", ">>", r)
   12183 	}
   12184 }
   12185 func TestConstFoldint8uint8lsh(t *testing.T) {
   12186 	var x, r int8
   12187 	var y uint8
   12188 	x = -128
   12189 	y = 0
   12190 	r = x << y
   12191 	if r != -128 {
   12192 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   12193 	}
   12194 	y = 1
   12195 	r = x << y
   12196 	if r != 0 {
   12197 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   12198 	}
   12199 	y = 255
   12200 	r = x << y
   12201 	if r != 0 {
   12202 		t.Errorf("-128 %s 255 = %d, want 0", "<<", r)
   12203 	}
   12204 	x = -127
   12205 	y = 0
   12206 	r = x << y
   12207 	if r != -127 {
   12208 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   12209 	}
   12210 	y = 1
   12211 	r = x << y
   12212 	if r != 2 {
   12213 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   12214 	}
   12215 	y = 255
   12216 	r = x << y
   12217 	if r != 0 {
   12218 		t.Errorf("-127 %s 255 = %d, want 0", "<<", r)
   12219 	}
   12220 	x = -1
   12221 	y = 0
   12222 	r = x << y
   12223 	if r != -1 {
   12224 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   12225 	}
   12226 	y = 1
   12227 	r = x << y
   12228 	if r != -2 {
   12229 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   12230 	}
   12231 	y = 255
   12232 	r = x << y
   12233 	if r != 0 {
   12234 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   12235 	}
   12236 	x = 0
   12237 	y = 0
   12238 	r = x << y
   12239 	if r != 0 {
   12240 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   12241 	}
   12242 	y = 1
   12243 	r = x << y
   12244 	if r != 0 {
   12245 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   12246 	}
   12247 	y = 255
   12248 	r = x << y
   12249 	if r != 0 {
   12250 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   12251 	}
   12252 	x = 1
   12253 	y = 0
   12254 	r = x << y
   12255 	if r != 1 {
   12256 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   12257 	}
   12258 	y = 1
   12259 	r = x << y
   12260 	if r != 2 {
   12261 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   12262 	}
   12263 	y = 255
   12264 	r = x << y
   12265 	if r != 0 {
   12266 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   12267 	}
   12268 	x = 126
   12269 	y = 0
   12270 	r = x << y
   12271 	if r != 126 {
   12272 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   12273 	}
   12274 	y = 1
   12275 	r = x << y
   12276 	if r != -4 {
   12277 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   12278 	}
   12279 	y = 255
   12280 	r = x << y
   12281 	if r != 0 {
   12282 		t.Errorf("126 %s 255 = %d, want 0", "<<", r)
   12283 	}
   12284 	x = 127
   12285 	y = 0
   12286 	r = x << y
   12287 	if r != 127 {
   12288 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   12289 	}
   12290 	y = 1
   12291 	r = x << y
   12292 	if r != -2 {
   12293 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   12294 	}
   12295 	y = 255
   12296 	r = x << y
   12297 	if r != 0 {
   12298 		t.Errorf("127 %s 255 = %d, want 0", "<<", r)
   12299 	}
   12300 }
   12301 func TestConstFoldint8uint8rsh(t *testing.T) {
   12302 	var x, r int8
   12303 	var y uint8
   12304 	x = -128
   12305 	y = 0
   12306 	r = x >> y
   12307 	if r != -128 {
   12308 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   12309 	}
   12310 	y = 1
   12311 	r = x >> y
   12312 	if r != -64 {
   12313 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   12314 	}
   12315 	y = 255
   12316 	r = x >> y
   12317 	if r != -1 {
   12318 		t.Errorf("-128 %s 255 = %d, want -1", ">>", r)
   12319 	}
   12320 	x = -127
   12321 	y = 0
   12322 	r = x >> y
   12323 	if r != -127 {
   12324 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   12325 	}
   12326 	y = 1
   12327 	r = x >> y
   12328 	if r != -64 {
   12329 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   12330 	}
   12331 	y = 255
   12332 	r = x >> y
   12333 	if r != -1 {
   12334 		t.Errorf("-127 %s 255 = %d, want -1", ">>", r)
   12335 	}
   12336 	x = -1
   12337 	y = 0
   12338 	r = x >> y
   12339 	if r != -1 {
   12340 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   12341 	}
   12342 	y = 1
   12343 	r = x >> y
   12344 	if r != -1 {
   12345 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   12346 	}
   12347 	y = 255
   12348 	r = x >> y
   12349 	if r != -1 {
   12350 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   12351 	}
   12352 	x = 0
   12353 	y = 0
   12354 	r = x >> y
   12355 	if r != 0 {
   12356 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   12357 	}
   12358 	y = 1
   12359 	r = x >> y
   12360 	if r != 0 {
   12361 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   12362 	}
   12363 	y = 255
   12364 	r = x >> y
   12365 	if r != 0 {
   12366 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   12367 	}
   12368 	x = 1
   12369 	y = 0
   12370 	r = x >> y
   12371 	if r != 1 {
   12372 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   12373 	}
   12374 	y = 1
   12375 	r = x >> y
   12376 	if r != 0 {
   12377 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   12378 	}
   12379 	y = 255
   12380 	r = x >> y
   12381 	if r != 0 {
   12382 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   12383 	}
   12384 	x = 126
   12385 	y = 0
   12386 	r = x >> y
   12387 	if r != 126 {
   12388 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   12389 	}
   12390 	y = 1
   12391 	r = x >> y
   12392 	if r != 63 {
   12393 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   12394 	}
   12395 	y = 255
   12396 	r = x >> y
   12397 	if r != 0 {
   12398 		t.Errorf("126 %s 255 = %d, want 0", ">>", r)
   12399 	}
   12400 	x = 127
   12401 	y = 0
   12402 	r = x >> y
   12403 	if r != 127 {
   12404 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   12405 	}
   12406 	y = 1
   12407 	r = x >> y
   12408 	if r != 63 {
   12409 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   12410 	}
   12411 	y = 255
   12412 	r = x >> y
   12413 	if r != 0 {
   12414 		t.Errorf("127 %s 255 = %d, want 0", ">>", r)
   12415 	}
   12416 }
   12417 func TestConstFoldCompareuint64(t *testing.T) {
   12418 	{
   12419 		var x uint64 = 0
   12420 		var y uint64 = 0
   12421 		if !(x == y) {
   12422 			t.Errorf("!(%d == %d)", x, y)
   12423 		}
   12424 		if x != y {
   12425 			t.Errorf("%d != %d", x, y)
   12426 		}
   12427 		if x < y {
   12428 			t.Errorf("%d < %d", x, y)
   12429 		}
   12430 		if x > y {
   12431 			t.Errorf("%d > %d", x, y)
   12432 		}
   12433 		if !(x <= y) {
   12434 			t.Errorf("!(%d <= %d)", x, y)
   12435 		}
   12436 		if !(x >= y) {
   12437 			t.Errorf("!(%d >= %d)", x, y)
   12438 		}
   12439 	}
   12440 	{
   12441 		var x uint64 = 0
   12442 		var y uint64 = 1
   12443 		if x == y {
   12444 			t.Errorf("%d == %d", x, y)
   12445 		}
   12446 		if !(x != y) {
   12447 			t.Errorf("!(%d != %d)", x, y)
   12448 		}
   12449 		if !(x < y) {
   12450 			t.Errorf("!(%d < %d)", x, y)
   12451 		}
   12452 		if x > y {
   12453 			t.Errorf("%d > %d", x, y)
   12454 		}
   12455 		if !(x <= y) {
   12456 			t.Errorf("!(%d <= %d)", x, y)
   12457 		}
   12458 		if x >= y {
   12459 			t.Errorf("%d >= %d", x, y)
   12460 		}
   12461 	}
   12462 	{
   12463 		var x uint64 = 0
   12464 		var y uint64 = 4294967296
   12465 		if x == y {
   12466 			t.Errorf("%d == %d", x, y)
   12467 		}
   12468 		if !(x != y) {
   12469 			t.Errorf("!(%d != %d)", x, y)
   12470 		}
   12471 		if !(x < y) {
   12472 			t.Errorf("!(%d < %d)", x, y)
   12473 		}
   12474 		if x > y {
   12475 			t.Errorf("%d > %d", x, y)
   12476 		}
   12477 		if !(x <= y) {
   12478 			t.Errorf("!(%d <= %d)", x, y)
   12479 		}
   12480 		if x >= y {
   12481 			t.Errorf("%d >= %d", x, y)
   12482 		}
   12483 	}
   12484 	{
   12485 		var x uint64 = 0
   12486 		var y uint64 = 18446744073709551615
   12487 		if x == y {
   12488 			t.Errorf("%d == %d", x, y)
   12489 		}
   12490 		if !(x != y) {
   12491 			t.Errorf("!(%d != %d)", x, y)
   12492 		}
   12493 		if !(x < y) {
   12494 			t.Errorf("!(%d < %d)", x, y)
   12495 		}
   12496 		if x > y {
   12497 			t.Errorf("%d > %d", x, y)
   12498 		}
   12499 		if !(x <= y) {
   12500 			t.Errorf("!(%d <= %d)", x, y)
   12501 		}
   12502 		if x >= y {
   12503 			t.Errorf("%d >= %d", x, y)
   12504 		}
   12505 	}
   12506 	{
   12507 		var x uint64 = 1
   12508 		var y uint64 = 0
   12509 		if x == y {
   12510 			t.Errorf("%d == %d", x, y)
   12511 		}
   12512 		if !(x != y) {
   12513 			t.Errorf("!(%d != %d)", x, y)
   12514 		}
   12515 		if x < y {
   12516 			t.Errorf("%d < %d", x, y)
   12517 		}
   12518 		if !(x > y) {
   12519 			t.Errorf("!(%d > %d)", x, y)
   12520 		}
   12521 		if x <= y {
   12522 			t.Errorf("%d <= %d", x, y)
   12523 		}
   12524 		if !(x >= y) {
   12525 			t.Errorf("!(%d >= %d)", x, y)
   12526 		}
   12527 	}
   12528 	{
   12529 		var x uint64 = 1
   12530 		var y uint64 = 1
   12531 		if !(x == y) {
   12532 			t.Errorf("!(%d == %d)", x, y)
   12533 		}
   12534 		if x != y {
   12535 			t.Errorf("%d != %d", x, y)
   12536 		}
   12537 		if x < y {
   12538 			t.Errorf("%d < %d", x, y)
   12539 		}
   12540 		if x > y {
   12541 			t.Errorf("%d > %d", x, y)
   12542 		}
   12543 		if !(x <= y) {
   12544 			t.Errorf("!(%d <= %d)", x, y)
   12545 		}
   12546 		if !(x >= y) {
   12547 			t.Errorf("!(%d >= %d)", x, y)
   12548 		}
   12549 	}
   12550 	{
   12551 		var x uint64 = 1
   12552 		var y uint64 = 4294967296
   12553 		if x == y {
   12554 			t.Errorf("%d == %d", x, y)
   12555 		}
   12556 		if !(x != y) {
   12557 			t.Errorf("!(%d != %d)", x, y)
   12558 		}
   12559 		if !(x < y) {
   12560 			t.Errorf("!(%d < %d)", x, y)
   12561 		}
   12562 		if x > y {
   12563 			t.Errorf("%d > %d", x, y)
   12564 		}
   12565 		if !(x <= y) {
   12566 			t.Errorf("!(%d <= %d)", x, y)
   12567 		}
   12568 		if x >= y {
   12569 			t.Errorf("%d >= %d", x, y)
   12570 		}
   12571 	}
   12572 	{
   12573 		var x uint64 = 1
   12574 		var y uint64 = 18446744073709551615
   12575 		if x == y {
   12576 			t.Errorf("%d == %d", x, y)
   12577 		}
   12578 		if !(x != y) {
   12579 			t.Errorf("!(%d != %d)", x, y)
   12580 		}
   12581 		if !(x < y) {
   12582 			t.Errorf("!(%d < %d)", x, y)
   12583 		}
   12584 		if x > y {
   12585 			t.Errorf("%d > %d", x, y)
   12586 		}
   12587 		if !(x <= y) {
   12588 			t.Errorf("!(%d <= %d)", x, y)
   12589 		}
   12590 		if x >= y {
   12591 			t.Errorf("%d >= %d", x, y)
   12592 		}
   12593 	}
   12594 	{
   12595 		var x uint64 = 4294967296
   12596 		var y uint64 = 0
   12597 		if x == y {
   12598 			t.Errorf("%d == %d", x, y)
   12599 		}
   12600 		if !(x != y) {
   12601 			t.Errorf("!(%d != %d)", x, y)
   12602 		}
   12603 		if x < y {
   12604 			t.Errorf("%d < %d", x, y)
   12605 		}
   12606 		if !(x > y) {
   12607 			t.Errorf("!(%d > %d)", x, y)
   12608 		}
   12609 		if x <= y {
   12610 			t.Errorf("%d <= %d", x, y)
   12611 		}
   12612 		if !(x >= y) {
   12613 			t.Errorf("!(%d >= %d)", x, y)
   12614 		}
   12615 	}
   12616 	{
   12617 		var x uint64 = 4294967296
   12618 		var y uint64 = 1
   12619 		if x == y {
   12620 			t.Errorf("%d == %d", x, y)
   12621 		}
   12622 		if !(x != y) {
   12623 			t.Errorf("!(%d != %d)", x, y)
   12624 		}
   12625 		if x < y {
   12626 			t.Errorf("%d < %d", x, y)
   12627 		}
   12628 		if !(x > y) {
   12629 			t.Errorf("!(%d > %d)", x, y)
   12630 		}
   12631 		if x <= y {
   12632 			t.Errorf("%d <= %d", x, y)
   12633 		}
   12634 		if !(x >= y) {
   12635 			t.Errorf("!(%d >= %d)", x, y)
   12636 		}
   12637 	}
   12638 	{
   12639 		var x uint64 = 4294967296
   12640 		var y uint64 = 4294967296
   12641 		if !(x == y) {
   12642 			t.Errorf("!(%d == %d)", x, y)
   12643 		}
   12644 		if x != y {
   12645 			t.Errorf("%d != %d", x, y)
   12646 		}
   12647 		if x < y {
   12648 			t.Errorf("%d < %d", x, y)
   12649 		}
   12650 		if x > y {
   12651 			t.Errorf("%d > %d", x, y)
   12652 		}
   12653 		if !(x <= y) {
   12654 			t.Errorf("!(%d <= %d)", x, y)
   12655 		}
   12656 		if !(x >= y) {
   12657 			t.Errorf("!(%d >= %d)", x, y)
   12658 		}
   12659 	}
   12660 	{
   12661 		var x uint64 = 4294967296
   12662 		var y uint64 = 18446744073709551615
   12663 		if x == y {
   12664 			t.Errorf("%d == %d", x, y)
   12665 		}
   12666 		if !(x != y) {
   12667 			t.Errorf("!(%d != %d)", x, y)
   12668 		}
   12669 		if !(x < y) {
   12670 			t.Errorf("!(%d < %d)", x, y)
   12671 		}
   12672 		if x > y {
   12673 			t.Errorf("%d > %d", x, y)
   12674 		}
   12675 		if !(x <= y) {
   12676 			t.Errorf("!(%d <= %d)", x, y)
   12677 		}
   12678 		if x >= y {
   12679 			t.Errorf("%d >= %d", x, y)
   12680 		}
   12681 	}
   12682 	{
   12683 		var x uint64 = 18446744073709551615
   12684 		var y uint64 = 0
   12685 		if x == y {
   12686 			t.Errorf("%d == %d", x, y)
   12687 		}
   12688 		if !(x != y) {
   12689 			t.Errorf("!(%d != %d)", x, y)
   12690 		}
   12691 		if x < y {
   12692 			t.Errorf("%d < %d", x, y)
   12693 		}
   12694 		if !(x > y) {
   12695 			t.Errorf("!(%d > %d)", x, y)
   12696 		}
   12697 		if x <= y {
   12698 			t.Errorf("%d <= %d", x, y)
   12699 		}
   12700 		if !(x >= y) {
   12701 			t.Errorf("!(%d >= %d)", x, y)
   12702 		}
   12703 	}
   12704 	{
   12705 		var x uint64 = 18446744073709551615
   12706 		var y uint64 = 1
   12707 		if x == y {
   12708 			t.Errorf("%d == %d", x, y)
   12709 		}
   12710 		if !(x != y) {
   12711 			t.Errorf("!(%d != %d)", x, y)
   12712 		}
   12713 		if x < y {
   12714 			t.Errorf("%d < %d", x, y)
   12715 		}
   12716 		if !(x > y) {
   12717 			t.Errorf("!(%d > %d)", x, y)
   12718 		}
   12719 		if x <= y {
   12720 			t.Errorf("%d <= %d", x, y)
   12721 		}
   12722 		if !(x >= y) {
   12723 			t.Errorf("!(%d >= %d)", x, y)
   12724 		}
   12725 	}
   12726 	{
   12727 		var x uint64 = 18446744073709551615
   12728 		var y uint64 = 4294967296
   12729 		if x == y {
   12730 			t.Errorf("%d == %d", x, y)
   12731 		}
   12732 		if !(x != y) {
   12733 			t.Errorf("!(%d != %d)", x, y)
   12734 		}
   12735 		if x < y {
   12736 			t.Errorf("%d < %d", x, y)
   12737 		}
   12738 		if !(x > y) {
   12739 			t.Errorf("!(%d > %d)", x, y)
   12740 		}
   12741 		if x <= y {
   12742 			t.Errorf("%d <= %d", x, y)
   12743 		}
   12744 		if !(x >= y) {
   12745 			t.Errorf("!(%d >= %d)", x, y)
   12746 		}
   12747 	}
   12748 	{
   12749 		var x uint64 = 18446744073709551615
   12750 		var y uint64 = 18446744073709551615
   12751 		if !(x == y) {
   12752 			t.Errorf("!(%d == %d)", x, y)
   12753 		}
   12754 		if x != y {
   12755 			t.Errorf("%d != %d", x, y)
   12756 		}
   12757 		if x < y {
   12758 			t.Errorf("%d < %d", x, y)
   12759 		}
   12760 		if x > y {
   12761 			t.Errorf("%d > %d", x, y)
   12762 		}
   12763 		if !(x <= y) {
   12764 			t.Errorf("!(%d <= %d)", x, y)
   12765 		}
   12766 		if !(x >= y) {
   12767 			t.Errorf("!(%d >= %d)", x, y)
   12768 		}
   12769 	}
   12770 }
   12771 func TestConstFoldCompareint64(t *testing.T) {
   12772 	{
   12773 		var x int64 = -9223372036854775808
   12774 		var y int64 = -9223372036854775808
   12775 		if !(x == y) {
   12776 			t.Errorf("!(%d == %d)", x, y)
   12777 		}
   12778 		if x != y {
   12779 			t.Errorf("%d != %d", x, y)
   12780 		}
   12781 		if x < y {
   12782 			t.Errorf("%d < %d", x, y)
   12783 		}
   12784 		if x > y {
   12785 			t.Errorf("%d > %d", x, y)
   12786 		}
   12787 		if !(x <= y) {
   12788 			t.Errorf("!(%d <= %d)", x, y)
   12789 		}
   12790 		if !(x >= y) {
   12791 			t.Errorf("!(%d >= %d)", x, y)
   12792 		}
   12793 	}
   12794 	{
   12795 		var x int64 = -9223372036854775808
   12796 		var y int64 = -9223372036854775807
   12797 		if x == y {
   12798 			t.Errorf("%d == %d", x, y)
   12799 		}
   12800 		if !(x != y) {
   12801 			t.Errorf("!(%d != %d)", x, y)
   12802 		}
   12803 		if !(x < y) {
   12804 			t.Errorf("!(%d < %d)", x, y)
   12805 		}
   12806 		if x > y {
   12807 			t.Errorf("%d > %d", x, y)
   12808 		}
   12809 		if !(x <= y) {
   12810 			t.Errorf("!(%d <= %d)", x, y)
   12811 		}
   12812 		if x >= y {
   12813 			t.Errorf("%d >= %d", x, y)
   12814 		}
   12815 	}
   12816 	{
   12817 		var x int64 = -9223372036854775808
   12818 		var y int64 = -4294967296
   12819 		if x == y {
   12820 			t.Errorf("%d == %d", x, y)
   12821 		}
   12822 		if !(x != y) {
   12823 			t.Errorf("!(%d != %d)", x, y)
   12824 		}
   12825 		if !(x < y) {
   12826 			t.Errorf("!(%d < %d)", x, y)
   12827 		}
   12828 		if x > y {
   12829 			t.Errorf("%d > %d", x, y)
   12830 		}
   12831 		if !(x <= y) {
   12832 			t.Errorf("!(%d <= %d)", x, y)
   12833 		}
   12834 		if x >= y {
   12835 			t.Errorf("%d >= %d", x, y)
   12836 		}
   12837 	}
   12838 	{
   12839 		var x int64 = -9223372036854775808
   12840 		var y int64 = -1
   12841 		if x == y {
   12842 			t.Errorf("%d == %d", x, y)
   12843 		}
   12844 		if !(x != y) {
   12845 			t.Errorf("!(%d != %d)", x, y)
   12846 		}
   12847 		if !(x < y) {
   12848 			t.Errorf("!(%d < %d)", x, y)
   12849 		}
   12850 		if x > y {
   12851 			t.Errorf("%d > %d", x, y)
   12852 		}
   12853 		if !(x <= y) {
   12854 			t.Errorf("!(%d <= %d)", x, y)
   12855 		}
   12856 		if x >= y {
   12857 			t.Errorf("%d >= %d", x, y)
   12858 		}
   12859 	}
   12860 	{
   12861 		var x int64 = -9223372036854775808
   12862 		var y int64 = 0
   12863 		if x == y {
   12864 			t.Errorf("%d == %d", x, y)
   12865 		}
   12866 		if !(x != y) {
   12867 			t.Errorf("!(%d != %d)", x, y)
   12868 		}
   12869 		if !(x < y) {
   12870 			t.Errorf("!(%d < %d)", x, y)
   12871 		}
   12872 		if x > y {
   12873 			t.Errorf("%d > %d", x, y)
   12874 		}
   12875 		if !(x <= y) {
   12876 			t.Errorf("!(%d <= %d)", x, y)
   12877 		}
   12878 		if x >= y {
   12879 			t.Errorf("%d >= %d", x, y)
   12880 		}
   12881 	}
   12882 	{
   12883 		var x int64 = -9223372036854775808
   12884 		var y int64 = 1
   12885 		if x == y {
   12886 			t.Errorf("%d == %d", x, y)
   12887 		}
   12888 		if !(x != y) {
   12889 			t.Errorf("!(%d != %d)", x, y)
   12890 		}
   12891 		if !(x < y) {
   12892 			t.Errorf("!(%d < %d)", x, y)
   12893 		}
   12894 		if x > y {
   12895 			t.Errorf("%d > %d", x, y)
   12896 		}
   12897 		if !(x <= y) {
   12898 			t.Errorf("!(%d <= %d)", x, y)
   12899 		}
   12900 		if x >= y {
   12901 			t.Errorf("%d >= %d", x, y)
   12902 		}
   12903 	}
   12904 	{
   12905 		var x int64 = -9223372036854775808
   12906 		var y int64 = 4294967296
   12907 		if x == y {
   12908 			t.Errorf("%d == %d", x, y)
   12909 		}
   12910 		if !(x != y) {
   12911 			t.Errorf("!(%d != %d)", x, y)
   12912 		}
   12913 		if !(x < y) {
   12914 			t.Errorf("!(%d < %d)", x, y)
   12915 		}
   12916 		if x > y {
   12917 			t.Errorf("%d > %d", x, y)
   12918 		}
   12919 		if !(x <= y) {
   12920 			t.Errorf("!(%d <= %d)", x, y)
   12921 		}
   12922 		if x >= y {
   12923 			t.Errorf("%d >= %d", x, y)
   12924 		}
   12925 	}
   12926 	{
   12927 		var x int64 = -9223372036854775808
   12928 		var y int64 = 9223372036854775806
   12929 		if x == y {
   12930 			t.Errorf("%d == %d", x, y)
   12931 		}
   12932 		if !(x != y) {
   12933 			t.Errorf("!(%d != %d)", x, y)
   12934 		}
   12935 		if !(x < y) {
   12936 			t.Errorf("!(%d < %d)", x, y)
   12937 		}
   12938 		if x > y {
   12939 			t.Errorf("%d > %d", x, y)
   12940 		}
   12941 		if !(x <= y) {
   12942 			t.Errorf("!(%d <= %d)", x, y)
   12943 		}
   12944 		if x >= y {
   12945 			t.Errorf("%d >= %d", x, y)
   12946 		}
   12947 	}
   12948 	{
   12949 		var x int64 = -9223372036854775808
   12950 		var y int64 = 9223372036854775807
   12951 		if x == y {
   12952 			t.Errorf("%d == %d", x, y)
   12953 		}
   12954 		if !(x != y) {
   12955 			t.Errorf("!(%d != %d)", x, y)
   12956 		}
   12957 		if !(x < y) {
   12958 			t.Errorf("!(%d < %d)", x, y)
   12959 		}
   12960 		if x > y {
   12961 			t.Errorf("%d > %d", x, y)
   12962 		}
   12963 		if !(x <= y) {
   12964 			t.Errorf("!(%d <= %d)", x, y)
   12965 		}
   12966 		if x >= y {
   12967 			t.Errorf("%d >= %d", x, y)
   12968 		}
   12969 	}
   12970 	{
   12971 		var x int64 = -9223372036854775807
   12972 		var y int64 = -9223372036854775808
   12973 		if x == y {
   12974 			t.Errorf("%d == %d", x, y)
   12975 		}
   12976 		if !(x != y) {
   12977 			t.Errorf("!(%d != %d)", x, y)
   12978 		}
   12979 		if x < y {
   12980 			t.Errorf("%d < %d", x, y)
   12981 		}
   12982 		if !(x > y) {
   12983 			t.Errorf("!(%d > %d)", x, y)
   12984 		}
   12985 		if x <= y {
   12986 			t.Errorf("%d <= %d", x, y)
   12987 		}
   12988 		if !(x >= y) {
   12989 			t.Errorf("!(%d >= %d)", x, y)
   12990 		}
   12991 	}
   12992 	{
   12993 		var x int64 = -9223372036854775807
   12994 		var y int64 = -9223372036854775807
   12995 		if !(x == y) {
   12996 			t.Errorf("!(%d == %d)", x, y)
   12997 		}
   12998 		if x != y {
   12999 			t.Errorf("%d != %d", x, y)
   13000 		}
   13001 		if x < y {
   13002 			t.Errorf("%d < %d", x, y)
   13003 		}
   13004 		if x > y {
   13005 			t.Errorf("%d > %d", x, y)
   13006 		}
   13007 		if !(x <= y) {
   13008 			t.Errorf("!(%d <= %d)", x, y)
   13009 		}
   13010 		if !(x >= y) {
   13011 			t.Errorf("!(%d >= %d)", x, y)
   13012 		}
   13013 	}
   13014 	{
   13015 		var x int64 = -9223372036854775807
   13016 		var y int64 = -4294967296
   13017 		if x == y {
   13018 			t.Errorf("%d == %d", x, y)
   13019 		}
   13020 		if !(x != y) {
   13021 			t.Errorf("!(%d != %d)", x, y)
   13022 		}
   13023 		if !(x < y) {
   13024 			t.Errorf("!(%d < %d)", x, y)
   13025 		}
   13026 		if x > y {
   13027 			t.Errorf("%d > %d", x, y)
   13028 		}
   13029 		if !(x <= y) {
   13030 			t.Errorf("!(%d <= %d)", x, y)
   13031 		}
   13032 		if x >= y {
   13033 			t.Errorf("%d >= %d", x, y)
   13034 		}
   13035 	}
   13036 	{
   13037 		var x int64 = -9223372036854775807
   13038 		var y int64 = -1
   13039 		if x == y {
   13040 			t.Errorf("%d == %d", x, y)
   13041 		}
   13042 		if !(x != y) {
   13043 			t.Errorf("!(%d != %d)", x, y)
   13044 		}
   13045 		if !(x < y) {
   13046 			t.Errorf("!(%d < %d)", x, y)
   13047 		}
   13048 		if x > y {
   13049 			t.Errorf("%d > %d", x, y)
   13050 		}
   13051 		if !(x <= y) {
   13052 			t.Errorf("!(%d <= %d)", x, y)
   13053 		}
   13054 		if x >= y {
   13055 			t.Errorf("%d >= %d", x, y)
   13056 		}
   13057 	}
   13058 	{
   13059 		var x int64 = -9223372036854775807
   13060 		var y int64 = 0
   13061 		if x == y {
   13062 			t.Errorf("%d == %d", x, y)
   13063 		}
   13064 		if !(x != y) {
   13065 			t.Errorf("!(%d != %d)", x, y)
   13066 		}
   13067 		if !(x < y) {
   13068 			t.Errorf("!(%d < %d)", x, y)
   13069 		}
   13070 		if x > y {
   13071 			t.Errorf("%d > %d", x, y)
   13072 		}
   13073 		if !(x <= y) {
   13074 			t.Errorf("!(%d <= %d)", x, y)
   13075 		}
   13076 		if x >= y {
   13077 			t.Errorf("%d >= %d", x, y)
   13078 		}
   13079 	}
   13080 	{
   13081 		var x int64 = -9223372036854775807
   13082 		var y int64 = 1
   13083 		if x == y {
   13084 			t.Errorf("%d == %d", x, y)
   13085 		}
   13086 		if !(x != y) {
   13087 			t.Errorf("!(%d != %d)", x, y)
   13088 		}
   13089 		if !(x < y) {
   13090 			t.Errorf("!(%d < %d)", x, y)
   13091 		}
   13092 		if x > y {
   13093 			t.Errorf("%d > %d", x, y)
   13094 		}
   13095 		if !(x <= y) {
   13096 			t.Errorf("!(%d <= %d)", x, y)
   13097 		}
   13098 		if x >= y {
   13099 			t.Errorf("%d >= %d", x, y)
   13100 		}
   13101 	}
   13102 	{
   13103 		var x int64 = -9223372036854775807
   13104 		var y int64 = 4294967296
   13105 		if x == y {
   13106 			t.Errorf("%d == %d", x, y)
   13107 		}
   13108 		if !(x != y) {
   13109 			t.Errorf("!(%d != %d)", x, y)
   13110 		}
   13111 		if !(x < y) {
   13112 			t.Errorf("!(%d < %d)", x, y)
   13113 		}
   13114 		if x > y {
   13115 			t.Errorf("%d > %d", x, y)
   13116 		}
   13117 		if !(x <= y) {
   13118 			t.Errorf("!(%d <= %d)", x, y)
   13119 		}
   13120 		if x >= y {
   13121 			t.Errorf("%d >= %d", x, y)
   13122 		}
   13123 	}
   13124 	{
   13125 		var x int64 = -9223372036854775807
   13126 		var y int64 = 9223372036854775806
   13127 		if x == y {
   13128 			t.Errorf("%d == %d", x, y)
   13129 		}
   13130 		if !(x != y) {
   13131 			t.Errorf("!(%d != %d)", x, y)
   13132 		}
   13133 		if !(x < y) {
   13134 			t.Errorf("!(%d < %d)", x, y)
   13135 		}
   13136 		if x > y {
   13137 			t.Errorf("%d > %d", x, y)
   13138 		}
   13139 		if !(x <= y) {
   13140 			t.Errorf("!(%d <= %d)", x, y)
   13141 		}
   13142 		if x >= y {
   13143 			t.Errorf("%d >= %d", x, y)
   13144 		}
   13145 	}
   13146 	{
   13147 		var x int64 = -9223372036854775807
   13148 		var y int64 = 9223372036854775807
   13149 		if x == y {
   13150 			t.Errorf("%d == %d", x, y)
   13151 		}
   13152 		if !(x != y) {
   13153 			t.Errorf("!(%d != %d)", x, y)
   13154 		}
   13155 		if !(x < y) {
   13156 			t.Errorf("!(%d < %d)", x, y)
   13157 		}
   13158 		if x > y {
   13159 			t.Errorf("%d > %d", x, y)
   13160 		}
   13161 		if !(x <= y) {
   13162 			t.Errorf("!(%d <= %d)", x, y)
   13163 		}
   13164 		if x >= y {
   13165 			t.Errorf("%d >= %d", x, y)
   13166 		}
   13167 	}
   13168 	{
   13169 		var x int64 = -4294967296
   13170 		var y int64 = -9223372036854775808
   13171 		if x == y {
   13172 			t.Errorf("%d == %d", x, y)
   13173 		}
   13174 		if !(x != y) {
   13175 			t.Errorf("!(%d != %d)", x, y)
   13176 		}
   13177 		if x < y {
   13178 			t.Errorf("%d < %d", x, y)
   13179 		}
   13180 		if !(x > y) {
   13181 			t.Errorf("!(%d > %d)", x, y)
   13182 		}
   13183 		if x <= y {
   13184 			t.Errorf("%d <= %d", x, y)
   13185 		}
   13186 		if !(x >= y) {
   13187 			t.Errorf("!(%d >= %d)", x, y)
   13188 		}
   13189 	}
   13190 	{
   13191 		var x int64 = -4294967296
   13192 		var y int64 = -9223372036854775807
   13193 		if x == y {
   13194 			t.Errorf("%d == %d", x, y)
   13195 		}
   13196 		if !(x != y) {
   13197 			t.Errorf("!(%d != %d)", x, y)
   13198 		}
   13199 		if x < y {
   13200 			t.Errorf("%d < %d", x, y)
   13201 		}
   13202 		if !(x > y) {
   13203 			t.Errorf("!(%d > %d)", x, y)
   13204 		}
   13205 		if x <= y {
   13206 			t.Errorf("%d <= %d", x, y)
   13207 		}
   13208 		if !(x >= y) {
   13209 			t.Errorf("!(%d >= %d)", x, y)
   13210 		}
   13211 	}
   13212 	{
   13213 		var x int64 = -4294967296
   13214 		var y int64 = -4294967296
   13215 		if !(x == y) {
   13216 			t.Errorf("!(%d == %d)", x, y)
   13217 		}
   13218 		if x != y {
   13219 			t.Errorf("%d != %d", x, y)
   13220 		}
   13221 		if x < y {
   13222 			t.Errorf("%d < %d", x, y)
   13223 		}
   13224 		if x > y {
   13225 			t.Errorf("%d > %d", x, y)
   13226 		}
   13227 		if !(x <= y) {
   13228 			t.Errorf("!(%d <= %d)", x, y)
   13229 		}
   13230 		if !(x >= y) {
   13231 			t.Errorf("!(%d >= %d)", x, y)
   13232 		}
   13233 	}
   13234 	{
   13235 		var x int64 = -4294967296
   13236 		var y int64 = -1
   13237 		if x == y {
   13238 			t.Errorf("%d == %d", x, y)
   13239 		}
   13240 		if !(x != y) {
   13241 			t.Errorf("!(%d != %d)", x, y)
   13242 		}
   13243 		if !(x < y) {
   13244 			t.Errorf("!(%d < %d)", x, y)
   13245 		}
   13246 		if x > y {
   13247 			t.Errorf("%d > %d", x, y)
   13248 		}
   13249 		if !(x <= y) {
   13250 			t.Errorf("!(%d <= %d)", x, y)
   13251 		}
   13252 		if x >= y {
   13253 			t.Errorf("%d >= %d", x, y)
   13254 		}
   13255 	}
   13256 	{
   13257 		var x int64 = -4294967296
   13258 		var y int64 = 0
   13259 		if x == y {
   13260 			t.Errorf("%d == %d", x, y)
   13261 		}
   13262 		if !(x != y) {
   13263 			t.Errorf("!(%d != %d)", x, y)
   13264 		}
   13265 		if !(x < y) {
   13266 			t.Errorf("!(%d < %d)", x, y)
   13267 		}
   13268 		if x > y {
   13269 			t.Errorf("%d > %d", x, y)
   13270 		}
   13271 		if !(x <= y) {
   13272 			t.Errorf("!(%d <= %d)", x, y)
   13273 		}
   13274 		if x >= y {
   13275 			t.Errorf("%d >= %d", x, y)
   13276 		}
   13277 	}
   13278 	{
   13279 		var x int64 = -4294967296
   13280 		var y int64 = 1
   13281 		if x == y {
   13282 			t.Errorf("%d == %d", x, y)
   13283 		}
   13284 		if !(x != y) {
   13285 			t.Errorf("!(%d != %d)", x, y)
   13286 		}
   13287 		if !(x < y) {
   13288 			t.Errorf("!(%d < %d)", x, y)
   13289 		}
   13290 		if x > y {
   13291 			t.Errorf("%d > %d", x, y)
   13292 		}
   13293 		if !(x <= y) {
   13294 			t.Errorf("!(%d <= %d)", x, y)
   13295 		}
   13296 		if x >= y {
   13297 			t.Errorf("%d >= %d", x, y)
   13298 		}
   13299 	}
   13300 	{
   13301 		var x int64 = -4294967296
   13302 		var y int64 = 4294967296
   13303 		if x == y {
   13304 			t.Errorf("%d == %d", x, y)
   13305 		}
   13306 		if !(x != y) {
   13307 			t.Errorf("!(%d != %d)", x, y)
   13308 		}
   13309 		if !(x < y) {
   13310 			t.Errorf("!(%d < %d)", x, y)
   13311 		}
   13312 		if x > y {
   13313 			t.Errorf("%d > %d", x, y)
   13314 		}
   13315 		if !(x <= y) {
   13316 			t.Errorf("!(%d <= %d)", x, y)
   13317 		}
   13318 		if x >= y {
   13319 			t.Errorf("%d >= %d", x, y)
   13320 		}
   13321 	}
   13322 	{
   13323 		var x int64 = -4294967296
   13324 		var y int64 = 9223372036854775806
   13325 		if x == y {
   13326 			t.Errorf("%d == %d", x, y)
   13327 		}
   13328 		if !(x != y) {
   13329 			t.Errorf("!(%d != %d)", x, y)
   13330 		}
   13331 		if !(x < y) {
   13332 			t.Errorf("!(%d < %d)", x, y)
   13333 		}
   13334 		if x > y {
   13335 			t.Errorf("%d > %d", x, y)
   13336 		}
   13337 		if !(x <= y) {
   13338 			t.Errorf("!(%d <= %d)", x, y)
   13339 		}
   13340 		if x >= y {
   13341 			t.Errorf("%d >= %d", x, y)
   13342 		}
   13343 	}
   13344 	{
   13345 		var x int64 = -4294967296
   13346 		var y int64 = 9223372036854775807
   13347 		if x == y {
   13348 			t.Errorf("%d == %d", x, y)
   13349 		}
   13350 		if !(x != y) {
   13351 			t.Errorf("!(%d != %d)", x, y)
   13352 		}
   13353 		if !(x < y) {
   13354 			t.Errorf("!(%d < %d)", x, y)
   13355 		}
   13356 		if x > y {
   13357 			t.Errorf("%d > %d", x, y)
   13358 		}
   13359 		if !(x <= y) {
   13360 			t.Errorf("!(%d <= %d)", x, y)
   13361 		}
   13362 		if x >= y {
   13363 			t.Errorf("%d >= %d", x, y)
   13364 		}
   13365 	}
   13366 	{
   13367 		var x int64 = -1
   13368 		var y int64 = -9223372036854775808
   13369 		if x == y {
   13370 			t.Errorf("%d == %d", x, y)
   13371 		}
   13372 		if !(x != y) {
   13373 			t.Errorf("!(%d != %d)", x, y)
   13374 		}
   13375 		if x < y {
   13376 			t.Errorf("%d < %d", x, y)
   13377 		}
   13378 		if !(x > y) {
   13379 			t.Errorf("!(%d > %d)", x, y)
   13380 		}
   13381 		if x <= y {
   13382 			t.Errorf("%d <= %d", x, y)
   13383 		}
   13384 		if !(x >= y) {
   13385 			t.Errorf("!(%d >= %d)", x, y)
   13386 		}
   13387 	}
   13388 	{
   13389 		var x int64 = -1
   13390 		var y int64 = -9223372036854775807
   13391 		if x == y {
   13392 			t.Errorf("%d == %d", x, y)
   13393 		}
   13394 		if !(x != y) {
   13395 			t.Errorf("!(%d != %d)", x, y)
   13396 		}
   13397 		if x < y {
   13398 			t.Errorf("%d < %d", x, y)
   13399 		}
   13400 		if !(x > y) {
   13401 			t.Errorf("!(%d > %d)", x, y)
   13402 		}
   13403 		if x <= y {
   13404 			t.Errorf("%d <= %d", x, y)
   13405 		}
   13406 		if !(x >= y) {
   13407 			t.Errorf("!(%d >= %d)", x, y)
   13408 		}
   13409 	}
   13410 	{
   13411 		var x int64 = -1
   13412 		var y int64 = -4294967296
   13413 		if x == y {
   13414 			t.Errorf("%d == %d", x, y)
   13415 		}
   13416 		if !(x != y) {
   13417 			t.Errorf("!(%d != %d)", x, y)
   13418 		}
   13419 		if x < y {
   13420 			t.Errorf("%d < %d", x, y)
   13421 		}
   13422 		if !(x > y) {
   13423 			t.Errorf("!(%d > %d)", x, y)
   13424 		}
   13425 		if x <= y {
   13426 			t.Errorf("%d <= %d", x, y)
   13427 		}
   13428 		if !(x >= y) {
   13429 			t.Errorf("!(%d >= %d)", x, y)
   13430 		}
   13431 	}
   13432 	{
   13433 		var x int64 = -1
   13434 		var y int64 = -1
   13435 		if !(x == y) {
   13436 			t.Errorf("!(%d == %d)", x, y)
   13437 		}
   13438 		if x != y {
   13439 			t.Errorf("%d != %d", x, y)
   13440 		}
   13441 		if x < y {
   13442 			t.Errorf("%d < %d", x, y)
   13443 		}
   13444 		if x > y {
   13445 			t.Errorf("%d > %d", x, y)
   13446 		}
   13447 		if !(x <= y) {
   13448 			t.Errorf("!(%d <= %d)", x, y)
   13449 		}
   13450 		if !(x >= y) {
   13451 			t.Errorf("!(%d >= %d)", x, y)
   13452 		}
   13453 	}
   13454 	{
   13455 		var x int64 = -1
   13456 		var y int64 = 0
   13457 		if x == y {
   13458 			t.Errorf("%d == %d", x, y)
   13459 		}
   13460 		if !(x != y) {
   13461 			t.Errorf("!(%d != %d)", x, y)
   13462 		}
   13463 		if !(x < y) {
   13464 			t.Errorf("!(%d < %d)", x, y)
   13465 		}
   13466 		if x > y {
   13467 			t.Errorf("%d > %d", x, y)
   13468 		}
   13469 		if !(x <= y) {
   13470 			t.Errorf("!(%d <= %d)", x, y)
   13471 		}
   13472 		if x >= y {
   13473 			t.Errorf("%d >= %d", x, y)
   13474 		}
   13475 	}
   13476 	{
   13477 		var x int64 = -1
   13478 		var y int64 = 1
   13479 		if x == y {
   13480 			t.Errorf("%d == %d", x, y)
   13481 		}
   13482 		if !(x != y) {
   13483 			t.Errorf("!(%d != %d)", x, y)
   13484 		}
   13485 		if !(x < y) {
   13486 			t.Errorf("!(%d < %d)", x, y)
   13487 		}
   13488 		if x > y {
   13489 			t.Errorf("%d > %d", x, y)
   13490 		}
   13491 		if !(x <= y) {
   13492 			t.Errorf("!(%d <= %d)", x, y)
   13493 		}
   13494 		if x >= y {
   13495 			t.Errorf("%d >= %d", x, y)
   13496 		}
   13497 	}
   13498 	{
   13499 		var x int64 = -1
   13500 		var y int64 = 4294967296
   13501 		if x == y {
   13502 			t.Errorf("%d == %d", x, y)
   13503 		}
   13504 		if !(x != y) {
   13505 			t.Errorf("!(%d != %d)", x, y)
   13506 		}
   13507 		if !(x < y) {
   13508 			t.Errorf("!(%d < %d)", x, y)
   13509 		}
   13510 		if x > y {
   13511 			t.Errorf("%d > %d", x, y)
   13512 		}
   13513 		if !(x <= y) {
   13514 			t.Errorf("!(%d <= %d)", x, y)
   13515 		}
   13516 		if x >= y {
   13517 			t.Errorf("%d >= %d", x, y)
   13518 		}
   13519 	}
   13520 	{
   13521 		var x int64 = -1
   13522 		var y int64 = 9223372036854775806
   13523 		if x == y {
   13524 			t.Errorf("%d == %d", x, y)
   13525 		}
   13526 		if !(x != y) {
   13527 			t.Errorf("!(%d != %d)", x, y)
   13528 		}
   13529 		if !(x < y) {
   13530 			t.Errorf("!(%d < %d)", x, y)
   13531 		}
   13532 		if x > y {
   13533 			t.Errorf("%d > %d", x, y)
   13534 		}
   13535 		if !(x <= y) {
   13536 			t.Errorf("!(%d <= %d)", x, y)
   13537 		}
   13538 		if x >= y {
   13539 			t.Errorf("%d >= %d", x, y)
   13540 		}
   13541 	}
   13542 	{
   13543 		var x int64 = -1
   13544 		var y int64 = 9223372036854775807
   13545 		if x == y {
   13546 			t.Errorf("%d == %d", x, y)
   13547 		}
   13548 		if !(x != y) {
   13549 			t.Errorf("!(%d != %d)", x, y)
   13550 		}
   13551 		if !(x < y) {
   13552 			t.Errorf("!(%d < %d)", x, y)
   13553 		}
   13554 		if x > y {
   13555 			t.Errorf("%d > %d", x, y)
   13556 		}
   13557 		if !(x <= y) {
   13558 			t.Errorf("!(%d <= %d)", x, y)
   13559 		}
   13560 		if x >= y {
   13561 			t.Errorf("%d >= %d", x, y)
   13562 		}
   13563 	}
   13564 	{
   13565 		var x int64 = 0
   13566 		var y int64 = -9223372036854775808
   13567 		if x == y {
   13568 			t.Errorf("%d == %d", x, y)
   13569 		}
   13570 		if !(x != y) {
   13571 			t.Errorf("!(%d != %d)", x, y)
   13572 		}
   13573 		if x < y {
   13574 			t.Errorf("%d < %d", x, y)
   13575 		}
   13576 		if !(x > y) {
   13577 			t.Errorf("!(%d > %d)", x, y)
   13578 		}
   13579 		if x <= y {
   13580 			t.Errorf("%d <= %d", x, y)
   13581 		}
   13582 		if !(x >= y) {
   13583 			t.Errorf("!(%d >= %d)", x, y)
   13584 		}
   13585 	}
   13586 	{
   13587 		var x int64 = 0
   13588 		var y int64 = -9223372036854775807
   13589 		if x == y {
   13590 			t.Errorf("%d == %d", x, y)
   13591 		}
   13592 		if !(x != y) {
   13593 			t.Errorf("!(%d != %d)", x, y)
   13594 		}
   13595 		if x < y {
   13596 			t.Errorf("%d < %d", x, y)
   13597 		}
   13598 		if !(x > y) {
   13599 			t.Errorf("!(%d > %d)", x, y)
   13600 		}
   13601 		if x <= y {
   13602 			t.Errorf("%d <= %d", x, y)
   13603 		}
   13604 		if !(x >= y) {
   13605 			t.Errorf("!(%d >= %d)", x, y)
   13606 		}
   13607 	}
   13608 	{
   13609 		var x int64 = 0
   13610 		var y int64 = -4294967296
   13611 		if x == y {
   13612 			t.Errorf("%d == %d", x, y)
   13613 		}
   13614 		if !(x != y) {
   13615 			t.Errorf("!(%d != %d)", x, y)
   13616 		}
   13617 		if x < y {
   13618 			t.Errorf("%d < %d", x, y)
   13619 		}
   13620 		if !(x > y) {
   13621 			t.Errorf("!(%d > %d)", x, y)
   13622 		}
   13623 		if x <= y {
   13624 			t.Errorf("%d <= %d", x, y)
   13625 		}
   13626 		if !(x >= y) {
   13627 			t.Errorf("!(%d >= %d)", x, y)
   13628 		}
   13629 	}
   13630 	{
   13631 		var x int64 = 0
   13632 		var y int64 = -1
   13633 		if x == y {
   13634 			t.Errorf("%d == %d", x, y)
   13635 		}
   13636 		if !(x != y) {
   13637 			t.Errorf("!(%d != %d)", x, y)
   13638 		}
   13639 		if x < y {
   13640 			t.Errorf("%d < %d", x, y)
   13641 		}
   13642 		if !(x > y) {
   13643 			t.Errorf("!(%d > %d)", x, y)
   13644 		}
   13645 		if x <= y {
   13646 			t.Errorf("%d <= %d", x, y)
   13647 		}
   13648 		if !(x >= y) {
   13649 			t.Errorf("!(%d >= %d)", x, y)
   13650 		}
   13651 	}
   13652 	{
   13653 		var x int64 = 0
   13654 		var y int64 = 0
   13655 		if !(x == y) {
   13656 			t.Errorf("!(%d == %d)", x, y)
   13657 		}
   13658 		if x != y {
   13659 			t.Errorf("%d != %d", x, y)
   13660 		}
   13661 		if x < y {
   13662 			t.Errorf("%d < %d", x, y)
   13663 		}
   13664 		if x > y {
   13665 			t.Errorf("%d > %d", x, y)
   13666 		}
   13667 		if !(x <= y) {
   13668 			t.Errorf("!(%d <= %d)", x, y)
   13669 		}
   13670 		if !(x >= y) {
   13671 			t.Errorf("!(%d >= %d)", x, y)
   13672 		}
   13673 	}
   13674 	{
   13675 		var x int64 = 0
   13676 		var y int64 = 1
   13677 		if x == y {
   13678 			t.Errorf("%d == %d", x, y)
   13679 		}
   13680 		if !(x != y) {
   13681 			t.Errorf("!(%d != %d)", x, y)
   13682 		}
   13683 		if !(x < y) {
   13684 			t.Errorf("!(%d < %d)", x, y)
   13685 		}
   13686 		if x > y {
   13687 			t.Errorf("%d > %d", x, y)
   13688 		}
   13689 		if !(x <= y) {
   13690 			t.Errorf("!(%d <= %d)", x, y)
   13691 		}
   13692 		if x >= y {
   13693 			t.Errorf("%d >= %d", x, y)
   13694 		}
   13695 	}
   13696 	{
   13697 		var x int64 = 0
   13698 		var y int64 = 4294967296
   13699 		if x == y {
   13700 			t.Errorf("%d == %d", x, y)
   13701 		}
   13702 		if !(x != y) {
   13703 			t.Errorf("!(%d != %d)", x, y)
   13704 		}
   13705 		if !(x < y) {
   13706 			t.Errorf("!(%d < %d)", x, y)
   13707 		}
   13708 		if x > y {
   13709 			t.Errorf("%d > %d", x, y)
   13710 		}
   13711 		if !(x <= y) {
   13712 			t.Errorf("!(%d <= %d)", x, y)
   13713 		}
   13714 		if x >= y {
   13715 			t.Errorf("%d >= %d", x, y)
   13716 		}
   13717 	}
   13718 	{
   13719 		var x int64 = 0
   13720 		var y int64 = 9223372036854775806
   13721 		if x == y {
   13722 			t.Errorf("%d == %d", x, y)
   13723 		}
   13724 		if !(x != y) {
   13725 			t.Errorf("!(%d != %d)", x, y)
   13726 		}
   13727 		if !(x < y) {
   13728 			t.Errorf("!(%d < %d)", x, y)
   13729 		}
   13730 		if x > y {
   13731 			t.Errorf("%d > %d", x, y)
   13732 		}
   13733 		if !(x <= y) {
   13734 			t.Errorf("!(%d <= %d)", x, y)
   13735 		}
   13736 		if x >= y {
   13737 			t.Errorf("%d >= %d", x, y)
   13738 		}
   13739 	}
   13740 	{
   13741 		var x int64 = 0
   13742 		var y int64 = 9223372036854775807
   13743 		if x == y {
   13744 			t.Errorf("%d == %d", x, y)
   13745 		}
   13746 		if !(x != y) {
   13747 			t.Errorf("!(%d != %d)", x, y)
   13748 		}
   13749 		if !(x < y) {
   13750 			t.Errorf("!(%d < %d)", x, y)
   13751 		}
   13752 		if x > y {
   13753 			t.Errorf("%d > %d", x, y)
   13754 		}
   13755 		if !(x <= y) {
   13756 			t.Errorf("!(%d <= %d)", x, y)
   13757 		}
   13758 		if x >= y {
   13759 			t.Errorf("%d >= %d", x, y)
   13760 		}
   13761 	}
   13762 	{
   13763 		var x int64 = 1
   13764 		var y int64 = -9223372036854775808
   13765 		if x == y {
   13766 			t.Errorf("%d == %d", x, y)
   13767 		}
   13768 		if !(x != y) {
   13769 			t.Errorf("!(%d != %d)", x, y)
   13770 		}
   13771 		if x < y {
   13772 			t.Errorf("%d < %d", x, y)
   13773 		}
   13774 		if !(x > y) {
   13775 			t.Errorf("!(%d > %d)", x, y)
   13776 		}
   13777 		if x <= y {
   13778 			t.Errorf("%d <= %d", x, y)
   13779 		}
   13780 		if !(x >= y) {
   13781 			t.Errorf("!(%d >= %d)", x, y)
   13782 		}
   13783 	}
   13784 	{
   13785 		var x int64 = 1
   13786 		var y int64 = -9223372036854775807
   13787 		if x == y {
   13788 			t.Errorf("%d == %d", x, y)
   13789 		}
   13790 		if !(x != y) {
   13791 			t.Errorf("!(%d != %d)", x, y)
   13792 		}
   13793 		if x < y {
   13794 			t.Errorf("%d < %d", x, y)
   13795 		}
   13796 		if !(x > y) {
   13797 			t.Errorf("!(%d > %d)", x, y)
   13798 		}
   13799 		if x <= y {
   13800 			t.Errorf("%d <= %d", x, y)
   13801 		}
   13802 		if !(x >= y) {
   13803 			t.Errorf("!(%d >= %d)", x, y)
   13804 		}
   13805 	}
   13806 	{
   13807 		var x int64 = 1
   13808 		var y int64 = -4294967296
   13809 		if x == y {
   13810 			t.Errorf("%d == %d", x, y)
   13811 		}
   13812 		if !(x != y) {
   13813 			t.Errorf("!(%d != %d)", x, y)
   13814 		}
   13815 		if x < y {
   13816 			t.Errorf("%d < %d", x, y)
   13817 		}
   13818 		if !(x > y) {
   13819 			t.Errorf("!(%d > %d)", x, y)
   13820 		}
   13821 		if x <= y {
   13822 			t.Errorf("%d <= %d", x, y)
   13823 		}
   13824 		if !(x >= y) {
   13825 			t.Errorf("!(%d >= %d)", x, y)
   13826 		}
   13827 	}
   13828 	{
   13829 		var x int64 = 1
   13830 		var y int64 = -1
   13831 		if x == y {
   13832 			t.Errorf("%d == %d", x, y)
   13833 		}
   13834 		if !(x != y) {
   13835 			t.Errorf("!(%d != %d)", x, y)
   13836 		}
   13837 		if x < y {
   13838 			t.Errorf("%d < %d", x, y)
   13839 		}
   13840 		if !(x > y) {
   13841 			t.Errorf("!(%d > %d)", x, y)
   13842 		}
   13843 		if x <= y {
   13844 			t.Errorf("%d <= %d", x, y)
   13845 		}
   13846 		if !(x >= y) {
   13847 			t.Errorf("!(%d >= %d)", x, y)
   13848 		}
   13849 	}
   13850 	{
   13851 		var x int64 = 1
   13852 		var y int64 = 0
   13853 		if x == y {
   13854 			t.Errorf("%d == %d", x, y)
   13855 		}
   13856 		if !(x != y) {
   13857 			t.Errorf("!(%d != %d)", x, y)
   13858 		}
   13859 		if x < y {
   13860 			t.Errorf("%d < %d", x, y)
   13861 		}
   13862 		if !(x > y) {
   13863 			t.Errorf("!(%d > %d)", x, y)
   13864 		}
   13865 		if x <= y {
   13866 			t.Errorf("%d <= %d", x, y)
   13867 		}
   13868 		if !(x >= y) {
   13869 			t.Errorf("!(%d >= %d)", x, y)
   13870 		}
   13871 	}
   13872 	{
   13873 		var x int64 = 1
   13874 		var y int64 = 1
   13875 		if !(x == y) {
   13876 			t.Errorf("!(%d == %d)", x, y)
   13877 		}
   13878 		if x != y {
   13879 			t.Errorf("%d != %d", x, y)
   13880 		}
   13881 		if x < y {
   13882 			t.Errorf("%d < %d", x, y)
   13883 		}
   13884 		if x > y {
   13885 			t.Errorf("%d > %d", x, y)
   13886 		}
   13887 		if !(x <= y) {
   13888 			t.Errorf("!(%d <= %d)", x, y)
   13889 		}
   13890 		if !(x >= y) {
   13891 			t.Errorf("!(%d >= %d)", x, y)
   13892 		}
   13893 	}
   13894 	{
   13895 		var x int64 = 1
   13896 		var y int64 = 4294967296
   13897 		if x == y {
   13898 			t.Errorf("%d == %d", x, y)
   13899 		}
   13900 		if !(x != y) {
   13901 			t.Errorf("!(%d != %d)", x, y)
   13902 		}
   13903 		if !(x < y) {
   13904 			t.Errorf("!(%d < %d)", x, y)
   13905 		}
   13906 		if x > y {
   13907 			t.Errorf("%d > %d", x, y)
   13908 		}
   13909 		if !(x <= y) {
   13910 			t.Errorf("!(%d <= %d)", x, y)
   13911 		}
   13912 		if x >= y {
   13913 			t.Errorf("%d >= %d", x, y)
   13914 		}
   13915 	}
   13916 	{
   13917 		var x int64 = 1
   13918 		var y int64 = 9223372036854775806
   13919 		if x == y {
   13920 			t.Errorf("%d == %d", x, y)
   13921 		}
   13922 		if !(x != y) {
   13923 			t.Errorf("!(%d != %d)", x, y)
   13924 		}
   13925 		if !(x < y) {
   13926 			t.Errorf("!(%d < %d)", x, y)
   13927 		}
   13928 		if x > y {
   13929 			t.Errorf("%d > %d", x, y)
   13930 		}
   13931 		if !(x <= y) {
   13932 			t.Errorf("!(%d <= %d)", x, y)
   13933 		}
   13934 		if x >= y {
   13935 			t.Errorf("%d >= %d", x, y)
   13936 		}
   13937 	}
   13938 	{
   13939 		var x int64 = 1
   13940 		var y int64 = 9223372036854775807
   13941 		if x == y {
   13942 			t.Errorf("%d == %d", x, y)
   13943 		}
   13944 		if !(x != y) {
   13945 			t.Errorf("!(%d != %d)", x, y)
   13946 		}
   13947 		if !(x < y) {
   13948 			t.Errorf("!(%d < %d)", x, y)
   13949 		}
   13950 		if x > y {
   13951 			t.Errorf("%d > %d", x, y)
   13952 		}
   13953 		if !(x <= y) {
   13954 			t.Errorf("!(%d <= %d)", x, y)
   13955 		}
   13956 		if x >= y {
   13957 			t.Errorf("%d >= %d", x, y)
   13958 		}
   13959 	}
   13960 	{
   13961 		var x int64 = 4294967296
   13962 		var y int64 = -9223372036854775808
   13963 		if x == y {
   13964 			t.Errorf("%d == %d", x, y)
   13965 		}
   13966 		if !(x != y) {
   13967 			t.Errorf("!(%d != %d)", x, y)
   13968 		}
   13969 		if x < y {
   13970 			t.Errorf("%d < %d", x, y)
   13971 		}
   13972 		if !(x > y) {
   13973 			t.Errorf("!(%d > %d)", x, y)
   13974 		}
   13975 		if x <= y {
   13976 			t.Errorf("%d <= %d", x, y)
   13977 		}
   13978 		if !(x >= y) {
   13979 			t.Errorf("!(%d >= %d)", x, y)
   13980 		}
   13981 	}
   13982 	{
   13983 		var x int64 = 4294967296
   13984 		var y int64 = -9223372036854775807
   13985 		if x == y {
   13986 			t.Errorf("%d == %d", x, y)
   13987 		}
   13988 		if !(x != y) {
   13989 			t.Errorf("!(%d != %d)", x, y)
   13990 		}
   13991 		if x < y {
   13992 			t.Errorf("%d < %d", x, y)
   13993 		}
   13994 		if !(x > y) {
   13995 			t.Errorf("!(%d > %d)", x, y)
   13996 		}
   13997 		if x <= y {
   13998 			t.Errorf("%d <= %d", x, y)
   13999 		}
   14000 		if !(x >= y) {
   14001 			t.Errorf("!(%d >= %d)", x, y)
   14002 		}
   14003 	}
   14004 	{
   14005 		var x int64 = 4294967296
   14006 		var y int64 = -4294967296
   14007 		if x == y {
   14008 			t.Errorf("%d == %d", x, y)
   14009 		}
   14010 		if !(x != y) {
   14011 			t.Errorf("!(%d != %d)", x, y)
   14012 		}
   14013 		if x < y {
   14014 			t.Errorf("%d < %d", x, y)
   14015 		}
   14016 		if !(x > y) {
   14017 			t.Errorf("!(%d > %d)", x, y)
   14018 		}
   14019 		if x <= y {
   14020 			t.Errorf("%d <= %d", x, y)
   14021 		}
   14022 		if !(x >= y) {
   14023 			t.Errorf("!(%d >= %d)", x, y)
   14024 		}
   14025 	}
   14026 	{
   14027 		var x int64 = 4294967296
   14028 		var y int64 = -1
   14029 		if x == y {
   14030 			t.Errorf("%d == %d", x, y)
   14031 		}
   14032 		if !(x != y) {
   14033 			t.Errorf("!(%d != %d)", x, y)
   14034 		}
   14035 		if x < y {
   14036 			t.Errorf("%d < %d", x, y)
   14037 		}
   14038 		if !(x > y) {
   14039 			t.Errorf("!(%d > %d)", x, y)
   14040 		}
   14041 		if x <= y {
   14042 			t.Errorf("%d <= %d", x, y)
   14043 		}
   14044 		if !(x >= y) {
   14045 			t.Errorf("!(%d >= %d)", x, y)
   14046 		}
   14047 	}
   14048 	{
   14049 		var x int64 = 4294967296
   14050 		var y int64 = 0
   14051 		if x == y {
   14052 			t.Errorf("%d == %d", x, y)
   14053 		}
   14054 		if !(x != y) {
   14055 			t.Errorf("!(%d != %d)", x, y)
   14056 		}
   14057 		if x < y {
   14058 			t.Errorf("%d < %d", x, y)
   14059 		}
   14060 		if !(x > y) {
   14061 			t.Errorf("!(%d > %d)", x, y)
   14062 		}
   14063 		if x <= y {
   14064 			t.Errorf("%d <= %d", x, y)
   14065 		}
   14066 		if !(x >= y) {
   14067 			t.Errorf("!(%d >= %d)", x, y)
   14068 		}
   14069 	}
   14070 	{
   14071 		var x int64 = 4294967296
   14072 		var y int64 = 1
   14073 		if x == y {
   14074 			t.Errorf("%d == %d", x, y)
   14075 		}
   14076 		if !(x != y) {
   14077 			t.Errorf("!(%d != %d)", x, y)
   14078 		}
   14079 		if x < y {
   14080 			t.Errorf("%d < %d", x, y)
   14081 		}
   14082 		if !(x > y) {
   14083 			t.Errorf("!(%d > %d)", x, y)
   14084 		}
   14085 		if x <= y {
   14086 			t.Errorf("%d <= %d", x, y)
   14087 		}
   14088 		if !(x >= y) {
   14089 			t.Errorf("!(%d >= %d)", x, y)
   14090 		}
   14091 	}
   14092 	{
   14093 		var x int64 = 4294967296
   14094 		var y int64 = 4294967296
   14095 		if !(x == y) {
   14096 			t.Errorf("!(%d == %d)", x, y)
   14097 		}
   14098 		if x != y {
   14099 			t.Errorf("%d != %d", x, y)
   14100 		}
   14101 		if x < y {
   14102 			t.Errorf("%d < %d", x, y)
   14103 		}
   14104 		if x > y {
   14105 			t.Errorf("%d > %d", x, y)
   14106 		}
   14107 		if !(x <= y) {
   14108 			t.Errorf("!(%d <= %d)", x, y)
   14109 		}
   14110 		if !(x >= y) {
   14111 			t.Errorf("!(%d >= %d)", x, y)
   14112 		}
   14113 	}
   14114 	{
   14115 		var x int64 = 4294967296
   14116 		var y int64 = 9223372036854775806
   14117 		if x == y {
   14118 			t.Errorf("%d == %d", x, y)
   14119 		}
   14120 		if !(x != y) {
   14121 			t.Errorf("!(%d != %d)", x, y)
   14122 		}
   14123 		if !(x < y) {
   14124 			t.Errorf("!(%d < %d)", x, y)
   14125 		}
   14126 		if x > y {
   14127 			t.Errorf("%d > %d", x, y)
   14128 		}
   14129 		if !(x <= y) {
   14130 			t.Errorf("!(%d <= %d)", x, y)
   14131 		}
   14132 		if x >= y {
   14133 			t.Errorf("%d >= %d", x, y)
   14134 		}
   14135 	}
   14136 	{
   14137 		var x int64 = 4294967296
   14138 		var y int64 = 9223372036854775807
   14139 		if x == y {
   14140 			t.Errorf("%d == %d", x, y)
   14141 		}
   14142 		if !(x != y) {
   14143 			t.Errorf("!(%d != %d)", x, y)
   14144 		}
   14145 		if !(x < y) {
   14146 			t.Errorf("!(%d < %d)", x, y)
   14147 		}
   14148 		if x > y {
   14149 			t.Errorf("%d > %d", x, y)
   14150 		}
   14151 		if !(x <= y) {
   14152 			t.Errorf("!(%d <= %d)", x, y)
   14153 		}
   14154 		if x >= y {
   14155 			t.Errorf("%d >= %d", x, y)
   14156 		}
   14157 	}
   14158 	{
   14159 		var x int64 = 9223372036854775806
   14160 		var y int64 = -9223372036854775808
   14161 		if x == y {
   14162 			t.Errorf("%d == %d", x, y)
   14163 		}
   14164 		if !(x != y) {
   14165 			t.Errorf("!(%d != %d)", x, y)
   14166 		}
   14167 		if x < y {
   14168 			t.Errorf("%d < %d", x, y)
   14169 		}
   14170 		if !(x > y) {
   14171 			t.Errorf("!(%d > %d)", x, y)
   14172 		}
   14173 		if x <= y {
   14174 			t.Errorf("%d <= %d", x, y)
   14175 		}
   14176 		if !(x >= y) {
   14177 			t.Errorf("!(%d >= %d)", x, y)
   14178 		}
   14179 	}
   14180 	{
   14181 		var x int64 = 9223372036854775806
   14182 		var y int64 = -9223372036854775807
   14183 		if x == y {
   14184 			t.Errorf("%d == %d", x, y)
   14185 		}
   14186 		if !(x != y) {
   14187 			t.Errorf("!(%d != %d)", x, y)
   14188 		}
   14189 		if x < y {
   14190 			t.Errorf("%d < %d", x, y)
   14191 		}
   14192 		if !(x > y) {
   14193 			t.Errorf("!(%d > %d)", x, y)
   14194 		}
   14195 		if x <= y {
   14196 			t.Errorf("%d <= %d", x, y)
   14197 		}
   14198 		if !(x >= y) {
   14199 			t.Errorf("!(%d >= %d)", x, y)
   14200 		}
   14201 	}
   14202 	{
   14203 		var x int64 = 9223372036854775806
   14204 		var y int64 = -4294967296
   14205 		if x == y {
   14206 			t.Errorf("%d == %d", x, y)
   14207 		}
   14208 		if !(x != y) {
   14209 			t.Errorf("!(%d != %d)", x, y)
   14210 		}
   14211 		if x < y {
   14212 			t.Errorf("%d < %d", x, y)
   14213 		}
   14214 		if !(x > y) {
   14215 			t.Errorf("!(%d > %d)", x, y)
   14216 		}
   14217 		if x <= y {
   14218 			t.Errorf("%d <= %d", x, y)
   14219 		}
   14220 		if !(x >= y) {
   14221 			t.Errorf("!(%d >= %d)", x, y)
   14222 		}
   14223 	}
   14224 	{
   14225 		var x int64 = 9223372036854775806
   14226 		var y int64 = -1
   14227 		if x == y {
   14228 			t.Errorf("%d == %d", x, y)
   14229 		}
   14230 		if !(x != y) {
   14231 			t.Errorf("!(%d != %d)", x, y)
   14232 		}
   14233 		if x < y {
   14234 			t.Errorf("%d < %d", x, y)
   14235 		}
   14236 		if !(x > y) {
   14237 			t.Errorf("!(%d > %d)", x, y)
   14238 		}
   14239 		if x <= y {
   14240 			t.Errorf("%d <= %d", x, y)
   14241 		}
   14242 		if !(x >= y) {
   14243 			t.Errorf("!(%d >= %d)", x, y)
   14244 		}
   14245 	}
   14246 	{
   14247 		var x int64 = 9223372036854775806
   14248 		var y int64 = 0
   14249 		if x == y {
   14250 			t.Errorf("%d == %d", x, y)
   14251 		}
   14252 		if !(x != y) {
   14253 			t.Errorf("!(%d != %d)", x, y)
   14254 		}
   14255 		if x < y {
   14256 			t.Errorf("%d < %d", x, y)
   14257 		}
   14258 		if !(x > y) {
   14259 			t.Errorf("!(%d > %d)", x, y)
   14260 		}
   14261 		if x <= y {
   14262 			t.Errorf("%d <= %d", x, y)
   14263 		}
   14264 		if !(x >= y) {
   14265 			t.Errorf("!(%d >= %d)", x, y)
   14266 		}
   14267 	}
   14268 	{
   14269 		var x int64 = 9223372036854775806
   14270 		var y int64 = 1
   14271 		if x == y {
   14272 			t.Errorf("%d == %d", x, y)
   14273 		}
   14274 		if !(x != y) {
   14275 			t.Errorf("!(%d != %d)", x, y)
   14276 		}
   14277 		if x < y {
   14278 			t.Errorf("%d < %d", x, y)
   14279 		}
   14280 		if !(x > y) {
   14281 			t.Errorf("!(%d > %d)", x, y)
   14282 		}
   14283 		if x <= y {
   14284 			t.Errorf("%d <= %d", x, y)
   14285 		}
   14286 		if !(x >= y) {
   14287 			t.Errorf("!(%d >= %d)", x, y)
   14288 		}
   14289 	}
   14290 	{
   14291 		var x int64 = 9223372036854775806
   14292 		var y int64 = 4294967296
   14293 		if x == y {
   14294 			t.Errorf("%d == %d", x, y)
   14295 		}
   14296 		if !(x != y) {
   14297 			t.Errorf("!(%d != %d)", x, y)
   14298 		}
   14299 		if x < y {
   14300 			t.Errorf("%d < %d", x, y)
   14301 		}
   14302 		if !(x > y) {
   14303 			t.Errorf("!(%d > %d)", x, y)
   14304 		}
   14305 		if x <= y {
   14306 			t.Errorf("%d <= %d", x, y)
   14307 		}
   14308 		if !(x >= y) {
   14309 			t.Errorf("!(%d >= %d)", x, y)
   14310 		}
   14311 	}
   14312 	{
   14313 		var x int64 = 9223372036854775806
   14314 		var y int64 = 9223372036854775806
   14315 		if !(x == y) {
   14316 			t.Errorf("!(%d == %d)", x, y)
   14317 		}
   14318 		if x != y {
   14319 			t.Errorf("%d != %d", x, y)
   14320 		}
   14321 		if x < y {
   14322 			t.Errorf("%d < %d", x, y)
   14323 		}
   14324 		if x > y {
   14325 			t.Errorf("%d > %d", x, y)
   14326 		}
   14327 		if !(x <= y) {
   14328 			t.Errorf("!(%d <= %d)", x, y)
   14329 		}
   14330 		if !(x >= y) {
   14331 			t.Errorf("!(%d >= %d)", x, y)
   14332 		}
   14333 	}
   14334 	{
   14335 		var x int64 = 9223372036854775806
   14336 		var y int64 = 9223372036854775807
   14337 		if x == y {
   14338 			t.Errorf("%d == %d", x, y)
   14339 		}
   14340 		if !(x != y) {
   14341 			t.Errorf("!(%d != %d)", x, y)
   14342 		}
   14343 		if !(x < y) {
   14344 			t.Errorf("!(%d < %d)", x, y)
   14345 		}
   14346 		if x > y {
   14347 			t.Errorf("%d > %d", x, y)
   14348 		}
   14349 		if !(x <= y) {
   14350 			t.Errorf("!(%d <= %d)", x, y)
   14351 		}
   14352 		if x >= y {
   14353 			t.Errorf("%d >= %d", x, y)
   14354 		}
   14355 	}
   14356 	{
   14357 		var x int64 = 9223372036854775807
   14358 		var y int64 = -9223372036854775808
   14359 		if x == y {
   14360 			t.Errorf("%d == %d", x, y)
   14361 		}
   14362 		if !(x != y) {
   14363 			t.Errorf("!(%d != %d)", x, y)
   14364 		}
   14365 		if x < y {
   14366 			t.Errorf("%d < %d", x, y)
   14367 		}
   14368 		if !(x > y) {
   14369 			t.Errorf("!(%d > %d)", x, y)
   14370 		}
   14371 		if x <= y {
   14372 			t.Errorf("%d <= %d", x, y)
   14373 		}
   14374 		if !(x >= y) {
   14375 			t.Errorf("!(%d >= %d)", x, y)
   14376 		}
   14377 	}
   14378 	{
   14379 		var x int64 = 9223372036854775807
   14380 		var y int64 = -9223372036854775807
   14381 		if x == y {
   14382 			t.Errorf("%d == %d", x, y)
   14383 		}
   14384 		if !(x != y) {
   14385 			t.Errorf("!(%d != %d)", x, y)
   14386 		}
   14387 		if x < y {
   14388 			t.Errorf("%d < %d", x, y)
   14389 		}
   14390 		if !(x > y) {
   14391 			t.Errorf("!(%d > %d)", x, y)
   14392 		}
   14393 		if x <= y {
   14394 			t.Errorf("%d <= %d", x, y)
   14395 		}
   14396 		if !(x >= y) {
   14397 			t.Errorf("!(%d >= %d)", x, y)
   14398 		}
   14399 	}
   14400 	{
   14401 		var x int64 = 9223372036854775807
   14402 		var y int64 = -4294967296
   14403 		if x == y {
   14404 			t.Errorf("%d == %d", x, y)
   14405 		}
   14406 		if !(x != y) {
   14407 			t.Errorf("!(%d != %d)", x, y)
   14408 		}
   14409 		if x < y {
   14410 			t.Errorf("%d < %d", x, y)
   14411 		}
   14412 		if !(x > y) {
   14413 			t.Errorf("!(%d > %d)", x, y)
   14414 		}
   14415 		if x <= y {
   14416 			t.Errorf("%d <= %d", x, y)
   14417 		}
   14418 		if !(x >= y) {
   14419 			t.Errorf("!(%d >= %d)", x, y)
   14420 		}
   14421 	}
   14422 	{
   14423 		var x int64 = 9223372036854775807
   14424 		var y int64 = -1
   14425 		if x == y {
   14426 			t.Errorf("%d == %d", x, y)
   14427 		}
   14428 		if !(x != y) {
   14429 			t.Errorf("!(%d != %d)", x, y)
   14430 		}
   14431 		if x < y {
   14432 			t.Errorf("%d < %d", x, y)
   14433 		}
   14434 		if !(x > y) {
   14435 			t.Errorf("!(%d > %d)", x, y)
   14436 		}
   14437 		if x <= y {
   14438 			t.Errorf("%d <= %d", x, y)
   14439 		}
   14440 		if !(x >= y) {
   14441 			t.Errorf("!(%d >= %d)", x, y)
   14442 		}
   14443 	}
   14444 	{
   14445 		var x int64 = 9223372036854775807
   14446 		var y int64 = 0
   14447 		if x == y {
   14448 			t.Errorf("%d == %d", x, y)
   14449 		}
   14450 		if !(x != y) {
   14451 			t.Errorf("!(%d != %d)", x, y)
   14452 		}
   14453 		if x < y {
   14454 			t.Errorf("%d < %d", x, y)
   14455 		}
   14456 		if !(x > y) {
   14457 			t.Errorf("!(%d > %d)", x, y)
   14458 		}
   14459 		if x <= y {
   14460 			t.Errorf("%d <= %d", x, y)
   14461 		}
   14462 		if !(x >= y) {
   14463 			t.Errorf("!(%d >= %d)", x, y)
   14464 		}
   14465 	}
   14466 	{
   14467 		var x int64 = 9223372036854775807
   14468 		var y int64 = 1
   14469 		if x == y {
   14470 			t.Errorf("%d == %d", x, y)
   14471 		}
   14472 		if !(x != y) {
   14473 			t.Errorf("!(%d != %d)", x, y)
   14474 		}
   14475 		if x < y {
   14476 			t.Errorf("%d < %d", x, y)
   14477 		}
   14478 		if !(x > y) {
   14479 			t.Errorf("!(%d > %d)", x, y)
   14480 		}
   14481 		if x <= y {
   14482 			t.Errorf("%d <= %d", x, y)
   14483 		}
   14484 		if !(x >= y) {
   14485 			t.Errorf("!(%d >= %d)", x, y)
   14486 		}
   14487 	}
   14488 	{
   14489 		var x int64 = 9223372036854775807
   14490 		var y int64 = 4294967296
   14491 		if x == y {
   14492 			t.Errorf("%d == %d", x, y)
   14493 		}
   14494 		if !(x != y) {
   14495 			t.Errorf("!(%d != %d)", x, y)
   14496 		}
   14497 		if x < y {
   14498 			t.Errorf("%d < %d", x, y)
   14499 		}
   14500 		if !(x > y) {
   14501 			t.Errorf("!(%d > %d)", x, y)
   14502 		}
   14503 		if x <= y {
   14504 			t.Errorf("%d <= %d", x, y)
   14505 		}
   14506 		if !(x >= y) {
   14507 			t.Errorf("!(%d >= %d)", x, y)
   14508 		}
   14509 	}
   14510 	{
   14511 		var x int64 = 9223372036854775807
   14512 		var y int64 = 9223372036854775806
   14513 		if x == y {
   14514 			t.Errorf("%d == %d", x, y)
   14515 		}
   14516 		if !(x != y) {
   14517 			t.Errorf("!(%d != %d)", x, y)
   14518 		}
   14519 		if x < y {
   14520 			t.Errorf("%d < %d", x, y)
   14521 		}
   14522 		if !(x > y) {
   14523 			t.Errorf("!(%d > %d)", x, y)
   14524 		}
   14525 		if x <= y {
   14526 			t.Errorf("%d <= %d", x, y)
   14527 		}
   14528 		if !(x >= y) {
   14529 			t.Errorf("!(%d >= %d)", x, y)
   14530 		}
   14531 	}
   14532 	{
   14533 		var x int64 = 9223372036854775807
   14534 		var y int64 = 9223372036854775807
   14535 		if !(x == y) {
   14536 			t.Errorf("!(%d == %d)", x, y)
   14537 		}
   14538 		if x != y {
   14539 			t.Errorf("%d != %d", x, y)
   14540 		}
   14541 		if x < y {
   14542 			t.Errorf("%d < %d", x, y)
   14543 		}
   14544 		if x > y {
   14545 			t.Errorf("%d > %d", x, y)
   14546 		}
   14547 		if !(x <= y) {
   14548 			t.Errorf("!(%d <= %d)", x, y)
   14549 		}
   14550 		if !(x >= y) {
   14551 			t.Errorf("!(%d >= %d)", x, y)
   14552 		}
   14553 	}
   14554 }
   14555 func TestConstFoldCompareuint32(t *testing.T) {
   14556 	{
   14557 		var x uint32 = 0
   14558 		var y uint32 = 0
   14559 		if !(x == y) {
   14560 			t.Errorf("!(%d == %d)", x, y)
   14561 		}
   14562 		if x != y {
   14563 			t.Errorf("%d != %d", x, y)
   14564 		}
   14565 		if x < y {
   14566 			t.Errorf("%d < %d", x, y)
   14567 		}
   14568 		if x > y {
   14569 			t.Errorf("%d > %d", x, y)
   14570 		}
   14571 		if !(x <= y) {
   14572 			t.Errorf("!(%d <= %d)", x, y)
   14573 		}
   14574 		if !(x >= y) {
   14575 			t.Errorf("!(%d >= %d)", x, y)
   14576 		}
   14577 	}
   14578 	{
   14579 		var x uint32 = 0
   14580 		var y uint32 = 1
   14581 		if x == y {
   14582 			t.Errorf("%d == %d", x, y)
   14583 		}
   14584 		if !(x != y) {
   14585 			t.Errorf("!(%d != %d)", x, y)
   14586 		}
   14587 		if !(x < y) {
   14588 			t.Errorf("!(%d < %d)", x, y)
   14589 		}
   14590 		if x > y {
   14591 			t.Errorf("%d > %d", x, y)
   14592 		}
   14593 		if !(x <= y) {
   14594 			t.Errorf("!(%d <= %d)", x, y)
   14595 		}
   14596 		if x >= y {
   14597 			t.Errorf("%d >= %d", x, y)
   14598 		}
   14599 	}
   14600 	{
   14601 		var x uint32 = 0
   14602 		var y uint32 = 4294967295
   14603 		if x == y {
   14604 			t.Errorf("%d == %d", x, y)
   14605 		}
   14606 		if !(x != y) {
   14607 			t.Errorf("!(%d != %d)", x, y)
   14608 		}
   14609 		if !(x < y) {
   14610 			t.Errorf("!(%d < %d)", x, y)
   14611 		}
   14612 		if x > y {
   14613 			t.Errorf("%d > %d", x, y)
   14614 		}
   14615 		if !(x <= y) {
   14616 			t.Errorf("!(%d <= %d)", x, y)
   14617 		}
   14618 		if x >= y {
   14619 			t.Errorf("%d >= %d", x, y)
   14620 		}
   14621 	}
   14622 	{
   14623 		var x uint32 = 1
   14624 		var y uint32 = 0
   14625 		if x == y {
   14626 			t.Errorf("%d == %d", x, y)
   14627 		}
   14628 		if !(x != y) {
   14629 			t.Errorf("!(%d != %d)", x, y)
   14630 		}
   14631 		if x < y {
   14632 			t.Errorf("%d < %d", x, y)
   14633 		}
   14634 		if !(x > y) {
   14635 			t.Errorf("!(%d > %d)", x, y)
   14636 		}
   14637 		if x <= y {
   14638 			t.Errorf("%d <= %d", x, y)
   14639 		}
   14640 		if !(x >= y) {
   14641 			t.Errorf("!(%d >= %d)", x, y)
   14642 		}
   14643 	}
   14644 	{
   14645 		var x uint32 = 1
   14646 		var y uint32 = 1
   14647 		if !(x == y) {
   14648 			t.Errorf("!(%d == %d)", x, y)
   14649 		}
   14650 		if x != y {
   14651 			t.Errorf("%d != %d", x, y)
   14652 		}
   14653 		if x < y {
   14654 			t.Errorf("%d < %d", x, y)
   14655 		}
   14656 		if x > y {
   14657 			t.Errorf("%d > %d", x, y)
   14658 		}
   14659 		if !(x <= y) {
   14660 			t.Errorf("!(%d <= %d)", x, y)
   14661 		}
   14662 		if !(x >= y) {
   14663 			t.Errorf("!(%d >= %d)", x, y)
   14664 		}
   14665 	}
   14666 	{
   14667 		var x uint32 = 1
   14668 		var y uint32 = 4294967295
   14669 		if x == y {
   14670 			t.Errorf("%d == %d", x, y)
   14671 		}
   14672 		if !(x != y) {
   14673 			t.Errorf("!(%d != %d)", x, y)
   14674 		}
   14675 		if !(x < y) {
   14676 			t.Errorf("!(%d < %d)", x, y)
   14677 		}
   14678 		if x > y {
   14679 			t.Errorf("%d > %d", x, y)
   14680 		}
   14681 		if !(x <= y) {
   14682 			t.Errorf("!(%d <= %d)", x, y)
   14683 		}
   14684 		if x >= y {
   14685 			t.Errorf("%d >= %d", x, y)
   14686 		}
   14687 	}
   14688 	{
   14689 		var x uint32 = 4294967295
   14690 		var y uint32 = 0
   14691 		if x == y {
   14692 			t.Errorf("%d == %d", x, y)
   14693 		}
   14694 		if !(x != y) {
   14695 			t.Errorf("!(%d != %d)", x, y)
   14696 		}
   14697 		if x < y {
   14698 			t.Errorf("%d < %d", x, y)
   14699 		}
   14700 		if !(x > y) {
   14701 			t.Errorf("!(%d > %d)", x, y)
   14702 		}
   14703 		if x <= y {
   14704 			t.Errorf("%d <= %d", x, y)
   14705 		}
   14706 		if !(x >= y) {
   14707 			t.Errorf("!(%d >= %d)", x, y)
   14708 		}
   14709 	}
   14710 	{
   14711 		var x uint32 = 4294967295
   14712 		var y uint32 = 1
   14713 		if x == y {
   14714 			t.Errorf("%d == %d", x, y)
   14715 		}
   14716 		if !(x != y) {
   14717 			t.Errorf("!(%d != %d)", x, y)
   14718 		}
   14719 		if x < y {
   14720 			t.Errorf("%d < %d", x, y)
   14721 		}
   14722 		if !(x > y) {
   14723 			t.Errorf("!(%d > %d)", x, y)
   14724 		}
   14725 		if x <= y {
   14726 			t.Errorf("%d <= %d", x, y)
   14727 		}
   14728 		if !(x >= y) {
   14729 			t.Errorf("!(%d >= %d)", x, y)
   14730 		}
   14731 	}
   14732 	{
   14733 		var x uint32 = 4294967295
   14734 		var y uint32 = 4294967295
   14735 		if !(x == y) {
   14736 			t.Errorf("!(%d == %d)", x, y)
   14737 		}
   14738 		if x != y {
   14739 			t.Errorf("%d != %d", x, y)
   14740 		}
   14741 		if x < y {
   14742 			t.Errorf("%d < %d", x, y)
   14743 		}
   14744 		if x > y {
   14745 			t.Errorf("%d > %d", x, y)
   14746 		}
   14747 		if !(x <= y) {
   14748 			t.Errorf("!(%d <= %d)", x, y)
   14749 		}
   14750 		if !(x >= y) {
   14751 			t.Errorf("!(%d >= %d)", x, y)
   14752 		}
   14753 	}
   14754 }
   14755 func TestConstFoldCompareint32(t *testing.T) {
   14756 	{
   14757 		var x int32 = -2147483648
   14758 		var y int32 = -2147483648
   14759 		if !(x == y) {
   14760 			t.Errorf("!(%d == %d)", x, y)
   14761 		}
   14762 		if x != y {
   14763 			t.Errorf("%d != %d", x, y)
   14764 		}
   14765 		if x < y {
   14766 			t.Errorf("%d < %d", x, y)
   14767 		}
   14768 		if x > y {
   14769 			t.Errorf("%d > %d", x, y)
   14770 		}
   14771 		if !(x <= y) {
   14772 			t.Errorf("!(%d <= %d)", x, y)
   14773 		}
   14774 		if !(x >= y) {
   14775 			t.Errorf("!(%d >= %d)", x, y)
   14776 		}
   14777 	}
   14778 	{
   14779 		var x int32 = -2147483648
   14780 		var y int32 = -2147483647
   14781 		if x == y {
   14782 			t.Errorf("%d == %d", x, y)
   14783 		}
   14784 		if !(x != y) {
   14785 			t.Errorf("!(%d != %d)", x, y)
   14786 		}
   14787 		if !(x < y) {
   14788 			t.Errorf("!(%d < %d)", x, y)
   14789 		}
   14790 		if x > y {
   14791 			t.Errorf("%d > %d", x, y)
   14792 		}
   14793 		if !(x <= y) {
   14794 			t.Errorf("!(%d <= %d)", x, y)
   14795 		}
   14796 		if x >= y {
   14797 			t.Errorf("%d >= %d", x, y)
   14798 		}
   14799 	}
   14800 	{
   14801 		var x int32 = -2147483648
   14802 		var y int32 = -1
   14803 		if x == y {
   14804 			t.Errorf("%d == %d", x, y)
   14805 		}
   14806 		if !(x != y) {
   14807 			t.Errorf("!(%d != %d)", x, y)
   14808 		}
   14809 		if !(x < y) {
   14810 			t.Errorf("!(%d < %d)", x, y)
   14811 		}
   14812 		if x > y {
   14813 			t.Errorf("%d > %d", x, y)
   14814 		}
   14815 		if !(x <= y) {
   14816 			t.Errorf("!(%d <= %d)", x, y)
   14817 		}
   14818 		if x >= y {
   14819 			t.Errorf("%d >= %d", x, y)
   14820 		}
   14821 	}
   14822 	{
   14823 		var x int32 = -2147483648
   14824 		var y int32 = 0
   14825 		if x == y {
   14826 			t.Errorf("%d == %d", x, y)
   14827 		}
   14828 		if !(x != y) {
   14829 			t.Errorf("!(%d != %d)", x, y)
   14830 		}
   14831 		if !(x < y) {
   14832 			t.Errorf("!(%d < %d)", x, y)
   14833 		}
   14834 		if x > y {
   14835 			t.Errorf("%d > %d", x, y)
   14836 		}
   14837 		if !(x <= y) {
   14838 			t.Errorf("!(%d <= %d)", x, y)
   14839 		}
   14840 		if x >= y {
   14841 			t.Errorf("%d >= %d", x, y)
   14842 		}
   14843 	}
   14844 	{
   14845 		var x int32 = -2147483648
   14846 		var y int32 = 1
   14847 		if x == y {
   14848 			t.Errorf("%d == %d", x, y)
   14849 		}
   14850 		if !(x != y) {
   14851 			t.Errorf("!(%d != %d)", x, y)
   14852 		}
   14853 		if !(x < y) {
   14854 			t.Errorf("!(%d < %d)", x, y)
   14855 		}
   14856 		if x > y {
   14857 			t.Errorf("%d > %d", x, y)
   14858 		}
   14859 		if !(x <= y) {
   14860 			t.Errorf("!(%d <= %d)", x, y)
   14861 		}
   14862 		if x >= y {
   14863 			t.Errorf("%d >= %d", x, y)
   14864 		}
   14865 	}
   14866 	{
   14867 		var x int32 = -2147483648
   14868 		var y int32 = 2147483647
   14869 		if x == y {
   14870 			t.Errorf("%d == %d", x, y)
   14871 		}
   14872 		if !(x != y) {
   14873 			t.Errorf("!(%d != %d)", x, y)
   14874 		}
   14875 		if !(x < y) {
   14876 			t.Errorf("!(%d < %d)", x, y)
   14877 		}
   14878 		if x > y {
   14879 			t.Errorf("%d > %d", x, y)
   14880 		}
   14881 		if !(x <= y) {
   14882 			t.Errorf("!(%d <= %d)", x, y)
   14883 		}
   14884 		if x >= y {
   14885 			t.Errorf("%d >= %d", x, y)
   14886 		}
   14887 	}
   14888 	{
   14889 		var x int32 = -2147483647
   14890 		var y int32 = -2147483648
   14891 		if x == y {
   14892 			t.Errorf("%d == %d", x, y)
   14893 		}
   14894 		if !(x != y) {
   14895 			t.Errorf("!(%d != %d)", x, y)
   14896 		}
   14897 		if x < y {
   14898 			t.Errorf("%d < %d", x, y)
   14899 		}
   14900 		if !(x > y) {
   14901 			t.Errorf("!(%d > %d)", x, y)
   14902 		}
   14903 		if x <= y {
   14904 			t.Errorf("%d <= %d", x, y)
   14905 		}
   14906 		if !(x >= y) {
   14907 			t.Errorf("!(%d >= %d)", x, y)
   14908 		}
   14909 	}
   14910 	{
   14911 		var x int32 = -2147483647
   14912 		var y int32 = -2147483647
   14913 		if !(x == y) {
   14914 			t.Errorf("!(%d == %d)", x, y)
   14915 		}
   14916 		if x != y {
   14917 			t.Errorf("%d != %d", x, y)
   14918 		}
   14919 		if x < y {
   14920 			t.Errorf("%d < %d", x, y)
   14921 		}
   14922 		if x > y {
   14923 			t.Errorf("%d > %d", x, y)
   14924 		}
   14925 		if !(x <= y) {
   14926 			t.Errorf("!(%d <= %d)", x, y)
   14927 		}
   14928 		if !(x >= y) {
   14929 			t.Errorf("!(%d >= %d)", x, y)
   14930 		}
   14931 	}
   14932 	{
   14933 		var x int32 = -2147483647
   14934 		var y int32 = -1
   14935 		if x == y {
   14936 			t.Errorf("%d == %d", x, y)
   14937 		}
   14938 		if !(x != y) {
   14939 			t.Errorf("!(%d != %d)", x, y)
   14940 		}
   14941 		if !(x < y) {
   14942 			t.Errorf("!(%d < %d)", x, y)
   14943 		}
   14944 		if x > y {
   14945 			t.Errorf("%d > %d", x, y)
   14946 		}
   14947 		if !(x <= y) {
   14948 			t.Errorf("!(%d <= %d)", x, y)
   14949 		}
   14950 		if x >= y {
   14951 			t.Errorf("%d >= %d", x, y)
   14952 		}
   14953 	}
   14954 	{
   14955 		var x int32 = -2147483647
   14956 		var y int32 = 0
   14957 		if x == y {
   14958 			t.Errorf("%d == %d", x, y)
   14959 		}
   14960 		if !(x != y) {
   14961 			t.Errorf("!(%d != %d)", x, y)
   14962 		}
   14963 		if !(x < y) {
   14964 			t.Errorf("!(%d < %d)", x, y)
   14965 		}
   14966 		if x > y {
   14967 			t.Errorf("%d > %d", x, y)
   14968 		}
   14969 		if !(x <= y) {
   14970 			t.Errorf("!(%d <= %d)", x, y)
   14971 		}
   14972 		if x >= y {
   14973 			t.Errorf("%d >= %d", x, y)
   14974 		}
   14975 	}
   14976 	{
   14977 		var x int32 = -2147483647
   14978 		var y int32 = 1
   14979 		if x == y {
   14980 			t.Errorf("%d == %d", x, y)
   14981 		}
   14982 		if !(x != y) {
   14983 			t.Errorf("!(%d != %d)", x, y)
   14984 		}
   14985 		if !(x < y) {
   14986 			t.Errorf("!(%d < %d)", x, y)
   14987 		}
   14988 		if x > y {
   14989 			t.Errorf("%d > %d", x, y)
   14990 		}
   14991 		if !(x <= y) {
   14992 			t.Errorf("!(%d <= %d)", x, y)
   14993 		}
   14994 		if x >= y {
   14995 			t.Errorf("%d >= %d", x, y)
   14996 		}
   14997 	}
   14998 	{
   14999 		var x int32 = -2147483647
   15000 		var y int32 = 2147483647
   15001 		if x == y {
   15002 			t.Errorf("%d == %d", x, y)
   15003 		}
   15004 		if !(x != y) {
   15005 			t.Errorf("!(%d != %d)", x, y)
   15006 		}
   15007 		if !(x < y) {
   15008 			t.Errorf("!(%d < %d)", x, y)
   15009 		}
   15010 		if x > y {
   15011 			t.Errorf("%d > %d", x, y)
   15012 		}
   15013 		if !(x <= y) {
   15014 			t.Errorf("!(%d <= %d)", x, y)
   15015 		}
   15016 		if x >= y {
   15017 			t.Errorf("%d >= %d", x, y)
   15018 		}
   15019 	}
   15020 	{
   15021 		var x int32 = -1
   15022 		var y int32 = -2147483648
   15023 		if x == y {
   15024 			t.Errorf("%d == %d", x, y)
   15025 		}
   15026 		if !(x != y) {
   15027 			t.Errorf("!(%d != %d)", x, y)
   15028 		}
   15029 		if x < y {
   15030 			t.Errorf("%d < %d", x, y)
   15031 		}
   15032 		if !(x > y) {
   15033 			t.Errorf("!(%d > %d)", x, y)
   15034 		}
   15035 		if x <= y {
   15036 			t.Errorf("%d <= %d", x, y)
   15037 		}
   15038 		if !(x >= y) {
   15039 			t.Errorf("!(%d >= %d)", x, y)
   15040 		}
   15041 	}
   15042 	{
   15043 		var x int32 = -1
   15044 		var y int32 = -2147483647
   15045 		if x == y {
   15046 			t.Errorf("%d == %d", x, y)
   15047 		}
   15048 		if !(x != y) {
   15049 			t.Errorf("!(%d != %d)", x, y)
   15050 		}
   15051 		if x < y {
   15052 			t.Errorf("%d < %d", x, y)
   15053 		}
   15054 		if !(x > y) {
   15055 			t.Errorf("!(%d > %d)", x, y)
   15056 		}
   15057 		if x <= y {
   15058 			t.Errorf("%d <= %d", x, y)
   15059 		}
   15060 		if !(x >= y) {
   15061 			t.Errorf("!(%d >= %d)", x, y)
   15062 		}
   15063 	}
   15064 	{
   15065 		var x int32 = -1
   15066 		var y int32 = -1
   15067 		if !(x == y) {
   15068 			t.Errorf("!(%d == %d)", x, y)
   15069 		}
   15070 		if x != y {
   15071 			t.Errorf("%d != %d", x, y)
   15072 		}
   15073 		if x < y {
   15074 			t.Errorf("%d < %d", x, y)
   15075 		}
   15076 		if x > y {
   15077 			t.Errorf("%d > %d", x, y)
   15078 		}
   15079 		if !(x <= y) {
   15080 			t.Errorf("!(%d <= %d)", x, y)
   15081 		}
   15082 		if !(x >= y) {
   15083 			t.Errorf("!(%d >= %d)", x, y)
   15084 		}
   15085 	}
   15086 	{
   15087 		var x int32 = -1
   15088 		var y int32 = 0
   15089 		if x == y {
   15090 			t.Errorf("%d == %d", x, y)
   15091 		}
   15092 		if !(x != y) {
   15093 			t.Errorf("!(%d != %d)", x, y)
   15094 		}
   15095 		if !(x < y) {
   15096 			t.Errorf("!(%d < %d)", x, y)
   15097 		}
   15098 		if x > y {
   15099 			t.Errorf("%d > %d", x, y)
   15100 		}
   15101 		if !(x <= y) {
   15102 			t.Errorf("!(%d <= %d)", x, y)
   15103 		}
   15104 		if x >= y {
   15105 			t.Errorf("%d >= %d", x, y)
   15106 		}
   15107 	}
   15108 	{
   15109 		var x int32 = -1
   15110 		var y int32 = 1
   15111 		if x == y {
   15112 			t.Errorf("%d == %d", x, y)
   15113 		}
   15114 		if !(x != y) {
   15115 			t.Errorf("!(%d != %d)", x, y)
   15116 		}
   15117 		if !(x < y) {
   15118 			t.Errorf("!(%d < %d)", x, y)
   15119 		}
   15120 		if x > y {
   15121 			t.Errorf("%d > %d", x, y)
   15122 		}
   15123 		if !(x <= y) {
   15124 			t.Errorf("!(%d <= %d)", x, y)
   15125 		}
   15126 		if x >= y {
   15127 			t.Errorf("%d >= %d", x, y)
   15128 		}
   15129 	}
   15130 	{
   15131 		var x int32 = -1
   15132 		var y int32 = 2147483647
   15133 		if x == y {
   15134 			t.Errorf("%d == %d", x, y)
   15135 		}
   15136 		if !(x != y) {
   15137 			t.Errorf("!(%d != %d)", x, y)
   15138 		}
   15139 		if !(x < y) {
   15140 			t.Errorf("!(%d < %d)", x, y)
   15141 		}
   15142 		if x > y {
   15143 			t.Errorf("%d > %d", x, y)
   15144 		}
   15145 		if !(x <= y) {
   15146 			t.Errorf("!(%d <= %d)", x, y)
   15147 		}
   15148 		if x >= y {
   15149 			t.Errorf("%d >= %d", x, y)
   15150 		}
   15151 	}
   15152 	{
   15153 		var x int32 = 0
   15154 		var y int32 = -2147483648
   15155 		if x == y {
   15156 			t.Errorf("%d == %d", x, y)
   15157 		}
   15158 		if !(x != y) {
   15159 			t.Errorf("!(%d != %d)", x, y)
   15160 		}
   15161 		if x < y {
   15162 			t.Errorf("%d < %d", x, y)
   15163 		}
   15164 		if !(x > y) {
   15165 			t.Errorf("!(%d > %d)", x, y)
   15166 		}
   15167 		if x <= y {
   15168 			t.Errorf("%d <= %d", x, y)
   15169 		}
   15170 		if !(x >= y) {
   15171 			t.Errorf("!(%d >= %d)", x, y)
   15172 		}
   15173 	}
   15174 	{
   15175 		var x int32 = 0
   15176 		var y int32 = -2147483647
   15177 		if x == y {
   15178 			t.Errorf("%d == %d", x, y)
   15179 		}
   15180 		if !(x != y) {
   15181 			t.Errorf("!(%d != %d)", x, y)
   15182 		}
   15183 		if x < y {
   15184 			t.Errorf("%d < %d", x, y)
   15185 		}
   15186 		if !(x > y) {
   15187 			t.Errorf("!(%d > %d)", x, y)
   15188 		}
   15189 		if x <= y {
   15190 			t.Errorf("%d <= %d", x, y)
   15191 		}
   15192 		if !(x >= y) {
   15193 			t.Errorf("!(%d >= %d)", x, y)
   15194 		}
   15195 	}
   15196 	{
   15197 		var x int32 = 0
   15198 		var y int32 = -1
   15199 		if x == y {
   15200 			t.Errorf("%d == %d", x, y)
   15201 		}
   15202 		if !(x != y) {
   15203 			t.Errorf("!(%d != %d)", x, y)
   15204 		}
   15205 		if x < y {
   15206 			t.Errorf("%d < %d", x, y)
   15207 		}
   15208 		if !(x > y) {
   15209 			t.Errorf("!(%d > %d)", x, y)
   15210 		}
   15211 		if x <= y {
   15212 			t.Errorf("%d <= %d", x, y)
   15213 		}
   15214 		if !(x >= y) {
   15215 			t.Errorf("!(%d >= %d)", x, y)
   15216 		}
   15217 	}
   15218 	{
   15219 		var x int32 = 0
   15220 		var y int32 = 0
   15221 		if !(x == y) {
   15222 			t.Errorf("!(%d == %d)", x, y)
   15223 		}
   15224 		if x != y {
   15225 			t.Errorf("%d != %d", x, y)
   15226 		}
   15227 		if x < y {
   15228 			t.Errorf("%d < %d", x, y)
   15229 		}
   15230 		if x > y {
   15231 			t.Errorf("%d > %d", x, y)
   15232 		}
   15233 		if !(x <= y) {
   15234 			t.Errorf("!(%d <= %d)", x, y)
   15235 		}
   15236 		if !(x >= y) {
   15237 			t.Errorf("!(%d >= %d)", x, y)
   15238 		}
   15239 	}
   15240 	{
   15241 		var x int32 = 0
   15242 		var y int32 = 1
   15243 		if x == y {
   15244 			t.Errorf("%d == %d", x, y)
   15245 		}
   15246 		if !(x != y) {
   15247 			t.Errorf("!(%d != %d)", x, y)
   15248 		}
   15249 		if !(x < y) {
   15250 			t.Errorf("!(%d < %d)", x, y)
   15251 		}
   15252 		if x > y {
   15253 			t.Errorf("%d > %d", x, y)
   15254 		}
   15255 		if !(x <= y) {
   15256 			t.Errorf("!(%d <= %d)", x, y)
   15257 		}
   15258 		if x >= y {
   15259 			t.Errorf("%d >= %d", x, y)
   15260 		}
   15261 	}
   15262 	{
   15263 		var x int32 = 0
   15264 		var y int32 = 2147483647
   15265 		if x == y {
   15266 			t.Errorf("%d == %d", x, y)
   15267 		}
   15268 		if !(x != y) {
   15269 			t.Errorf("!(%d != %d)", x, y)
   15270 		}
   15271 		if !(x < y) {
   15272 			t.Errorf("!(%d < %d)", x, y)
   15273 		}
   15274 		if x > y {
   15275 			t.Errorf("%d > %d", x, y)
   15276 		}
   15277 		if !(x <= y) {
   15278 			t.Errorf("!(%d <= %d)", x, y)
   15279 		}
   15280 		if x >= y {
   15281 			t.Errorf("%d >= %d", x, y)
   15282 		}
   15283 	}
   15284 	{
   15285 		var x int32 = 1
   15286 		var y int32 = -2147483648
   15287 		if x == y {
   15288 			t.Errorf("%d == %d", x, y)
   15289 		}
   15290 		if !(x != y) {
   15291 			t.Errorf("!(%d != %d)", x, y)
   15292 		}
   15293 		if x < y {
   15294 			t.Errorf("%d < %d", x, y)
   15295 		}
   15296 		if !(x > y) {
   15297 			t.Errorf("!(%d > %d)", x, y)
   15298 		}
   15299 		if x <= y {
   15300 			t.Errorf("%d <= %d", x, y)
   15301 		}
   15302 		if !(x >= y) {
   15303 			t.Errorf("!(%d >= %d)", x, y)
   15304 		}
   15305 	}
   15306 	{
   15307 		var x int32 = 1
   15308 		var y int32 = -2147483647
   15309 		if x == y {
   15310 			t.Errorf("%d == %d", x, y)
   15311 		}
   15312 		if !(x != y) {
   15313 			t.Errorf("!(%d != %d)", x, y)
   15314 		}
   15315 		if x < y {
   15316 			t.Errorf("%d < %d", x, y)
   15317 		}
   15318 		if !(x > y) {
   15319 			t.Errorf("!(%d > %d)", x, y)
   15320 		}
   15321 		if x <= y {
   15322 			t.Errorf("%d <= %d", x, y)
   15323 		}
   15324 		if !(x >= y) {
   15325 			t.Errorf("!(%d >= %d)", x, y)
   15326 		}
   15327 	}
   15328 	{
   15329 		var x int32 = 1
   15330 		var y int32 = -1
   15331 		if x == y {
   15332 			t.Errorf("%d == %d", x, y)
   15333 		}
   15334 		if !(x != y) {
   15335 			t.Errorf("!(%d != %d)", x, y)
   15336 		}
   15337 		if x < y {
   15338 			t.Errorf("%d < %d", x, y)
   15339 		}
   15340 		if !(x > y) {
   15341 			t.Errorf("!(%d > %d)", x, y)
   15342 		}
   15343 		if x <= y {
   15344 			t.Errorf("%d <= %d", x, y)
   15345 		}
   15346 		if !(x >= y) {
   15347 			t.Errorf("!(%d >= %d)", x, y)
   15348 		}
   15349 	}
   15350 	{
   15351 		var x int32 = 1
   15352 		var y int32 = 0
   15353 		if x == y {
   15354 			t.Errorf("%d == %d", x, y)
   15355 		}
   15356 		if !(x != y) {
   15357 			t.Errorf("!(%d != %d)", x, y)
   15358 		}
   15359 		if x < y {
   15360 			t.Errorf("%d < %d", x, y)
   15361 		}
   15362 		if !(x > y) {
   15363 			t.Errorf("!(%d > %d)", x, y)
   15364 		}
   15365 		if x <= y {
   15366 			t.Errorf("%d <= %d", x, y)
   15367 		}
   15368 		if !(x >= y) {
   15369 			t.Errorf("!(%d >= %d)", x, y)
   15370 		}
   15371 	}
   15372 	{
   15373 		var x int32 = 1
   15374 		var y int32 = 1
   15375 		if !(x == y) {
   15376 			t.Errorf("!(%d == %d)", x, y)
   15377 		}
   15378 		if x != y {
   15379 			t.Errorf("%d != %d", x, y)
   15380 		}
   15381 		if x < y {
   15382 			t.Errorf("%d < %d", x, y)
   15383 		}
   15384 		if x > y {
   15385 			t.Errorf("%d > %d", x, y)
   15386 		}
   15387 		if !(x <= y) {
   15388 			t.Errorf("!(%d <= %d)", x, y)
   15389 		}
   15390 		if !(x >= y) {
   15391 			t.Errorf("!(%d >= %d)", x, y)
   15392 		}
   15393 	}
   15394 	{
   15395 		var x int32 = 1
   15396 		var y int32 = 2147483647
   15397 		if x == y {
   15398 			t.Errorf("%d == %d", x, y)
   15399 		}
   15400 		if !(x != y) {
   15401 			t.Errorf("!(%d != %d)", x, y)
   15402 		}
   15403 		if !(x < y) {
   15404 			t.Errorf("!(%d < %d)", x, y)
   15405 		}
   15406 		if x > y {
   15407 			t.Errorf("%d > %d", x, y)
   15408 		}
   15409 		if !(x <= y) {
   15410 			t.Errorf("!(%d <= %d)", x, y)
   15411 		}
   15412 		if x >= y {
   15413 			t.Errorf("%d >= %d", x, y)
   15414 		}
   15415 	}
   15416 	{
   15417 		var x int32 = 2147483647
   15418 		var y int32 = -2147483648
   15419 		if x == y {
   15420 			t.Errorf("%d == %d", x, y)
   15421 		}
   15422 		if !(x != y) {
   15423 			t.Errorf("!(%d != %d)", x, y)
   15424 		}
   15425 		if x < y {
   15426 			t.Errorf("%d < %d", x, y)
   15427 		}
   15428 		if !(x > y) {
   15429 			t.Errorf("!(%d > %d)", x, y)
   15430 		}
   15431 		if x <= y {
   15432 			t.Errorf("%d <= %d", x, y)
   15433 		}
   15434 		if !(x >= y) {
   15435 			t.Errorf("!(%d >= %d)", x, y)
   15436 		}
   15437 	}
   15438 	{
   15439 		var x int32 = 2147483647
   15440 		var y int32 = -2147483647
   15441 		if x == y {
   15442 			t.Errorf("%d == %d", x, y)
   15443 		}
   15444 		if !(x != y) {
   15445 			t.Errorf("!(%d != %d)", x, y)
   15446 		}
   15447 		if x < y {
   15448 			t.Errorf("%d < %d", x, y)
   15449 		}
   15450 		if !(x > y) {
   15451 			t.Errorf("!(%d > %d)", x, y)
   15452 		}
   15453 		if x <= y {
   15454 			t.Errorf("%d <= %d", x, y)
   15455 		}
   15456 		if !(x >= y) {
   15457 			t.Errorf("!(%d >= %d)", x, y)
   15458 		}
   15459 	}
   15460 	{
   15461 		var x int32 = 2147483647
   15462 		var y int32 = -1
   15463 		if x == y {
   15464 			t.Errorf("%d == %d", x, y)
   15465 		}
   15466 		if !(x != y) {
   15467 			t.Errorf("!(%d != %d)", x, y)
   15468 		}
   15469 		if x < y {
   15470 			t.Errorf("%d < %d", x, y)
   15471 		}
   15472 		if !(x > y) {
   15473 			t.Errorf("!(%d > %d)", x, y)
   15474 		}
   15475 		if x <= y {
   15476 			t.Errorf("%d <= %d", x, y)
   15477 		}
   15478 		if !(x >= y) {
   15479 			t.Errorf("!(%d >= %d)", x, y)
   15480 		}
   15481 	}
   15482 	{
   15483 		var x int32 = 2147483647
   15484 		var y int32 = 0
   15485 		if x == y {
   15486 			t.Errorf("%d == %d", x, y)
   15487 		}
   15488 		if !(x != y) {
   15489 			t.Errorf("!(%d != %d)", x, y)
   15490 		}
   15491 		if x < y {
   15492 			t.Errorf("%d < %d", x, y)
   15493 		}
   15494 		if !(x > y) {
   15495 			t.Errorf("!(%d > %d)", x, y)
   15496 		}
   15497 		if x <= y {
   15498 			t.Errorf("%d <= %d", x, y)
   15499 		}
   15500 		if !(x >= y) {
   15501 			t.Errorf("!(%d >= %d)", x, y)
   15502 		}
   15503 	}
   15504 	{
   15505 		var x int32 = 2147483647
   15506 		var y int32 = 1
   15507 		if x == y {
   15508 			t.Errorf("%d == %d", x, y)
   15509 		}
   15510 		if !(x != y) {
   15511 			t.Errorf("!(%d != %d)", x, y)
   15512 		}
   15513 		if x < y {
   15514 			t.Errorf("%d < %d", x, y)
   15515 		}
   15516 		if !(x > y) {
   15517 			t.Errorf("!(%d > %d)", x, y)
   15518 		}
   15519 		if x <= y {
   15520 			t.Errorf("%d <= %d", x, y)
   15521 		}
   15522 		if !(x >= y) {
   15523 			t.Errorf("!(%d >= %d)", x, y)
   15524 		}
   15525 	}
   15526 	{
   15527 		var x int32 = 2147483647
   15528 		var y int32 = 2147483647
   15529 		if !(x == y) {
   15530 			t.Errorf("!(%d == %d)", x, y)
   15531 		}
   15532 		if x != y {
   15533 			t.Errorf("%d != %d", x, y)
   15534 		}
   15535 		if x < y {
   15536 			t.Errorf("%d < %d", x, y)
   15537 		}
   15538 		if x > y {
   15539 			t.Errorf("%d > %d", x, y)
   15540 		}
   15541 		if !(x <= y) {
   15542 			t.Errorf("!(%d <= %d)", x, y)
   15543 		}
   15544 		if !(x >= y) {
   15545 			t.Errorf("!(%d >= %d)", x, y)
   15546 		}
   15547 	}
   15548 }
   15549 func TestConstFoldCompareuint16(t *testing.T) {
   15550 	{
   15551 		var x uint16 = 0
   15552 		var y uint16 = 0
   15553 		if !(x == y) {
   15554 			t.Errorf("!(%d == %d)", x, y)
   15555 		}
   15556 		if x != y {
   15557 			t.Errorf("%d != %d", x, y)
   15558 		}
   15559 		if x < y {
   15560 			t.Errorf("%d < %d", x, y)
   15561 		}
   15562 		if x > y {
   15563 			t.Errorf("%d > %d", x, y)
   15564 		}
   15565 		if !(x <= y) {
   15566 			t.Errorf("!(%d <= %d)", x, y)
   15567 		}
   15568 		if !(x >= y) {
   15569 			t.Errorf("!(%d >= %d)", x, y)
   15570 		}
   15571 	}
   15572 	{
   15573 		var x uint16 = 0
   15574 		var y uint16 = 1
   15575 		if x == y {
   15576 			t.Errorf("%d == %d", x, y)
   15577 		}
   15578 		if !(x != y) {
   15579 			t.Errorf("!(%d != %d)", x, y)
   15580 		}
   15581 		if !(x < y) {
   15582 			t.Errorf("!(%d < %d)", x, y)
   15583 		}
   15584 		if x > y {
   15585 			t.Errorf("%d > %d", x, y)
   15586 		}
   15587 		if !(x <= y) {
   15588 			t.Errorf("!(%d <= %d)", x, y)
   15589 		}
   15590 		if x >= y {
   15591 			t.Errorf("%d >= %d", x, y)
   15592 		}
   15593 	}
   15594 	{
   15595 		var x uint16 = 0
   15596 		var y uint16 = 65535
   15597 		if x == y {
   15598 			t.Errorf("%d == %d", x, y)
   15599 		}
   15600 		if !(x != y) {
   15601 			t.Errorf("!(%d != %d)", x, y)
   15602 		}
   15603 		if !(x < y) {
   15604 			t.Errorf("!(%d < %d)", x, y)
   15605 		}
   15606 		if x > y {
   15607 			t.Errorf("%d > %d", x, y)
   15608 		}
   15609 		if !(x <= y) {
   15610 			t.Errorf("!(%d <= %d)", x, y)
   15611 		}
   15612 		if x >= y {
   15613 			t.Errorf("%d >= %d", x, y)
   15614 		}
   15615 	}
   15616 	{
   15617 		var x uint16 = 1
   15618 		var y uint16 = 0
   15619 		if x == y {
   15620 			t.Errorf("%d == %d", x, y)
   15621 		}
   15622 		if !(x != y) {
   15623 			t.Errorf("!(%d != %d)", x, y)
   15624 		}
   15625 		if x < y {
   15626 			t.Errorf("%d < %d", x, y)
   15627 		}
   15628 		if !(x > y) {
   15629 			t.Errorf("!(%d > %d)", x, y)
   15630 		}
   15631 		if x <= y {
   15632 			t.Errorf("%d <= %d", x, y)
   15633 		}
   15634 		if !(x >= y) {
   15635 			t.Errorf("!(%d >= %d)", x, y)
   15636 		}
   15637 	}
   15638 	{
   15639 		var x uint16 = 1
   15640 		var y uint16 = 1
   15641 		if !(x == y) {
   15642 			t.Errorf("!(%d == %d)", x, y)
   15643 		}
   15644 		if x != y {
   15645 			t.Errorf("%d != %d", x, y)
   15646 		}
   15647 		if x < y {
   15648 			t.Errorf("%d < %d", x, y)
   15649 		}
   15650 		if x > y {
   15651 			t.Errorf("%d > %d", x, y)
   15652 		}
   15653 		if !(x <= y) {
   15654 			t.Errorf("!(%d <= %d)", x, y)
   15655 		}
   15656 		if !(x >= y) {
   15657 			t.Errorf("!(%d >= %d)", x, y)
   15658 		}
   15659 	}
   15660 	{
   15661 		var x uint16 = 1
   15662 		var y uint16 = 65535
   15663 		if x == y {
   15664 			t.Errorf("%d == %d", x, y)
   15665 		}
   15666 		if !(x != y) {
   15667 			t.Errorf("!(%d != %d)", x, y)
   15668 		}
   15669 		if !(x < y) {
   15670 			t.Errorf("!(%d < %d)", x, y)
   15671 		}
   15672 		if x > y {
   15673 			t.Errorf("%d > %d", x, y)
   15674 		}
   15675 		if !(x <= y) {
   15676 			t.Errorf("!(%d <= %d)", x, y)
   15677 		}
   15678 		if x >= y {
   15679 			t.Errorf("%d >= %d", x, y)
   15680 		}
   15681 	}
   15682 	{
   15683 		var x uint16 = 65535
   15684 		var y uint16 = 0
   15685 		if x == y {
   15686 			t.Errorf("%d == %d", x, y)
   15687 		}
   15688 		if !(x != y) {
   15689 			t.Errorf("!(%d != %d)", x, y)
   15690 		}
   15691 		if x < y {
   15692 			t.Errorf("%d < %d", x, y)
   15693 		}
   15694 		if !(x > y) {
   15695 			t.Errorf("!(%d > %d)", x, y)
   15696 		}
   15697 		if x <= y {
   15698 			t.Errorf("%d <= %d", x, y)
   15699 		}
   15700 		if !(x >= y) {
   15701 			t.Errorf("!(%d >= %d)", x, y)
   15702 		}
   15703 	}
   15704 	{
   15705 		var x uint16 = 65535
   15706 		var y uint16 = 1
   15707 		if x == y {
   15708 			t.Errorf("%d == %d", x, y)
   15709 		}
   15710 		if !(x != y) {
   15711 			t.Errorf("!(%d != %d)", x, y)
   15712 		}
   15713 		if x < y {
   15714 			t.Errorf("%d < %d", x, y)
   15715 		}
   15716 		if !(x > y) {
   15717 			t.Errorf("!(%d > %d)", x, y)
   15718 		}
   15719 		if x <= y {
   15720 			t.Errorf("%d <= %d", x, y)
   15721 		}
   15722 		if !(x >= y) {
   15723 			t.Errorf("!(%d >= %d)", x, y)
   15724 		}
   15725 	}
   15726 	{
   15727 		var x uint16 = 65535
   15728 		var y uint16 = 65535
   15729 		if !(x == y) {
   15730 			t.Errorf("!(%d == %d)", x, y)
   15731 		}
   15732 		if x != y {
   15733 			t.Errorf("%d != %d", x, y)
   15734 		}
   15735 		if x < y {
   15736 			t.Errorf("%d < %d", x, y)
   15737 		}
   15738 		if x > y {
   15739 			t.Errorf("%d > %d", x, y)
   15740 		}
   15741 		if !(x <= y) {
   15742 			t.Errorf("!(%d <= %d)", x, y)
   15743 		}
   15744 		if !(x >= y) {
   15745 			t.Errorf("!(%d >= %d)", x, y)
   15746 		}
   15747 	}
   15748 }
   15749 func TestConstFoldCompareint16(t *testing.T) {
   15750 	{
   15751 		var x int16 = -32768
   15752 		var y int16 = -32768
   15753 		if !(x == y) {
   15754 			t.Errorf("!(%d == %d)", x, y)
   15755 		}
   15756 		if x != y {
   15757 			t.Errorf("%d != %d", x, y)
   15758 		}
   15759 		if x < y {
   15760 			t.Errorf("%d < %d", x, y)
   15761 		}
   15762 		if x > y {
   15763 			t.Errorf("%d > %d", x, y)
   15764 		}
   15765 		if !(x <= y) {
   15766 			t.Errorf("!(%d <= %d)", x, y)
   15767 		}
   15768 		if !(x >= y) {
   15769 			t.Errorf("!(%d >= %d)", x, y)
   15770 		}
   15771 	}
   15772 	{
   15773 		var x int16 = -32768
   15774 		var y int16 = -32767
   15775 		if x == y {
   15776 			t.Errorf("%d == %d", x, y)
   15777 		}
   15778 		if !(x != y) {
   15779 			t.Errorf("!(%d != %d)", x, y)
   15780 		}
   15781 		if !(x < y) {
   15782 			t.Errorf("!(%d < %d)", x, y)
   15783 		}
   15784 		if x > y {
   15785 			t.Errorf("%d > %d", x, y)
   15786 		}
   15787 		if !(x <= y) {
   15788 			t.Errorf("!(%d <= %d)", x, y)
   15789 		}
   15790 		if x >= y {
   15791 			t.Errorf("%d >= %d", x, y)
   15792 		}
   15793 	}
   15794 	{
   15795 		var x int16 = -32768
   15796 		var y int16 = -1
   15797 		if x == y {
   15798 			t.Errorf("%d == %d", x, y)
   15799 		}
   15800 		if !(x != y) {
   15801 			t.Errorf("!(%d != %d)", x, y)
   15802 		}
   15803 		if !(x < y) {
   15804 			t.Errorf("!(%d < %d)", x, y)
   15805 		}
   15806 		if x > y {
   15807 			t.Errorf("%d > %d", x, y)
   15808 		}
   15809 		if !(x <= y) {
   15810 			t.Errorf("!(%d <= %d)", x, y)
   15811 		}
   15812 		if x >= y {
   15813 			t.Errorf("%d >= %d", x, y)
   15814 		}
   15815 	}
   15816 	{
   15817 		var x int16 = -32768
   15818 		var y int16 = 0
   15819 		if x == y {
   15820 			t.Errorf("%d == %d", x, y)
   15821 		}
   15822 		if !(x != y) {
   15823 			t.Errorf("!(%d != %d)", x, y)
   15824 		}
   15825 		if !(x < y) {
   15826 			t.Errorf("!(%d < %d)", x, y)
   15827 		}
   15828 		if x > y {
   15829 			t.Errorf("%d > %d", x, y)
   15830 		}
   15831 		if !(x <= y) {
   15832 			t.Errorf("!(%d <= %d)", x, y)
   15833 		}
   15834 		if x >= y {
   15835 			t.Errorf("%d >= %d", x, y)
   15836 		}
   15837 	}
   15838 	{
   15839 		var x int16 = -32768
   15840 		var y int16 = 1
   15841 		if x == y {
   15842 			t.Errorf("%d == %d", x, y)
   15843 		}
   15844 		if !(x != y) {
   15845 			t.Errorf("!(%d != %d)", x, y)
   15846 		}
   15847 		if !(x < y) {
   15848 			t.Errorf("!(%d < %d)", x, y)
   15849 		}
   15850 		if x > y {
   15851 			t.Errorf("%d > %d", x, y)
   15852 		}
   15853 		if !(x <= y) {
   15854 			t.Errorf("!(%d <= %d)", x, y)
   15855 		}
   15856 		if x >= y {
   15857 			t.Errorf("%d >= %d", x, y)
   15858 		}
   15859 	}
   15860 	{
   15861 		var x int16 = -32768
   15862 		var y int16 = 32766
   15863 		if x == y {
   15864 			t.Errorf("%d == %d", x, y)
   15865 		}
   15866 		if !(x != y) {
   15867 			t.Errorf("!(%d != %d)", x, y)
   15868 		}
   15869 		if !(x < y) {
   15870 			t.Errorf("!(%d < %d)", x, y)
   15871 		}
   15872 		if x > y {
   15873 			t.Errorf("%d > %d", x, y)
   15874 		}
   15875 		if !(x <= y) {
   15876 			t.Errorf("!(%d <= %d)", x, y)
   15877 		}
   15878 		if x >= y {
   15879 			t.Errorf("%d >= %d", x, y)
   15880 		}
   15881 	}
   15882 	{
   15883 		var x int16 = -32768
   15884 		var y int16 = 32767
   15885 		if x == y {
   15886 			t.Errorf("%d == %d", x, y)
   15887 		}
   15888 		if !(x != y) {
   15889 			t.Errorf("!(%d != %d)", x, y)
   15890 		}
   15891 		if !(x < y) {
   15892 			t.Errorf("!(%d < %d)", x, y)
   15893 		}
   15894 		if x > y {
   15895 			t.Errorf("%d > %d", x, y)
   15896 		}
   15897 		if !(x <= y) {
   15898 			t.Errorf("!(%d <= %d)", x, y)
   15899 		}
   15900 		if x >= y {
   15901 			t.Errorf("%d >= %d", x, y)
   15902 		}
   15903 	}
   15904 	{
   15905 		var x int16 = -32767
   15906 		var y int16 = -32768
   15907 		if x == y {
   15908 			t.Errorf("%d == %d", x, y)
   15909 		}
   15910 		if !(x != y) {
   15911 			t.Errorf("!(%d != %d)", x, y)
   15912 		}
   15913 		if x < y {
   15914 			t.Errorf("%d < %d", x, y)
   15915 		}
   15916 		if !(x > y) {
   15917 			t.Errorf("!(%d > %d)", x, y)
   15918 		}
   15919 		if x <= y {
   15920 			t.Errorf("%d <= %d", x, y)
   15921 		}
   15922 		if !(x >= y) {
   15923 			t.Errorf("!(%d >= %d)", x, y)
   15924 		}
   15925 	}
   15926 	{
   15927 		var x int16 = -32767
   15928 		var y int16 = -32767
   15929 		if !(x == y) {
   15930 			t.Errorf("!(%d == %d)", x, y)
   15931 		}
   15932 		if x != y {
   15933 			t.Errorf("%d != %d", x, y)
   15934 		}
   15935 		if x < y {
   15936 			t.Errorf("%d < %d", x, y)
   15937 		}
   15938 		if x > y {
   15939 			t.Errorf("%d > %d", x, y)
   15940 		}
   15941 		if !(x <= y) {
   15942 			t.Errorf("!(%d <= %d)", x, y)
   15943 		}
   15944 		if !(x >= y) {
   15945 			t.Errorf("!(%d >= %d)", x, y)
   15946 		}
   15947 	}
   15948 	{
   15949 		var x int16 = -32767
   15950 		var y int16 = -1
   15951 		if x == y {
   15952 			t.Errorf("%d == %d", x, y)
   15953 		}
   15954 		if !(x != y) {
   15955 			t.Errorf("!(%d != %d)", x, y)
   15956 		}
   15957 		if !(x < y) {
   15958 			t.Errorf("!(%d < %d)", x, y)
   15959 		}
   15960 		if x > y {
   15961 			t.Errorf("%d > %d", x, y)
   15962 		}
   15963 		if !(x <= y) {
   15964 			t.Errorf("!(%d <= %d)", x, y)
   15965 		}
   15966 		if x >= y {
   15967 			t.Errorf("%d >= %d", x, y)
   15968 		}
   15969 	}
   15970 	{
   15971 		var x int16 = -32767
   15972 		var y int16 = 0
   15973 		if x == y {
   15974 			t.Errorf("%d == %d", x, y)
   15975 		}
   15976 		if !(x != y) {
   15977 			t.Errorf("!(%d != %d)", x, y)
   15978 		}
   15979 		if !(x < y) {
   15980 			t.Errorf("!(%d < %d)", x, y)
   15981 		}
   15982 		if x > y {
   15983 			t.Errorf("%d > %d", x, y)
   15984 		}
   15985 		if !(x <= y) {
   15986 			t.Errorf("!(%d <= %d)", x, y)
   15987 		}
   15988 		if x >= y {
   15989 			t.Errorf("%d >= %d", x, y)
   15990 		}
   15991 	}
   15992 	{
   15993 		var x int16 = -32767
   15994 		var y int16 = 1
   15995 		if x == y {
   15996 			t.Errorf("%d == %d", x, y)
   15997 		}
   15998 		if !(x != y) {
   15999 			t.Errorf("!(%d != %d)", x, y)
   16000 		}
   16001 		if !(x < y) {
   16002 			t.Errorf("!(%d < %d)", x, y)
   16003 		}
   16004 		if x > y {
   16005 			t.Errorf("%d > %d", x, y)
   16006 		}
   16007 		if !(x <= y) {
   16008 			t.Errorf("!(%d <= %d)", x, y)
   16009 		}
   16010 		if x >= y {
   16011 			t.Errorf("%d >= %d", x, y)
   16012 		}
   16013 	}
   16014 	{
   16015 		var x int16 = -32767
   16016 		var y int16 = 32766
   16017 		if x == y {
   16018 			t.Errorf("%d == %d", x, y)
   16019 		}
   16020 		if !(x != y) {
   16021 			t.Errorf("!(%d != %d)", x, y)
   16022 		}
   16023 		if !(x < y) {
   16024 			t.Errorf("!(%d < %d)", x, y)
   16025 		}
   16026 		if x > y {
   16027 			t.Errorf("%d > %d", x, y)
   16028 		}
   16029 		if !(x <= y) {
   16030 			t.Errorf("!(%d <= %d)", x, y)
   16031 		}
   16032 		if x >= y {
   16033 			t.Errorf("%d >= %d", x, y)
   16034 		}
   16035 	}
   16036 	{
   16037 		var x int16 = -32767
   16038 		var y int16 = 32767
   16039 		if x == y {
   16040 			t.Errorf("%d == %d", x, y)
   16041 		}
   16042 		if !(x != y) {
   16043 			t.Errorf("!(%d != %d)", x, y)
   16044 		}
   16045 		if !(x < y) {
   16046 			t.Errorf("!(%d < %d)", x, y)
   16047 		}
   16048 		if x > y {
   16049 			t.Errorf("%d > %d", x, y)
   16050 		}
   16051 		if !(x <= y) {
   16052 			t.Errorf("!(%d <= %d)", x, y)
   16053 		}
   16054 		if x >= y {
   16055 			t.Errorf("%d >= %d", x, y)
   16056 		}
   16057 	}
   16058 	{
   16059 		var x int16 = -1
   16060 		var y int16 = -32768
   16061 		if x == y {
   16062 			t.Errorf("%d == %d", x, y)
   16063 		}
   16064 		if !(x != y) {
   16065 			t.Errorf("!(%d != %d)", x, y)
   16066 		}
   16067 		if x < y {
   16068 			t.Errorf("%d < %d", x, y)
   16069 		}
   16070 		if !(x > y) {
   16071 			t.Errorf("!(%d > %d)", x, y)
   16072 		}
   16073 		if x <= y {
   16074 			t.Errorf("%d <= %d", x, y)
   16075 		}
   16076 		if !(x >= y) {
   16077 			t.Errorf("!(%d >= %d)", x, y)
   16078 		}
   16079 	}
   16080 	{
   16081 		var x int16 = -1
   16082 		var y int16 = -32767
   16083 		if x == y {
   16084 			t.Errorf("%d == %d", x, y)
   16085 		}
   16086 		if !(x != y) {
   16087 			t.Errorf("!(%d != %d)", x, y)
   16088 		}
   16089 		if x < y {
   16090 			t.Errorf("%d < %d", x, y)
   16091 		}
   16092 		if !(x > y) {
   16093 			t.Errorf("!(%d > %d)", x, y)
   16094 		}
   16095 		if x <= y {
   16096 			t.Errorf("%d <= %d", x, y)
   16097 		}
   16098 		if !(x >= y) {
   16099 			t.Errorf("!(%d >= %d)", x, y)
   16100 		}
   16101 	}
   16102 	{
   16103 		var x int16 = -1
   16104 		var y int16 = -1
   16105 		if !(x == y) {
   16106 			t.Errorf("!(%d == %d)", x, y)
   16107 		}
   16108 		if x != y {
   16109 			t.Errorf("%d != %d", x, y)
   16110 		}
   16111 		if x < y {
   16112 			t.Errorf("%d < %d", x, y)
   16113 		}
   16114 		if x > y {
   16115 			t.Errorf("%d > %d", x, y)
   16116 		}
   16117 		if !(x <= y) {
   16118 			t.Errorf("!(%d <= %d)", x, y)
   16119 		}
   16120 		if !(x >= y) {
   16121 			t.Errorf("!(%d >= %d)", x, y)
   16122 		}
   16123 	}
   16124 	{
   16125 		var x int16 = -1
   16126 		var y int16 = 0
   16127 		if x == y {
   16128 			t.Errorf("%d == %d", x, y)
   16129 		}
   16130 		if !(x != y) {
   16131 			t.Errorf("!(%d != %d)", x, y)
   16132 		}
   16133 		if !(x < y) {
   16134 			t.Errorf("!(%d < %d)", x, y)
   16135 		}
   16136 		if x > y {
   16137 			t.Errorf("%d > %d", x, y)
   16138 		}
   16139 		if !(x <= y) {
   16140 			t.Errorf("!(%d <= %d)", x, y)
   16141 		}
   16142 		if x >= y {
   16143 			t.Errorf("%d >= %d", x, y)
   16144 		}
   16145 	}
   16146 	{
   16147 		var x int16 = -1
   16148 		var y int16 = 1
   16149 		if x == y {
   16150 			t.Errorf("%d == %d", x, y)
   16151 		}
   16152 		if !(x != y) {
   16153 			t.Errorf("!(%d != %d)", x, y)
   16154 		}
   16155 		if !(x < y) {
   16156 			t.Errorf("!(%d < %d)", x, y)
   16157 		}
   16158 		if x > y {
   16159 			t.Errorf("%d > %d", x, y)
   16160 		}
   16161 		if !(x <= y) {
   16162 			t.Errorf("!(%d <= %d)", x, y)
   16163 		}
   16164 		if x >= y {
   16165 			t.Errorf("%d >= %d", x, y)
   16166 		}
   16167 	}
   16168 	{
   16169 		var x int16 = -1
   16170 		var y int16 = 32766
   16171 		if x == y {
   16172 			t.Errorf("%d == %d", x, y)
   16173 		}
   16174 		if !(x != y) {
   16175 			t.Errorf("!(%d != %d)", x, y)
   16176 		}
   16177 		if !(x < y) {
   16178 			t.Errorf("!(%d < %d)", x, y)
   16179 		}
   16180 		if x > y {
   16181 			t.Errorf("%d > %d", x, y)
   16182 		}
   16183 		if !(x <= y) {
   16184 			t.Errorf("!(%d <= %d)", x, y)
   16185 		}
   16186 		if x >= y {
   16187 			t.Errorf("%d >= %d", x, y)
   16188 		}
   16189 	}
   16190 	{
   16191 		var x int16 = -1
   16192 		var y int16 = 32767
   16193 		if x == y {
   16194 			t.Errorf("%d == %d", x, y)
   16195 		}
   16196 		if !(x != y) {
   16197 			t.Errorf("!(%d != %d)", x, y)
   16198 		}
   16199 		if !(x < y) {
   16200 			t.Errorf("!(%d < %d)", x, y)
   16201 		}
   16202 		if x > y {
   16203 			t.Errorf("%d > %d", x, y)
   16204 		}
   16205 		if !(x <= y) {
   16206 			t.Errorf("!(%d <= %d)", x, y)
   16207 		}
   16208 		if x >= y {
   16209 			t.Errorf("%d >= %d", x, y)
   16210 		}
   16211 	}
   16212 	{
   16213 		var x int16 = 0
   16214 		var y int16 = -32768
   16215 		if x == y {
   16216 			t.Errorf("%d == %d", x, y)
   16217 		}
   16218 		if !(x != y) {
   16219 			t.Errorf("!(%d != %d)", x, y)
   16220 		}
   16221 		if x < y {
   16222 			t.Errorf("%d < %d", x, y)
   16223 		}
   16224 		if !(x > y) {
   16225 			t.Errorf("!(%d > %d)", x, y)
   16226 		}
   16227 		if x <= y {
   16228 			t.Errorf("%d <= %d", x, y)
   16229 		}
   16230 		if !(x >= y) {
   16231 			t.Errorf("!(%d >= %d)", x, y)
   16232 		}
   16233 	}
   16234 	{
   16235 		var x int16 = 0
   16236 		var y int16 = -32767
   16237 		if x == y {
   16238 			t.Errorf("%d == %d", x, y)
   16239 		}
   16240 		if !(x != y) {
   16241 			t.Errorf("!(%d != %d)", x, y)
   16242 		}
   16243 		if x < y {
   16244 			t.Errorf("%d < %d", x, y)
   16245 		}
   16246 		if !(x > y) {
   16247 			t.Errorf("!(%d > %d)", x, y)
   16248 		}
   16249 		if x <= y {
   16250 			t.Errorf("%d <= %d", x, y)
   16251 		}
   16252 		if !(x >= y) {
   16253 			t.Errorf("!(%d >= %d)", x, y)
   16254 		}
   16255 	}
   16256 	{
   16257 		var x int16 = 0
   16258 		var y int16 = -1
   16259 		if x == y {
   16260 			t.Errorf("%d == %d", x, y)
   16261 		}
   16262 		if !(x != y) {
   16263 			t.Errorf("!(%d != %d)", x, y)
   16264 		}
   16265 		if x < y {
   16266 			t.Errorf("%d < %d", x, y)
   16267 		}
   16268 		if !(x > y) {
   16269 			t.Errorf("!(%d > %d)", x, y)
   16270 		}
   16271 		if x <= y {
   16272 			t.Errorf("%d <= %d", x, y)
   16273 		}
   16274 		if !(x >= y) {
   16275 			t.Errorf("!(%d >= %d)", x, y)
   16276 		}
   16277 	}
   16278 	{
   16279 		var x int16 = 0
   16280 		var y int16 = 0
   16281 		if !(x == y) {
   16282 			t.Errorf("!(%d == %d)", x, y)
   16283 		}
   16284 		if x != y {
   16285 			t.Errorf("%d != %d", x, y)
   16286 		}
   16287 		if x < y {
   16288 			t.Errorf("%d < %d", x, y)
   16289 		}
   16290 		if x > y {
   16291 			t.Errorf("%d > %d", x, y)
   16292 		}
   16293 		if !(x <= y) {
   16294 			t.Errorf("!(%d <= %d)", x, y)
   16295 		}
   16296 		if !(x >= y) {
   16297 			t.Errorf("!(%d >= %d)", x, y)
   16298 		}
   16299 	}
   16300 	{
   16301 		var x int16 = 0
   16302 		var y int16 = 1
   16303 		if x == y {
   16304 			t.Errorf("%d == %d", x, y)
   16305 		}
   16306 		if !(x != y) {
   16307 			t.Errorf("!(%d != %d)", x, y)
   16308 		}
   16309 		if !(x < y) {
   16310 			t.Errorf("!(%d < %d)", x, y)
   16311 		}
   16312 		if x > y {
   16313 			t.Errorf("%d > %d", x, y)
   16314 		}
   16315 		if !(x <= y) {
   16316 			t.Errorf("!(%d <= %d)", x, y)
   16317 		}
   16318 		if x >= y {
   16319 			t.Errorf("%d >= %d", x, y)
   16320 		}
   16321 	}
   16322 	{
   16323 		var x int16 = 0
   16324 		var y int16 = 32766
   16325 		if x == y {
   16326 			t.Errorf("%d == %d", x, y)
   16327 		}
   16328 		if !(x != y) {
   16329 			t.Errorf("!(%d != %d)", x, y)
   16330 		}
   16331 		if !(x < y) {
   16332 			t.Errorf("!(%d < %d)", x, y)
   16333 		}
   16334 		if x > y {
   16335 			t.Errorf("%d > %d", x, y)
   16336 		}
   16337 		if !(x <= y) {
   16338 			t.Errorf("!(%d <= %d)", x, y)
   16339 		}
   16340 		if x >= y {
   16341 			t.Errorf("%d >= %d", x, y)
   16342 		}
   16343 	}
   16344 	{
   16345 		var x int16 = 0
   16346 		var y int16 = 32767
   16347 		if x == y {
   16348 			t.Errorf("%d == %d", x, y)
   16349 		}
   16350 		if !(x != y) {
   16351 			t.Errorf("!(%d != %d)", x, y)
   16352 		}
   16353 		if !(x < y) {
   16354 			t.Errorf("!(%d < %d)", x, y)
   16355 		}
   16356 		if x > y {
   16357 			t.Errorf("%d > %d", x, y)
   16358 		}
   16359 		if !(x <= y) {
   16360 			t.Errorf("!(%d <= %d)", x, y)
   16361 		}
   16362 		if x >= y {
   16363 			t.Errorf("%d >= %d", x, y)
   16364 		}
   16365 	}
   16366 	{
   16367 		var x int16 = 1
   16368 		var y int16 = -32768
   16369 		if x == y {
   16370 			t.Errorf("%d == %d", x, y)
   16371 		}
   16372 		if !(x != y) {
   16373 			t.Errorf("!(%d != %d)", x, y)
   16374 		}
   16375 		if x < y {
   16376 			t.Errorf("%d < %d", x, y)
   16377 		}
   16378 		if !(x > y) {
   16379 			t.Errorf("!(%d > %d)", x, y)
   16380 		}
   16381 		if x <= y {
   16382 			t.Errorf("%d <= %d", x, y)
   16383 		}
   16384 		if !(x >= y) {
   16385 			t.Errorf("!(%d >= %d)", x, y)
   16386 		}
   16387 	}
   16388 	{
   16389 		var x int16 = 1
   16390 		var y int16 = -32767
   16391 		if x == y {
   16392 			t.Errorf("%d == %d", x, y)
   16393 		}
   16394 		if !(x != y) {
   16395 			t.Errorf("!(%d != %d)", x, y)
   16396 		}
   16397 		if x < y {
   16398 			t.Errorf("%d < %d", x, y)
   16399 		}
   16400 		if !(x > y) {
   16401 			t.Errorf("!(%d > %d)", x, y)
   16402 		}
   16403 		if x <= y {
   16404 			t.Errorf("%d <= %d", x, y)
   16405 		}
   16406 		if !(x >= y) {
   16407 			t.Errorf("!(%d >= %d)", x, y)
   16408 		}
   16409 	}
   16410 	{
   16411 		var x int16 = 1
   16412 		var y int16 = -1
   16413 		if x == y {
   16414 			t.Errorf("%d == %d", x, y)
   16415 		}
   16416 		if !(x != y) {
   16417 			t.Errorf("!(%d != %d)", x, y)
   16418 		}
   16419 		if x < y {
   16420 			t.Errorf("%d < %d", x, y)
   16421 		}
   16422 		if !(x > y) {
   16423 			t.Errorf("!(%d > %d)", x, y)
   16424 		}
   16425 		if x <= y {
   16426 			t.Errorf("%d <= %d", x, y)
   16427 		}
   16428 		if !(x >= y) {
   16429 			t.Errorf("!(%d >= %d)", x, y)
   16430 		}
   16431 	}
   16432 	{
   16433 		var x int16 = 1
   16434 		var y int16 = 0
   16435 		if x == y {
   16436 			t.Errorf("%d == %d", x, y)
   16437 		}
   16438 		if !(x != y) {
   16439 			t.Errorf("!(%d != %d)", x, y)
   16440 		}
   16441 		if x < y {
   16442 			t.Errorf("%d < %d", x, y)
   16443 		}
   16444 		if !(x > y) {
   16445 			t.Errorf("!(%d > %d)", x, y)
   16446 		}
   16447 		if x <= y {
   16448 			t.Errorf("%d <= %d", x, y)
   16449 		}
   16450 		if !(x >= y) {
   16451 			t.Errorf("!(%d >= %d)", x, y)
   16452 		}
   16453 	}
   16454 	{
   16455 		var x int16 = 1
   16456 		var y int16 = 1
   16457 		if !(x == y) {
   16458 			t.Errorf("!(%d == %d)", x, y)
   16459 		}
   16460 		if x != y {
   16461 			t.Errorf("%d != %d", x, y)
   16462 		}
   16463 		if x < y {
   16464 			t.Errorf("%d < %d", x, y)
   16465 		}
   16466 		if x > y {
   16467 			t.Errorf("%d > %d", x, y)
   16468 		}
   16469 		if !(x <= y) {
   16470 			t.Errorf("!(%d <= %d)", x, y)
   16471 		}
   16472 		if !(x >= y) {
   16473 			t.Errorf("!(%d >= %d)", x, y)
   16474 		}
   16475 	}
   16476 	{
   16477 		var x int16 = 1
   16478 		var y int16 = 32766
   16479 		if x == y {
   16480 			t.Errorf("%d == %d", x, y)
   16481 		}
   16482 		if !(x != y) {
   16483 			t.Errorf("!(%d != %d)", x, y)
   16484 		}
   16485 		if !(x < y) {
   16486 			t.Errorf("!(%d < %d)", x, y)
   16487 		}
   16488 		if x > y {
   16489 			t.Errorf("%d > %d", x, y)
   16490 		}
   16491 		if !(x <= y) {
   16492 			t.Errorf("!(%d <= %d)", x, y)
   16493 		}
   16494 		if x >= y {
   16495 			t.Errorf("%d >= %d", x, y)
   16496 		}
   16497 	}
   16498 	{
   16499 		var x int16 = 1
   16500 		var y int16 = 32767
   16501 		if x == y {
   16502 			t.Errorf("%d == %d", x, y)
   16503 		}
   16504 		if !(x != y) {
   16505 			t.Errorf("!(%d != %d)", x, y)
   16506 		}
   16507 		if !(x < y) {
   16508 			t.Errorf("!(%d < %d)", x, y)
   16509 		}
   16510 		if x > y {
   16511 			t.Errorf("%d > %d", x, y)
   16512 		}
   16513 		if !(x <= y) {
   16514 			t.Errorf("!(%d <= %d)", x, y)
   16515 		}
   16516 		if x >= y {
   16517 			t.Errorf("%d >= %d", x, y)
   16518 		}
   16519 	}
   16520 	{
   16521 		var x int16 = 32766
   16522 		var y int16 = -32768
   16523 		if x == y {
   16524 			t.Errorf("%d == %d", x, y)
   16525 		}
   16526 		if !(x != y) {
   16527 			t.Errorf("!(%d != %d)", x, y)
   16528 		}
   16529 		if x < y {
   16530 			t.Errorf("%d < %d", x, y)
   16531 		}
   16532 		if !(x > y) {
   16533 			t.Errorf("!(%d > %d)", x, y)
   16534 		}
   16535 		if x <= y {
   16536 			t.Errorf("%d <= %d", x, y)
   16537 		}
   16538 		if !(x >= y) {
   16539 			t.Errorf("!(%d >= %d)", x, y)
   16540 		}
   16541 	}
   16542 	{
   16543 		var x int16 = 32766
   16544 		var y int16 = -32767
   16545 		if x == y {
   16546 			t.Errorf("%d == %d", x, y)
   16547 		}
   16548 		if !(x != y) {
   16549 			t.Errorf("!(%d != %d)", x, y)
   16550 		}
   16551 		if x < y {
   16552 			t.Errorf("%d < %d", x, y)
   16553 		}
   16554 		if !(x > y) {
   16555 			t.Errorf("!(%d > %d)", x, y)
   16556 		}
   16557 		if x <= y {
   16558 			t.Errorf("%d <= %d", x, y)
   16559 		}
   16560 		if !(x >= y) {
   16561 			t.Errorf("!(%d >= %d)", x, y)
   16562 		}
   16563 	}
   16564 	{
   16565 		var x int16 = 32766
   16566 		var y int16 = -1
   16567 		if x == y {
   16568 			t.Errorf("%d == %d", x, y)
   16569 		}
   16570 		if !(x != y) {
   16571 			t.Errorf("!(%d != %d)", x, y)
   16572 		}
   16573 		if x < y {
   16574 			t.Errorf("%d < %d", x, y)
   16575 		}
   16576 		if !(x > y) {
   16577 			t.Errorf("!(%d > %d)", x, y)
   16578 		}
   16579 		if x <= y {
   16580 			t.Errorf("%d <= %d", x, y)
   16581 		}
   16582 		if !(x >= y) {
   16583 			t.Errorf("!(%d >= %d)", x, y)
   16584 		}
   16585 	}
   16586 	{
   16587 		var x int16 = 32766
   16588 		var y int16 = 0
   16589 		if x == y {
   16590 			t.Errorf("%d == %d", x, y)
   16591 		}
   16592 		if !(x != y) {
   16593 			t.Errorf("!(%d != %d)", x, y)
   16594 		}
   16595 		if x < y {
   16596 			t.Errorf("%d < %d", x, y)
   16597 		}
   16598 		if !(x > y) {
   16599 			t.Errorf("!(%d > %d)", x, y)
   16600 		}
   16601 		if x <= y {
   16602 			t.Errorf("%d <= %d", x, y)
   16603 		}
   16604 		if !(x >= y) {
   16605 			t.Errorf("!(%d >= %d)", x, y)
   16606 		}
   16607 	}
   16608 	{
   16609 		var x int16 = 32766
   16610 		var y int16 = 1
   16611 		if x == y {
   16612 			t.Errorf("%d == %d", x, y)
   16613 		}
   16614 		if !(x != y) {
   16615 			t.Errorf("!(%d != %d)", x, y)
   16616 		}
   16617 		if x < y {
   16618 			t.Errorf("%d < %d", x, y)
   16619 		}
   16620 		if !(x > y) {
   16621 			t.Errorf("!(%d > %d)", x, y)
   16622 		}
   16623 		if x <= y {
   16624 			t.Errorf("%d <= %d", x, y)
   16625 		}
   16626 		if !(x >= y) {
   16627 			t.Errorf("!(%d >= %d)", x, y)
   16628 		}
   16629 	}
   16630 	{
   16631 		var x int16 = 32766
   16632 		var y int16 = 32766
   16633 		if !(x == y) {
   16634 			t.Errorf("!(%d == %d)", x, y)
   16635 		}
   16636 		if x != y {
   16637 			t.Errorf("%d != %d", x, y)
   16638 		}
   16639 		if x < y {
   16640 			t.Errorf("%d < %d", x, y)
   16641 		}
   16642 		if x > y {
   16643 			t.Errorf("%d > %d", x, y)
   16644 		}
   16645 		if !(x <= y) {
   16646 			t.Errorf("!(%d <= %d)", x, y)
   16647 		}
   16648 		if !(x >= y) {
   16649 			t.Errorf("!(%d >= %d)", x, y)
   16650 		}
   16651 	}
   16652 	{
   16653 		var x int16 = 32766
   16654 		var y int16 = 32767
   16655 		if x == y {
   16656 			t.Errorf("%d == %d", x, y)
   16657 		}
   16658 		if !(x != y) {
   16659 			t.Errorf("!(%d != %d)", x, y)
   16660 		}
   16661 		if !(x < y) {
   16662 			t.Errorf("!(%d < %d)", x, y)
   16663 		}
   16664 		if x > y {
   16665 			t.Errorf("%d > %d", x, y)
   16666 		}
   16667 		if !(x <= y) {
   16668 			t.Errorf("!(%d <= %d)", x, y)
   16669 		}
   16670 		if x >= y {
   16671 			t.Errorf("%d >= %d", x, y)
   16672 		}
   16673 	}
   16674 	{
   16675 		var x int16 = 32767
   16676 		var y int16 = -32768
   16677 		if x == y {
   16678 			t.Errorf("%d == %d", x, y)
   16679 		}
   16680 		if !(x != y) {
   16681 			t.Errorf("!(%d != %d)", x, y)
   16682 		}
   16683 		if x < y {
   16684 			t.Errorf("%d < %d", x, y)
   16685 		}
   16686 		if !(x > y) {
   16687 			t.Errorf("!(%d > %d)", x, y)
   16688 		}
   16689 		if x <= y {
   16690 			t.Errorf("%d <= %d", x, y)
   16691 		}
   16692 		if !(x >= y) {
   16693 			t.Errorf("!(%d >= %d)", x, y)
   16694 		}
   16695 	}
   16696 	{
   16697 		var x int16 = 32767
   16698 		var y int16 = -32767
   16699 		if x == y {
   16700 			t.Errorf("%d == %d", x, y)
   16701 		}
   16702 		if !(x != y) {
   16703 			t.Errorf("!(%d != %d)", x, y)
   16704 		}
   16705 		if x < y {
   16706 			t.Errorf("%d < %d", x, y)
   16707 		}
   16708 		if !(x > y) {
   16709 			t.Errorf("!(%d > %d)", x, y)
   16710 		}
   16711 		if x <= y {
   16712 			t.Errorf("%d <= %d", x, y)
   16713 		}
   16714 		if !(x >= y) {
   16715 			t.Errorf("!(%d >= %d)", x, y)
   16716 		}
   16717 	}
   16718 	{
   16719 		var x int16 = 32767
   16720 		var y int16 = -1
   16721 		if x == y {
   16722 			t.Errorf("%d == %d", x, y)
   16723 		}
   16724 		if !(x != y) {
   16725 			t.Errorf("!(%d != %d)", x, y)
   16726 		}
   16727 		if x < y {
   16728 			t.Errorf("%d < %d", x, y)
   16729 		}
   16730 		if !(x > y) {
   16731 			t.Errorf("!(%d > %d)", x, y)
   16732 		}
   16733 		if x <= y {
   16734 			t.Errorf("%d <= %d", x, y)
   16735 		}
   16736 		if !(x >= y) {
   16737 			t.Errorf("!(%d >= %d)", x, y)
   16738 		}
   16739 	}
   16740 	{
   16741 		var x int16 = 32767
   16742 		var y int16 = 0
   16743 		if x == y {
   16744 			t.Errorf("%d == %d", x, y)
   16745 		}
   16746 		if !(x != y) {
   16747 			t.Errorf("!(%d != %d)", x, y)
   16748 		}
   16749 		if x < y {
   16750 			t.Errorf("%d < %d", x, y)
   16751 		}
   16752 		if !(x > y) {
   16753 			t.Errorf("!(%d > %d)", x, y)
   16754 		}
   16755 		if x <= y {
   16756 			t.Errorf("%d <= %d", x, y)
   16757 		}
   16758 		if !(x >= y) {
   16759 			t.Errorf("!(%d >= %d)", x, y)
   16760 		}
   16761 	}
   16762 	{
   16763 		var x int16 = 32767
   16764 		var y int16 = 1
   16765 		if x == y {
   16766 			t.Errorf("%d == %d", x, y)
   16767 		}
   16768 		if !(x != y) {
   16769 			t.Errorf("!(%d != %d)", x, y)
   16770 		}
   16771 		if x < y {
   16772 			t.Errorf("%d < %d", x, y)
   16773 		}
   16774 		if !(x > y) {
   16775 			t.Errorf("!(%d > %d)", x, y)
   16776 		}
   16777 		if x <= y {
   16778 			t.Errorf("%d <= %d", x, y)
   16779 		}
   16780 		if !(x >= y) {
   16781 			t.Errorf("!(%d >= %d)", x, y)
   16782 		}
   16783 	}
   16784 	{
   16785 		var x int16 = 32767
   16786 		var y int16 = 32766
   16787 		if x == y {
   16788 			t.Errorf("%d == %d", x, y)
   16789 		}
   16790 		if !(x != y) {
   16791 			t.Errorf("!(%d != %d)", x, y)
   16792 		}
   16793 		if x < y {
   16794 			t.Errorf("%d < %d", x, y)
   16795 		}
   16796 		if !(x > y) {
   16797 			t.Errorf("!(%d > %d)", x, y)
   16798 		}
   16799 		if x <= y {
   16800 			t.Errorf("%d <= %d", x, y)
   16801 		}
   16802 		if !(x >= y) {
   16803 			t.Errorf("!(%d >= %d)", x, y)
   16804 		}
   16805 	}
   16806 	{
   16807 		var x int16 = 32767
   16808 		var y int16 = 32767
   16809 		if !(x == y) {
   16810 			t.Errorf("!(%d == %d)", x, y)
   16811 		}
   16812 		if x != y {
   16813 			t.Errorf("%d != %d", x, y)
   16814 		}
   16815 		if x < y {
   16816 			t.Errorf("%d < %d", x, y)
   16817 		}
   16818 		if x > y {
   16819 			t.Errorf("%d > %d", x, y)
   16820 		}
   16821 		if !(x <= y) {
   16822 			t.Errorf("!(%d <= %d)", x, y)
   16823 		}
   16824 		if !(x >= y) {
   16825 			t.Errorf("!(%d >= %d)", x, y)
   16826 		}
   16827 	}
   16828 }
   16829 func TestConstFoldCompareuint8(t *testing.T) {
   16830 	{
   16831 		var x uint8 = 0
   16832 		var y uint8 = 0
   16833 		if !(x == y) {
   16834 			t.Errorf("!(%d == %d)", x, y)
   16835 		}
   16836 		if x != y {
   16837 			t.Errorf("%d != %d", x, y)
   16838 		}
   16839 		if x < y {
   16840 			t.Errorf("%d < %d", x, y)
   16841 		}
   16842 		if x > y {
   16843 			t.Errorf("%d > %d", x, y)
   16844 		}
   16845 		if !(x <= y) {
   16846 			t.Errorf("!(%d <= %d)", x, y)
   16847 		}
   16848 		if !(x >= y) {
   16849 			t.Errorf("!(%d >= %d)", x, y)
   16850 		}
   16851 	}
   16852 	{
   16853 		var x uint8 = 0
   16854 		var y uint8 = 1
   16855 		if x == y {
   16856 			t.Errorf("%d == %d", x, y)
   16857 		}
   16858 		if !(x != y) {
   16859 			t.Errorf("!(%d != %d)", x, y)
   16860 		}
   16861 		if !(x < y) {
   16862 			t.Errorf("!(%d < %d)", x, y)
   16863 		}
   16864 		if x > y {
   16865 			t.Errorf("%d > %d", x, y)
   16866 		}
   16867 		if !(x <= y) {
   16868 			t.Errorf("!(%d <= %d)", x, y)
   16869 		}
   16870 		if x >= y {
   16871 			t.Errorf("%d >= %d", x, y)
   16872 		}
   16873 	}
   16874 	{
   16875 		var x uint8 = 0
   16876 		var y uint8 = 255
   16877 		if x == y {
   16878 			t.Errorf("%d == %d", x, y)
   16879 		}
   16880 		if !(x != y) {
   16881 			t.Errorf("!(%d != %d)", x, y)
   16882 		}
   16883 		if !(x < y) {
   16884 			t.Errorf("!(%d < %d)", x, y)
   16885 		}
   16886 		if x > y {
   16887 			t.Errorf("%d > %d", x, y)
   16888 		}
   16889 		if !(x <= y) {
   16890 			t.Errorf("!(%d <= %d)", x, y)
   16891 		}
   16892 		if x >= y {
   16893 			t.Errorf("%d >= %d", x, y)
   16894 		}
   16895 	}
   16896 	{
   16897 		var x uint8 = 1
   16898 		var y uint8 = 0
   16899 		if x == y {
   16900 			t.Errorf("%d == %d", x, y)
   16901 		}
   16902 		if !(x != y) {
   16903 			t.Errorf("!(%d != %d)", x, y)
   16904 		}
   16905 		if x < y {
   16906 			t.Errorf("%d < %d", x, y)
   16907 		}
   16908 		if !(x > y) {
   16909 			t.Errorf("!(%d > %d)", x, y)
   16910 		}
   16911 		if x <= y {
   16912 			t.Errorf("%d <= %d", x, y)
   16913 		}
   16914 		if !(x >= y) {
   16915 			t.Errorf("!(%d >= %d)", x, y)
   16916 		}
   16917 	}
   16918 	{
   16919 		var x uint8 = 1
   16920 		var y uint8 = 1
   16921 		if !(x == y) {
   16922 			t.Errorf("!(%d == %d)", x, y)
   16923 		}
   16924 		if x != y {
   16925 			t.Errorf("%d != %d", x, y)
   16926 		}
   16927 		if x < y {
   16928 			t.Errorf("%d < %d", x, y)
   16929 		}
   16930 		if x > y {
   16931 			t.Errorf("%d > %d", x, y)
   16932 		}
   16933 		if !(x <= y) {
   16934 			t.Errorf("!(%d <= %d)", x, y)
   16935 		}
   16936 		if !(x >= y) {
   16937 			t.Errorf("!(%d >= %d)", x, y)
   16938 		}
   16939 	}
   16940 	{
   16941 		var x uint8 = 1
   16942 		var y uint8 = 255
   16943 		if x == y {
   16944 			t.Errorf("%d == %d", x, y)
   16945 		}
   16946 		if !(x != y) {
   16947 			t.Errorf("!(%d != %d)", x, y)
   16948 		}
   16949 		if !(x < y) {
   16950 			t.Errorf("!(%d < %d)", x, y)
   16951 		}
   16952 		if x > y {
   16953 			t.Errorf("%d > %d", x, y)
   16954 		}
   16955 		if !(x <= y) {
   16956 			t.Errorf("!(%d <= %d)", x, y)
   16957 		}
   16958 		if x >= y {
   16959 			t.Errorf("%d >= %d", x, y)
   16960 		}
   16961 	}
   16962 	{
   16963 		var x uint8 = 255
   16964 		var y uint8 = 0
   16965 		if x == y {
   16966 			t.Errorf("%d == %d", x, y)
   16967 		}
   16968 		if !(x != y) {
   16969 			t.Errorf("!(%d != %d)", x, y)
   16970 		}
   16971 		if x < y {
   16972 			t.Errorf("%d < %d", x, y)
   16973 		}
   16974 		if !(x > y) {
   16975 			t.Errorf("!(%d > %d)", x, y)
   16976 		}
   16977 		if x <= y {
   16978 			t.Errorf("%d <= %d", x, y)
   16979 		}
   16980 		if !(x >= y) {
   16981 			t.Errorf("!(%d >= %d)", x, y)
   16982 		}
   16983 	}
   16984 	{
   16985 		var x uint8 = 255
   16986 		var y uint8 = 1
   16987 		if x == y {
   16988 			t.Errorf("%d == %d", x, y)
   16989 		}
   16990 		if !(x != y) {
   16991 			t.Errorf("!(%d != %d)", x, y)
   16992 		}
   16993 		if x < y {
   16994 			t.Errorf("%d < %d", x, y)
   16995 		}
   16996 		if !(x > y) {
   16997 			t.Errorf("!(%d > %d)", x, y)
   16998 		}
   16999 		if x <= y {
   17000 			t.Errorf("%d <= %d", x, y)
   17001 		}
   17002 		if !(x >= y) {
   17003 			t.Errorf("!(%d >= %d)", x, y)
   17004 		}
   17005 	}
   17006 	{
   17007 		var x uint8 = 255
   17008 		var y uint8 = 255
   17009 		if !(x == y) {
   17010 			t.Errorf("!(%d == %d)", x, y)
   17011 		}
   17012 		if x != y {
   17013 			t.Errorf("%d != %d", x, y)
   17014 		}
   17015 		if x < y {
   17016 			t.Errorf("%d < %d", x, y)
   17017 		}
   17018 		if x > y {
   17019 			t.Errorf("%d > %d", x, y)
   17020 		}
   17021 		if !(x <= y) {
   17022 			t.Errorf("!(%d <= %d)", x, y)
   17023 		}
   17024 		if !(x >= y) {
   17025 			t.Errorf("!(%d >= %d)", x, y)
   17026 		}
   17027 	}
   17028 }
   17029 func TestConstFoldCompareint8(t *testing.T) {
   17030 	{
   17031 		var x int8 = -128
   17032 		var y int8 = -128
   17033 		if !(x == y) {
   17034 			t.Errorf("!(%d == %d)", x, y)
   17035 		}
   17036 		if x != y {
   17037 			t.Errorf("%d != %d", x, y)
   17038 		}
   17039 		if x < y {
   17040 			t.Errorf("%d < %d", x, y)
   17041 		}
   17042 		if x > y {
   17043 			t.Errorf("%d > %d", x, y)
   17044 		}
   17045 		if !(x <= y) {
   17046 			t.Errorf("!(%d <= %d)", x, y)
   17047 		}
   17048 		if !(x >= y) {
   17049 			t.Errorf("!(%d >= %d)", x, y)
   17050 		}
   17051 	}
   17052 	{
   17053 		var x int8 = -128
   17054 		var y int8 = -127
   17055 		if x == y {
   17056 			t.Errorf("%d == %d", x, y)
   17057 		}
   17058 		if !(x != y) {
   17059 			t.Errorf("!(%d != %d)", x, y)
   17060 		}
   17061 		if !(x < y) {
   17062 			t.Errorf("!(%d < %d)", x, y)
   17063 		}
   17064 		if x > y {
   17065 			t.Errorf("%d > %d", x, y)
   17066 		}
   17067 		if !(x <= y) {
   17068 			t.Errorf("!(%d <= %d)", x, y)
   17069 		}
   17070 		if x >= y {
   17071 			t.Errorf("%d >= %d", x, y)
   17072 		}
   17073 	}
   17074 	{
   17075 		var x int8 = -128
   17076 		var y int8 = -1
   17077 		if x == y {
   17078 			t.Errorf("%d == %d", x, y)
   17079 		}
   17080 		if !(x != y) {
   17081 			t.Errorf("!(%d != %d)", x, y)
   17082 		}
   17083 		if !(x < y) {
   17084 			t.Errorf("!(%d < %d)", x, y)
   17085 		}
   17086 		if x > y {
   17087 			t.Errorf("%d > %d", x, y)
   17088 		}
   17089 		if !(x <= y) {
   17090 			t.Errorf("!(%d <= %d)", x, y)
   17091 		}
   17092 		if x >= y {
   17093 			t.Errorf("%d >= %d", x, y)
   17094 		}
   17095 	}
   17096 	{
   17097 		var x int8 = -128
   17098 		var y int8 = 0
   17099 		if x == y {
   17100 			t.Errorf("%d == %d", x, y)
   17101 		}
   17102 		if !(x != y) {
   17103 			t.Errorf("!(%d != %d)", x, y)
   17104 		}
   17105 		if !(x < y) {
   17106 			t.Errorf("!(%d < %d)", x, y)
   17107 		}
   17108 		if x > y {
   17109 			t.Errorf("%d > %d", x, y)
   17110 		}
   17111 		if !(x <= y) {
   17112 			t.Errorf("!(%d <= %d)", x, y)
   17113 		}
   17114 		if x >= y {
   17115 			t.Errorf("%d >= %d", x, y)
   17116 		}
   17117 	}
   17118 	{
   17119 		var x int8 = -128
   17120 		var y int8 = 1
   17121 		if x == y {
   17122 			t.Errorf("%d == %d", x, y)
   17123 		}
   17124 		if !(x != y) {
   17125 			t.Errorf("!(%d != %d)", x, y)
   17126 		}
   17127 		if !(x < y) {
   17128 			t.Errorf("!(%d < %d)", x, y)
   17129 		}
   17130 		if x > y {
   17131 			t.Errorf("%d > %d", x, y)
   17132 		}
   17133 		if !(x <= y) {
   17134 			t.Errorf("!(%d <= %d)", x, y)
   17135 		}
   17136 		if x >= y {
   17137 			t.Errorf("%d >= %d", x, y)
   17138 		}
   17139 	}
   17140 	{
   17141 		var x int8 = -128
   17142 		var y int8 = 126
   17143 		if x == y {
   17144 			t.Errorf("%d == %d", x, y)
   17145 		}
   17146 		if !(x != y) {
   17147 			t.Errorf("!(%d != %d)", x, y)
   17148 		}
   17149 		if !(x < y) {
   17150 			t.Errorf("!(%d < %d)", x, y)
   17151 		}
   17152 		if x > y {
   17153 			t.Errorf("%d > %d", x, y)
   17154 		}
   17155 		if !(x <= y) {
   17156 			t.Errorf("!(%d <= %d)", x, y)
   17157 		}
   17158 		if x >= y {
   17159 			t.Errorf("%d >= %d", x, y)
   17160 		}
   17161 	}
   17162 	{
   17163 		var x int8 = -128
   17164 		var y int8 = 127
   17165 		if x == y {
   17166 			t.Errorf("%d == %d", x, y)
   17167 		}
   17168 		if !(x != y) {
   17169 			t.Errorf("!(%d != %d)", x, y)
   17170 		}
   17171 		if !(x < y) {
   17172 			t.Errorf("!(%d < %d)", x, y)
   17173 		}
   17174 		if x > y {
   17175 			t.Errorf("%d > %d", x, y)
   17176 		}
   17177 		if !(x <= y) {
   17178 			t.Errorf("!(%d <= %d)", x, y)
   17179 		}
   17180 		if x >= y {
   17181 			t.Errorf("%d >= %d", x, y)
   17182 		}
   17183 	}
   17184 	{
   17185 		var x int8 = -127
   17186 		var y int8 = -128
   17187 		if x == y {
   17188 			t.Errorf("%d == %d", x, y)
   17189 		}
   17190 		if !(x != y) {
   17191 			t.Errorf("!(%d != %d)", x, y)
   17192 		}
   17193 		if x < y {
   17194 			t.Errorf("%d < %d", x, y)
   17195 		}
   17196 		if !(x > y) {
   17197 			t.Errorf("!(%d > %d)", x, y)
   17198 		}
   17199 		if x <= y {
   17200 			t.Errorf("%d <= %d", x, y)
   17201 		}
   17202 		if !(x >= y) {
   17203 			t.Errorf("!(%d >= %d)", x, y)
   17204 		}
   17205 	}
   17206 	{
   17207 		var x int8 = -127
   17208 		var y int8 = -127
   17209 		if !(x == y) {
   17210 			t.Errorf("!(%d == %d)", x, y)
   17211 		}
   17212 		if x != y {
   17213 			t.Errorf("%d != %d", x, y)
   17214 		}
   17215 		if x < y {
   17216 			t.Errorf("%d < %d", x, y)
   17217 		}
   17218 		if x > y {
   17219 			t.Errorf("%d > %d", x, y)
   17220 		}
   17221 		if !(x <= y) {
   17222 			t.Errorf("!(%d <= %d)", x, y)
   17223 		}
   17224 		if !(x >= y) {
   17225 			t.Errorf("!(%d >= %d)", x, y)
   17226 		}
   17227 	}
   17228 	{
   17229 		var x int8 = -127
   17230 		var y int8 = -1
   17231 		if x == y {
   17232 			t.Errorf("%d == %d", x, y)
   17233 		}
   17234 		if !(x != y) {
   17235 			t.Errorf("!(%d != %d)", x, y)
   17236 		}
   17237 		if !(x < y) {
   17238 			t.Errorf("!(%d < %d)", x, y)
   17239 		}
   17240 		if x > y {
   17241 			t.Errorf("%d > %d", x, y)
   17242 		}
   17243 		if !(x <= y) {
   17244 			t.Errorf("!(%d <= %d)", x, y)
   17245 		}
   17246 		if x >= y {
   17247 			t.Errorf("%d >= %d", x, y)
   17248 		}
   17249 	}
   17250 	{
   17251 		var x int8 = -127
   17252 		var y int8 = 0
   17253 		if x == y {
   17254 			t.Errorf("%d == %d", x, y)
   17255 		}
   17256 		if !(x != y) {
   17257 			t.Errorf("!(%d != %d)", x, y)
   17258 		}
   17259 		if !(x < y) {
   17260 			t.Errorf("!(%d < %d)", x, y)
   17261 		}
   17262 		if x > y {
   17263 			t.Errorf("%d > %d", x, y)
   17264 		}
   17265 		if !(x <= y) {
   17266 			t.Errorf("!(%d <= %d)", x, y)
   17267 		}
   17268 		if x >= y {
   17269 			t.Errorf("%d >= %d", x, y)
   17270 		}
   17271 	}
   17272 	{
   17273 		var x int8 = -127
   17274 		var y int8 = 1
   17275 		if x == y {
   17276 			t.Errorf("%d == %d", x, y)
   17277 		}
   17278 		if !(x != y) {
   17279 			t.Errorf("!(%d != %d)", x, y)
   17280 		}
   17281 		if !(x < y) {
   17282 			t.Errorf("!(%d < %d)", x, y)
   17283 		}
   17284 		if x > y {
   17285 			t.Errorf("%d > %d", x, y)
   17286 		}
   17287 		if !(x <= y) {
   17288 			t.Errorf("!(%d <= %d)", x, y)
   17289 		}
   17290 		if x >= y {
   17291 			t.Errorf("%d >= %d", x, y)
   17292 		}
   17293 	}
   17294 	{
   17295 		var x int8 = -127
   17296 		var y int8 = 126
   17297 		if x == y {
   17298 			t.Errorf("%d == %d", x, y)
   17299 		}
   17300 		if !(x != y) {
   17301 			t.Errorf("!(%d != %d)", x, y)
   17302 		}
   17303 		if !(x < y) {
   17304 			t.Errorf("!(%d < %d)", x, y)
   17305 		}
   17306 		if x > y {
   17307 			t.Errorf("%d > %d", x, y)
   17308 		}
   17309 		if !(x <= y) {
   17310 			t.Errorf("!(%d <= %d)", x, y)
   17311 		}
   17312 		if x >= y {
   17313 			t.Errorf("%d >= %d", x, y)
   17314 		}
   17315 	}
   17316 	{
   17317 		var x int8 = -127
   17318 		var y int8 = 127
   17319 		if x == y {
   17320 			t.Errorf("%d == %d", x, y)
   17321 		}
   17322 		if !(x != y) {
   17323 			t.Errorf("!(%d != %d)", x, y)
   17324 		}
   17325 		if !(x < y) {
   17326 			t.Errorf("!(%d < %d)", x, y)
   17327 		}
   17328 		if x > y {
   17329 			t.Errorf("%d > %d", x, y)
   17330 		}
   17331 		if !(x <= y) {
   17332 			t.Errorf("!(%d <= %d)", x, y)
   17333 		}
   17334 		if x >= y {
   17335 			t.Errorf("%d >= %d", x, y)
   17336 		}
   17337 	}
   17338 	{
   17339 		var x int8 = -1
   17340 		var y int8 = -128
   17341 		if x == y {
   17342 			t.Errorf("%d == %d", x, y)
   17343 		}
   17344 		if !(x != y) {
   17345 			t.Errorf("!(%d != %d)", x, y)
   17346 		}
   17347 		if x < y {
   17348 			t.Errorf("%d < %d", x, y)
   17349 		}
   17350 		if !(x > y) {
   17351 			t.Errorf("!(%d > %d)", x, y)
   17352 		}
   17353 		if x <= y {
   17354 			t.Errorf("%d <= %d", x, y)
   17355 		}
   17356 		if !(x >= y) {
   17357 			t.Errorf("!(%d >= %d)", x, y)
   17358 		}
   17359 	}
   17360 	{
   17361 		var x int8 = -1
   17362 		var y int8 = -127
   17363 		if x == y {
   17364 			t.Errorf("%d == %d", x, y)
   17365 		}
   17366 		if !(x != y) {
   17367 			t.Errorf("!(%d != %d)", x, y)
   17368 		}
   17369 		if x < y {
   17370 			t.Errorf("%d < %d", x, y)
   17371 		}
   17372 		if !(x > y) {
   17373 			t.Errorf("!(%d > %d)", x, y)
   17374 		}
   17375 		if x <= y {
   17376 			t.Errorf("%d <= %d", x, y)
   17377 		}
   17378 		if !(x >= y) {
   17379 			t.Errorf("!(%d >= %d)", x, y)
   17380 		}
   17381 	}
   17382 	{
   17383 		var x int8 = -1
   17384 		var y int8 = -1
   17385 		if !(x == y) {
   17386 			t.Errorf("!(%d == %d)", x, y)
   17387 		}
   17388 		if x != y {
   17389 			t.Errorf("%d != %d", x, y)
   17390 		}
   17391 		if x < y {
   17392 			t.Errorf("%d < %d", x, y)
   17393 		}
   17394 		if x > y {
   17395 			t.Errorf("%d > %d", x, y)
   17396 		}
   17397 		if !(x <= y) {
   17398 			t.Errorf("!(%d <= %d)", x, y)
   17399 		}
   17400 		if !(x >= y) {
   17401 			t.Errorf("!(%d >= %d)", x, y)
   17402 		}
   17403 	}
   17404 	{
   17405 		var x int8 = -1
   17406 		var y int8 = 0
   17407 		if x == y {
   17408 			t.Errorf("%d == %d", x, y)
   17409 		}
   17410 		if !(x != y) {
   17411 			t.Errorf("!(%d != %d)", x, y)
   17412 		}
   17413 		if !(x < y) {
   17414 			t.Errorf("!(%d < %d)", x, y)
   17415 		}
   17416 		if x > y {
   17417 			t.Errorf("%d > %d", x, y)
   17418 		}
   17419 		if !(x <= y) {
   17420 			t.Errorf("!(%d <= %d)", x, y)
   17421 		}
   17422 		if x >= y {
   17423 			t.Errorf("%d >= %d", x, y)
   17424 		}
   17425 	}
   17426 	{
   17427 		var x int8 = -1
   17428 		var y int8 = 1
   17429 		if x == y {
   17430 			t.Errorf("%d == %d", x, y)
   17431 		}
   17432 		if !(x != y) {
   17433 			t.Errorf("!(%d != %d)", x, y)
   17434 		}
   17435 		if !(x < y) {
   17436 			t.Errorf("!(%d < %d)", x, y)
   17437 		}
   17438 		if x > y {
   17439 			t.Errorf("%d > %d", x, y)
   17440 		}
   17441 		if !(x <= y) {
   17442 			t.Errorf("!(%d <= %d)", x, y)
   17443 		}
   17444 		if x >= y {
   17445 			t.Errorf("%d >= %d", x, y)
   17446 		}
   17447 	}
   17448 	{
   17449 		var x int8 = -1
   17450 		var y int8 = 126
   17451 		if x == y {
   17452 			t.Errorf("%d == %d", x, y)
   17453 		}
   17454 		if !(x != y) {
   17455 			t.Errorf("!(%d != %d)", x, y)
   17456 		}
   17457 		if !(x < y) {
   17458 			t.Errorf("!(%d < %d)", x, y)
   17459 		}
   17460 		if x > y {
   17461 			t.Errorf("%d > %d", x, y)
   17462 		}
   17463 		if !(x <= y) {
   17464 			t.Errorf("!(%d <= %d)", x, y)
   17465 		}
   17466 		if x >= y {
   17467 			t.Errorf("%d >= %d", x, y)
   17468 		}
   17469 	}
   17470 	{
   17471 		var x int8 = -1
   17472 		var y int8 = 127
   17473 		if x == y {
   17474 			t.Errorf("%d == %d", x, y)
   17475 		}
   17476 		if !(x != y) {
   17477 			t.Errorf("!(%d != %d)", x, y)
   17478 		}
   17479 		if !(x < y) {
   17480 			t.Errorf("!(%d < %d)", x, y)
   17481 		}
   17482 		if x > y {
   17483 			t.Errorf("%d > %d", x, y)
   17484 		}
   17485 		if !(x <= y) {
   17486 			t.Errorf("!(%d <= %d)", x, y)
   17487 		}
   17488 		if x >= y {
   17489 			t.Errorf("%d >= %d", x, y)
   17490 		}
   17491 	}
   17492 	{
   17493 		var x int8 = 0
   17494 		var y int8 = -128
   17495 		if x == y {
   17496 			t.Errorf("%d == %d", x, y)
   17497 		}
   17498 		if !(x != y) {
   17499 			t.Errorf("!(%d != %d)", x, y)
   17500 		}
   17501 		if x < y {
   17502 			t.Errorf("%d < %d", x, y)
   17503 		}
   17504 		if !(x > y) {
   17505 			t.Errorf("!(%d > %d)", x, y)
   17506 		}
   17507 		if x <= y {
   17508 			t.Errorf("%d <= %d", x, y)
   17509 		}
   17510 		if !(x >= y) {
   17511 			t.Errorf("!(%d >= %d)", x, y)
   17512 		}
   17513 	}
   17514 	{
   17515 		var x int8 = 0
   17516 		var y int8 = -127
   17517 		if x == y {
   17518 			t.Errorf("%d == %d", x, y)
   17519 		}
   17520 		if !(x != y) {
   17521 			t.Errorf("!(%d != %d)", x, y)
   17522 		}
   17523 		if x < y {
   17524 			t.Errorf("%d < %d", x, y)
   17525 		}
   17526 		if !(x > y) {
   17527 			t.Errorf("!(%d > %d)", x, y)
   17528 		}
   17529 		if x <= y {
   17530 			t.Errorf("%d <= %d", x, y)
   17531 		}
   17532 		if !(x >= y) {
   17533 			t.Errorf("!(%d >= %d)", x, y)
   17534 		}
   17535 	}
   17536 	{
   17537 		var x int8 = 0
   17538 		var y int8 = -1
   17539 		if x == y {
   17540 			t.Errorf("%d == %d", x, y)
   17541 		}
   17542 		if !(x != y) {
   17543 			t.Errorf("!(%d != %d)", x, y)
   17544 		}
   17545 		if x < y {
   17546 			t.Errorf("%d < %d", x, y)
   17547 		}
   17548 		if !(x > y) {
   17549 			t.Errorf("!(%d > %d)", x, y)
   17550 		}
   17551 		if x <= y {
   17552 			t.Errorf("%d <= %d", x, y)
   17553 		}
   17554 		if !(x >= y) {
   17555 			t.Errorf("!(%d >= %d)", x, y)
   17556 		}
   17557 	}
   17558 	{
   17559 		var x int8 = 0
   17560 		var y int8 = 0
   17561 		if !(x == y) {
   17562 			t.Errorf("!(%d == %d)", x, y)
   17563 		}
   17564 		if x != y {
   17565 			t.Errorf("%d != %d", x, y)
   17566 		}
   17567 		if x < y {
   17568 			t.Errorf("%d < %d", x, y)
   17569 		}
   17570 		if x > y {
   17571 			t.Errorf("%d > %d", x, y)
   17572 		}
   17573 		if !(x <= y) {
   17574 			t.Errorf("!(%d <= %d)", x, y)
   17575 		}
   17576 		if !(x >= y) {
   17577 			t.Errorf("!(%d >= %d)", x, y)
   17578 		}
   17579 	}
   17580 	{
   17581 		var x int8 = 0
   17582 		var y int8 = 1
   17583 		if x == y {
   17584 			t.Errorf("%d == %d", x, y)
   17585 		}
   17586 		if !(x != y) {
   17587 			t.Errorf("!(%d != %d)", x, y)
   17588 		}
   17589 		if !(x < y) {
   17590 			t.Errorf("!(%d < %d)", x, y)
   17591 		}
   17592 		if x > y {
   17593 			t.Errorf("%d > %d", x, y)
   17594 		}
   17595 		if !(x <= y) {
   17596 			t.Errorf("!(%d <= %d)", x, y)
   17597 		}
   17598 		if x >= y {
   17599 			t.Errorf("%d >= %d", x, y)
   17600 		}
   17601 	}
   17602 	{
   17603 		var x int8 = 0
   17604 		var y int8 = 126
   17605 		if x == y {
   17606 			t.Errorf("%d == %d", x, y)
   17607 		}
   17608 		if !(x != y) {
   17609 			t.Errorf("!(%d != %d)", x, y)
   17610 		}
   17611 		if !(x < y) {
   17612 			t.Errorf("!(%d < %d)", x, y)
   17613 		}
   17614 		if x > y {
   17615 			t.Errorf("%d > %d", x, y)
   17616 		}
   17617 		if !(x <= y) {
   17618 			t.Errorf("!(%d <= %d)", x, y)
   17619 		}
   17620 		if x >= y {
   17621 			t.Errorf("%d >= %d", x, y)
   17622 		}
   17623 	}
   17624 	{
   17625 		var x int8 = 0
   17626 		var y int8 = 127
   17627 		if x == y {
   17628 			t.Errorf("%d == %d", x, y)
   17629 		}
   17630 		if !(x != y) {
   17631 			t.Errorf("!(%d != %d)", x, y)
   17632 		}
   17633 		if !(x < y) {
   17634 			t.Errorf("!(%d < %d)", x, y)
   17635 		}
   17636 		if x > y {
   17637 			t.Errorf("%d > %d", x, y)
   17638 		}
   17639 		if !(x <= y) {
   17640 			t.Errorf("!(%d <= %d)", x, y)
   17641 		}
   17642 		if x >= y {
   17643 			t.Errorf("%d >= %d", x, y)
   17644 		}
   17645 	}
   17646 	{
   17647 		var x int8 = 1
   17648 		var y int8 = -128
   17649 		if x == y {
   17650 			t.Errorf("%d == %d", x, y)
   17651 		}
   17652 		if !(x != y) {
   17653 			t.Errorf("!(%d != %d)", x, y)
   17654 		}
   17655 		if x < y {
   17656 			t.Errorf("%d < %d", x, y)
   17657 		}
   17658 		if !(x > y) {
   17659 			t.Errorf("!(%d > %d)", x, y)
   17660 		}
   17661 		if x <= y {
   17662 			t.Errorf("%d <= %d", x, y)
   17663 		}
   17664 		if !(x >= y) {
   17665 			t.Errorf("!(%d >= %d)", x, y)
   17666 		}
   17667 	}
   17668 	{
   17669 		var x int8 = 1
   17670 		var y int8 = -127
   17671 		if x == y {
   17672 			t.Errorf("%d == %d", x, y)
   17673 		}
   17674 		if !(x != y) {
   17675 			t.Errorf("!(%d != %d)", x, y)
   17676 		}
   17677 		if x < y {
   17678 			t.Errorf("%d < %d", x, y)
   17679 		}
   17680 		if !(x > y) {
   17681 			t.Errorf("!(%d > %d)", x, y)
   17682 		}
   17683 		if x <= y {
   17684 			t.Errorf("%d <= %d", x, y)
   17685 		}
   17686 		if !(x >= y) {
   17687 			t.Errorf("!(%d >= %d)", x, y)
   17688 		}
   17689 	}
   17690 	{
   17691 		var x int8 = 1
   17692 		var y int8 = -1
   17693 		if x == y {
   17694 			t.Errorf("%d == %d", x, y)
   17695 		}
   17696 		if !(x != y) {
   17697 			t.Errorf("!(%d != %d)", x, y)
   17698 		}
   17699 		if x < y {
   17700 			t.Errorf("%d < %d", x, y)
   17701 		}
   17702 		if !(x > y) {
   17703 			t.Errorf("!(%d > %d)", x, y)
   17704 		}
   17705 		if x <= y {
   17706 			t.Errorf("%d <= %d", x, y)
   17707 		}
   17708 		if !(x >= y) {
   17709 			t.Errorf("!(%d >= %d)", x, y)
   17710 		}
   17711 	}
   17712 	{
   17713 		var x int8 = 1
   17714 		var y int8 = 0
   17715 		if x == y {
   17716 			t.Errorf("%d == %d", x, y)
   17717 		}
   17718 		if !(x != y) {
   17719 			t.Errorf("!(%d != %d)", x, y)
   17720 		}
   17721 		if x < y {
   17722 			t.Errorf("%d < %d", x, y)
   17723 		}
   17724 		if !(x > y) {
   17725 			t.Errorf("!(%d > %d)", x, y)
   17726 		}
   17727 		if x <= y {
   17728 			t.Errorf("%d <= %d", x, y)
   17729 		}
   17730 		if !(x >= y) {
   17731 			t.Errorf("!(%d >= %d)", x, y)
   17732 		}
   17733 	}
   17734 	{
   17735 		var x int8 = 1
   17736 		var y int8 = 1
   17737 		if !(x == y) {
   17738 			t.Errorf("!(%d == %d)", x, y)
   17739 		}
   17740 		if x != y {
   17741 			t.Errorf("%d != %d", x, y)
   17742 		}
   17743 		if x < y {
   17744 			t.Errorf("%d < %d", x, y)
   17745 		}
   17746 		if x > y {
   17747 			t.Errorf("%d > %d", x, y)
   17748 		}
   17749 		if !(x <= y) {
   17750 			t.Errorf("!(%d <= %d)", x, y)
   17751 		}
   17752 		if !(x >= y) {
   17753 			t.Errorf("!(%d >= %d)", x, y)
   17754 		}
   17755 	}
   17756 	{
   17757 		var x int8 = 1
   17758 		var y int8 = 126
   17759 		if x == y {
   17760 			t.Errorf("%d == %d", x, y)
   17761 		}
   17762 		if !(x != y) {
   17763 			t.Errorf("!(%d != %d)", x, y)
   17764 		}
   17765 		if !(x < y) {
   17766 			t.Errorf("!(%d < %d)", x, y)
   17767 		}
   17768 		if x > y {
   17769 			t.Errorf("%d > %d", x, y)
   17770 		}
   17771 		if !(x <= y) {
   17772 			t.Errorf("!(%d <= %d)", x, y)
   17773 		}
   17774 		if x >= y {
   17775 			t.Errorf("%d >= %d", x, y)
   17776 		}
   17777 	}
   17778 	{
   17779 		var x int8 = 1
   17780 		var y int8 = 127
   17781 		if x == y {
   17782 			t.Errorf("%d == %d", x, y)
   17783 		}
   17784 		if !(x != y) {
   17785 			t.Errorf("!(%d != %d)", x, y)
   17786 		}
   17787 		if !(x < y) {
   17788 			t.Errorf("!(%d < %d)", x, y)
   17789 		}
   17790 		if x > y {
   17791 			t.Errorf("%d > %d", x, y)
   17792 		}
   17793 		if !(x <= y) {
   17794 			t.Errorf("!(%d <= %d)", x, y)
   17795 		}
   17796 		if x >= y {
   17797 			t.Errorf("%d >= %d", x, y)
   17798 		}
   17799 	}
   17800 	{
   17801 		var x int8 = 126
   17802 		var y int8 = -128
   17803 		if x == y {
   17804 			t.Errorf("%d == %d", x, y)
   17805 		}
   17806 		if !(x != y) {
   17807 			t.Errorf("!(%d != %d)", x, y)
   17808 		}
   17809 		if x < y {
   17810 			t.Errorf("%d < %d", x, y)
   17811 		}
   17812 		if !(x > y) {
   17813 			t.Errorf("!(%d > %d)", x, y)
   17814 		}
   17815 		if x <= y {
   17816 			t.Errorf("%d <= %d", x, y)
   17817 		}
   17818 		if !(x >= y) {
   17819 			t.Errorf("!(%d >= %d)", x, y)
   17820 		}
   17821 	}
   17822 	{
   17823 		var x int8 = 126
   17824 		var y int8 = -127
   17825 		if x == y {
   17826 			t.Errorf("%d == %d", x, y)
   17827 		}
   17828 		if !(x != y) {
   17829 			t.Errorf("!(%d != %d)", x, y)
   17830 		}
   17831 		if x < y {
   17832 			t.Errorf("%d < %d", x, y)
   17833 		}
   17834 		if !(x > y) {
   17835 			t.Errorf("!(%d > %d)", x, y)
   17836 		}
   17837 		if x <= y {
   17838 			t.Errorf("%d <= %d", x, y)
   17839 		}
   17840 		if !(x >= y) {
   17841 			t.Errorf("!(%d >= %d)", x, y)
   17842 		}
   17843 	}
   17844 	{
   17845 		var x int8 = 126
   17846 		var y int8 = -1
   17847 		if x == y {
   17848 			t.Errorf("%d == %d", x, y)
   17849 		}
   17850 		if !(x != y) {
   17851 			t.Errorf("!(%d != %d)", x, y)
   17852 		}
   17853 		if x < y {
   17854 			t.Errorf("%d < %d", x, y)
   17855 		}
   17856 		if !(x > y) {
   17857 			t.Errorf("!(%d > %d)", x, y)
   17858 		}
   17859 		if x <= y {
   17860 			t.Errorf("%d <= %d", x, y)
   17861 		}
   17862 		if !(x >= y) {
   17863 			t.Errorf("!(%d >= %d)", x, y)
   17864 		}
   17865 	}
   17866 	{
   17867 		var x int8 = 126
   17868 		var y int8 = 0
   17869 		if x == y {
   17870 			t.Errorf("%d == %d", x, y)
   17871 		}
   17872 		if !(x != y) {
   17873 			t.Errorf("!(%d != %d)", x, y)
   17874 		}
   17875 		if x < y {
   17876 			t.Errorf("%d < %d", x, y)
   17877 		}
   17878 		if !(x > y) {
   17879 			t.Errorf("!(%d > %d)", x, y)
   17880 		}
   17881 		if x <= y {
   17882 			t.Errorf("%d <= %d", x, y)
   17883 		}
   17884 		if !(x >= y) {
   17885 			t.Errorf("!(%d >= %d)", x, y)
   17886 		}
   17887 	}
   17888 	{
   17889 		var x int8 = 126
   17890 		var y int8 = 1
   17891 		if x == y {
   17892 			t.Errorf("%d == %d", x, y)
   17893 		}
   17894 		if !(x != y) {
   17895 			t.Errorf("!(%d != %d)", x, y)
   17896 		}
   17897 		if x < y {
   17898 			t.Errorf("%d < %d", x, y)
   17899 		}
   17900 		if !(x > y) {
   17901 			t.Errorf("!(%d > %d)", x, y)
   17902 		}
   17903 		if x <= y {
   17904 			t.Errorf("%d <= %d", x, y)
   17905 		}
   17906 		if !(x >= y) {
   17907 			t.Errorf("!(%d >= %d)", x, y)
   17908 		}
   17909 	}
   17910 	{
   17911 		var x int8 = 126
   17912 		var y int8 = 126
   17913 		if !(x == y) {
   17914 			t.Errorf("!(%d == %d)", x, y)
   17915 		}
   17916 		if x != y {
   17917 			t.Errorf("%d != %d", x, y)
   17918 		}
   17919 		if x < y {
   17920 			t.Errorf("%d < %d", x, y)
   17921 		}
   17922 		if x > y {
   17923 			t.Errorf("%d > %d", x, y)
   17924 		}
   17925 		if !(x <= y) {
   17926 			t.Errorf("!(%d <= %d)", x, y)
   17927 		}
   17928 		if !(x >= y) {
   17929 			t.Errorf("!(%d >= %d)", x, y)
   17930 		}
   17931 	}
   17932 	{
   17933 		var x int8 = 126
   17934 		var y int8 = 127
   17935 		if x == y {
   17936 			t.Errorf("%d == %d", x, y)
   17937 		}
   17938 		if !(x != y) {
   17939 			t.Errorf("!(%d != %d)", x, y)
   17940 		}
   17941 		if !(x < y) {
   17942 			t.Errorf("!(%d < %d)", x, y)
   17943 		}
   17944 		if x > y {
   17945 			t.Errorf("%d > %d", x, y)
   17946 		}
   17947 		if !(x <= y) {
   17948 			t.Errorf("!(%d <= %d)", x, y)
   17949 		}
   17950 		if x >= y {
   17951 			t.Errorf("%d >= %d", x, y)
   17952 		}
   17953 	}
   17954 	{
   17955 		var x int8 = 127
   17956 		var y int8 = -128
   17957 		if x == y {
   17958 			t.Errorf("%d == %d", x, y)
   17959 		}
   17960 		if !(x != y) {
   17961 			t.Errorf("!(%d != %d)", x, y)
   17962 		}
   17963 		if x < y {
   17964 			t.Errorf("%d < %d", x, y)
   17965 		}
   17966 		if !(x > y) {
   17967 			t.Errorf("!(%d > %d)", x, y)
   17968 		}
   17969 		if x <= y {
   17970 			t.Errorf("%d <= %d", x, y)
   17971 		}
   17972 		if !(x >= y) {
   17973 			t.Errorf("!(%d >= %d)", x, y)
   17974 		}
   17975 	}
   17976 	{
   17977 		var x int8 = 127
   17978 		var y int8 = -127
   17979 		if x == y {
   17980 			t.Errorf("%d == %d", x, y)
   17981 		}
   17982 		if !(x != y) {
   17983 			t.Errorf("!(%d != %d)", x, y)
   17984 		}
   17985 		if x < y {
   17986 			t.Errorf("%d < %d", x, y)
   17987 		}
   17988 		if !(x > y) {
   17989 			t.Errorf("!(%d > %d)", x, y)
   17990 		}
   17991 		if x <= y {
   17992 			t.Errorf("%d <= %d", x, y)
   17993 		}
   17994 		if !(x >= y) {
   17995 			t.Errorf("!(%d >= %d)", x, y)
   17996 		}
   17997 	}
   17998 	{
   17999 		var x int8 = 127
   18000 		var y int8 = -1
   18001 		if x == y {
   18002 			t.Errorf("%d == %d", x, y)
   18003 		}
   18004 		if !(x != y) {
   18005 			t.Errorf("!(%d != %d)", x, y)
   18006 		}
   18007 		if x < y {
   18008 			t.Errorf("%d < %d", x, y)
   18009 		}
   18010 		if !(x > y) {
   18011 			t.Errorf("!(%d > %d)", x, y)
   18012 		}
   18013 		if x <= y {
   18014 			t.Errorf("%d <= %d", x, y)
   18015 		}
   18016 		if !(x >= y) {
   18017 			t.Errorf("!(%d >= %d)", x, y)
   18018 		}
   18019 	}
   18020 	{
   18021 		var x int8 = 127
   18022 		var y int8 = 0
   18023 		if x == y {
   18024 			t.Errorf("%d == %d", x, y)
   18025 		}
   18026 		if !(x != y) {
   18027 			t.Errorf("!(%d != %d)", x, y)
   18028 		}
   18029 		if x < y {
   18030 			t.Errorf("%d < %d", x, y)
   18031 		}
   18032 		if !(x > y) {
   18033 			t.Errorf("!(%d > %d)", x, y)
   18034 		}
   18035 		if x <= y {
   18036 			t.Errorf("%d <= %d", x, y)
   18037 		}
   18038 		if !(x >= y) {
   18039 			t.Errorf("!(%d >= %d)", x, y)
   18040 		}
   18041 	}
   18042 	{
   18043 		var x int8 = 127
   18044 		var y int8 = 1
   18045 		if x == y {
   18046 			t.Errorf("%d == %d", x, y)
   18047 		}
   18048 		if !(x != y) {
   18049 			t.Errorf("!(%d != %d)", x, y)
   18050 		}
   18051 		if x < y {
   18052 			t.Errorf("%d < %d", x, y)
   18053 		}
   18054 		if !(x > y) {
   18055 			t.Errorf("!(%d > %d)", x, y)
   18056 		}
   18057 		if x <= y {
   18058 			t.Errorf("%d <= %d", x, y)
   18059 		}
   18060 		if !(x >= y) {
   18061 			t.Errorf("!(%d >= %d)", x, y)
   18062 		}
   18063 	}
   18064 	{
   18065 		var x int8 = 127
   18066 		var y int8 = 126
   18067 		if x == y {
   18068 			t.Errorf("%d == %d", x, y)
   18069 		}
   18070 		if !(x != y) {
   18071 			t.Errorf("!(%d != %d)", x, y)
   18072 		}
   18073 		if x < y {
   18074 			t.Errorf("%d < %d", x, y)
   18075 		}
   18076 		if !(x > y) {
   18077 			t.Errorf("!(%d > %d)", x, y)
   18078 		}
   18079 		if x <= y {
   18080 			t.Errorf("%d <= %d", x, y)
   18081 		}
   18082 		if !(x >= y) {
   18083 			t.Errorf("!(%d >= %d)", x, y)
   18084 		}
   18085 	}
   18086 	{
   18087 		var x int8 = 127
   18088 		var y int8 = 127
   18089 		if !(x == y) {
   18090 			t.Errorf("!(%d == %d)", x, y)
   18091 		}
   18092 		if x != y {
   18093 			t.Errorf("%d != %d", x, y)
   18094 		}
   18095 		if x < y {
   18096 			t.Errorf("%d < %d", x, y)
   18097 		}
   18098 		if x > y {
   18099 			t.Errorf("%d > %d", x, y)
   18100 		}
   18101 		if !(x <= y) {
   18102 			t.Errorf("!(%d <= %d)", x, y)
   18103 		}
   18104 		if !(x >= y) {
   18105 			t.Errorf("!(%d >= %d)", x, y)
   18106 		}
   18107 	}
   18108 }
   18109